From ce0f880ffbfd623a3209e0623c9ffdf74a251e3c Mon Sep 17 00:00:00 2001 From: SpencerFleury <159941756+SpencerFleury@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:16:10 -0700 Subject: [PATCH 01/43] updates for hubspot docs DOC-153 --- .../en/hubspot-cohort-sync.md | 33 +++++- .../en/hubspot-event-streaming-v2.md | 78 ++++++++----- .../destination-catalog/en/hubspot.md | 106 +++++++++++------- .../output/img/sources/.meta/hubspot.png.yaml | 7 ++ public/docs/output/img/sources/hubspot.png | Bin 0 -> 153030 bytes 5 files changed, 150 insertions(+), 74 deletions(-) create mode 100644 public/docs/output/img/sources/.meta/hubspot.png.yaml create mode 100644 public/docs/output/img/sources/hubspot.png diff --git a/content/collections/destination-catalog/en/hubspot-cohort-sync.md b/content/collections/destination-catalog/en/hubspot-cohort-sync.md index 25f24ea39..0d075a24d 100644 --- a/content/collections/destination-catalog/en/hubspot-cohort-sync.md +++ b/content/collections/destination-catalog/en/hubspot-cohort-sync.md @@ -1,7 +1,7 @@ --- id: 119727fe-3a6f-40c0-aa88-e1eab2da0cf6 blueprint: destination-catalog -title: 'Hubspot (Cohort Sync)' +title: 'HubSpot (Cohort Sync)' author: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 connection: destination integration_type: @@ -13,11 +13,10 @@ integration_icon: partner-icons/hubspot.svg use_cases: - 'Target key cohorts with messaging informed by customer insights' exclude_from_sitemap: false -updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1713565111 +updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae +updated_at: 1722023682 source: 'https://www.docs.developers.amplitude.com/data/destinations/hubspot-cohort/' --- - The HubSpot destination allows you to sync your Amplitude-built cohort to your HubSpot contacts lists for targeting purposes. ## Considerations @@ -62,8 +61,30 @@ HubSpot only ingests users for whom they have identifiers. User A, User B, and User C are in the Amplitude cohort (Cohort 1). HubSpot only has identifiers for User A and User C. HubSpot creates a list that includes User A and User C, and drops User B. {{/partial:admonition}} +## Disconnect HubSpot from within Amplitude + +To disconnect HubSpot from within Amplitude, follow these steps: + +1. In Amplitude, navigate to *Data > Sources > HubSpot*. +2. Click the trash can icon. +3. Follow the instructions displayed in the confirmation modal that appears. +4. Click *Delete*. + +Disconnecting HubSpot means new data sent from this source will no longer be processed. Historical data from HubSpot won’t be deleted and can still be analyzed. + +## Uninstall Amplitude from a HubSpot account + +To disconnect HubSpot from within Amplitude, follow these steps: + +1. In HubSpot, navigate to *Reporting & Data > Integrations > Connected apps > Amplitude*. +2. Select *Uninstall* from the *Actions* dropdown. +3. Follow the instructions displayed in the confirmation modal that appears. +4. Click *Uninstall*. + +This won’t delete any existing Amplitude data in HubSpot, but it will no longer be updated. + ## Common issues -### User discrepancies between Amplitude and Hubspot +### User discrepancies between Amplitude and HubSpot -- Some destinations like Hubspot may return a 2XXs response indicating the cohort sync has synced successfully out from Amplitude. However sometimes, the 3rd party destination will silently drop users who don't meet their criteria, and this exclusion might not be communicated back to Amplitude. To check whether a user was successfully transferred, you can review the CSV file from Amplitude. While Amplitude strives to identify cases where users aren't included at third-party platforms by analyzing response codes, fully detecting every instance of silent user exclusion due to technical constraints may not always be achievable. If you encounter issues or have queries, check out this [guide](https://help.amplitude.com/hc/en-us/articles/360060055531-Sync-to-third-party-destinations) for more information on how you can investigate and diagnose cohort sync discrepancies in a self-serve manner. +- Some destinations like HubSpot may return a 2XXs response indicating the cohort sync has synced successfully out from Amplitude. However sometimes, the 3rd party destination will silently drop users who don't meet their criteria, and this exclusion might not be communicated back to Amplitude. To check whether a user was successfully transferred, you can review the CSV file from Amplitude. While Amplitude strives to identify cases where users aren't included at third-party platforms by analyzing response codes, fully detecting every instance of silent user exclusion due to technical constraints may not always be achievable. If you encounter issues or have queries, check out this [guide](https://help.amplitude.com/hc/en-us/articles/360060055531-Sync-to-third-party-destinations) for more information on how you can investigate and diagnose cohort sync discrepancies in a self-serve manner. \ No newline at end of file diff --git a/content/collections/destination-catalog/en/hubspot-event-streaming-v2.md b/content/collections/destination-catalog/en/hubspot-event-streaming-v2.md index 65e61703f..69ea39ca0 100644 --- a/content/collections/destination-catalog/en/hubspot-event-streaming-v2.md +++ b/content/collections/destination-catalog/en/hubspot-event-streaming-v2.md @@ -1,7 +1,7 @@ --- id: ed7582d9-a06c-486f-8c18-0be2a1973629 blueprint: destination-catalog -title: 'HubSpot Event Streaming v2' +title: 'HubSpot event streaming v2' author: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 connection: destination integration_type: @@ -9,9 +9,9 @@ integration_type: partner_maintained: false integration_icon: partner-icons/hubspot.svg exclude_from_sitemap: false -updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -source: https://www.docs.developers.amplitude.com/data/destinations/hubspot-event-streaming-v2/ -updated_at: 1718649214 +updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae +source: 'https://www.docs.developers.amplitude.com/data/destinations/hubspot-event-streaming-v2/' +updated_at: 1722024948 --- [HubSpot](https://www.HubSpot.com/) is an easy to use and powerful CRM platform that enables scaling companies to sell, market and provide customer service from a unified UI. Amplitude's HubSpot streaming integration enables you to forward your Amplitude events and event properties straight to HubSpot with just a few clicks. @@ -31,8 +31,8 @@ Keep these things in mind when sending events to HubSpot: - If you have an existing HubSpot streaming sync [HubSpot streaming integration](/docs/data/destination-catalog/hubspot), and you want to access these new features, select HubSpot V2 in the Data Catalog to create a new Event streaming connection . With this update, Amplitude sends events and their properties to different event definitions in HubSpot, matching each of the selected events, rather than the single event definition from the internal event name. - You must enable this integration in each Amplitude project you want to use it in. -- Events from Amplitude appear as Custom Behavioral Events in HubSpot. -- A HubSpot Enterprise Marketing Hub account is required to send Custom Behavioral Events. See HubSpot's [HubSpot Product & Services Catalog](https://legal.hubspot.com/hubspot-product-and-services-catalog) for more information +- Events from Amplitude appear as custom events in HubSpot. +- A HubSpot Enterprise subscription is required to send custom events. See HubSpot's [HubSpot Product & Services Catalog](https://legal.hubspot.com/hubspot-product-and-services-catalog) for more information - Relevant limits for HubSpot events are: - HubSpot enforces strict API rate limits. You can find more information about these limits on HubSport's[Usage Details](https://developers.HubSpot.com/docs/api/usage-details) page. - HubSpot allows up to 50 custom properties for each custom event. @@ -43,19 +43,19 @@ Keep these things in mind when sending events to HubSpot: ### Amplitude setup -1. In Amplitude Data, click **Catalog** and select the **Destinations** tab. -2. In the Event Streaming section, click **HubSpot V2**. -3. Enter a sync name, then click Create **Sync**. +1. In Amplitude Data, navigate to *Catalog > Destinations*. +2. Scroll down and click *HubSpot V2*. +3. Enter a sync name, then click *Create Sync*. 4. Choose a HubSpot Account ID or authenticate with HubSpot. If you have an existing Account ID, re-authenticate to grant the necessary permissions from HubSpot. -5. Toggle the **Send events** filter to select the events to send. -6. Under the **Select & filter events** section, select which Amplitude Events you would like to map to HubSpot. Provide a HubSpot Internal Event Name which corresponds with this Amplitude Event that you’ve selected. HubSpot recommends choosing the events that are most important to your use case. -7. Under the **Map properties to destinations**, select which Event Properties you would like to send. The HubSpot identifier for this object must be at least one of the following: User Token, Email or Object ID. -8. Under the **Select additional properties** section, select any extra event and user properties you want to send to HubSpot. If you don't select any properties here, Amplitude doesn't send any. Transformed event properties and transformed user properties aren't supported. -9. When finished, enable the destination and **Save**. +5. Toggle the *Send events* filter to select the events to send. +6. Under *Select & filter events*, choose the Amplitude Events you would like to map to HubSpot. Provide a HubSpot Internal Event Name that corresponds to the Amplitude event you’ve selected. HubSpot recommends choosing the events that are most important to your use case. +7. Under *Map properties to destinations*, select the Event Properties you would like to send. The HubSpot identifier for this object must be at least one of the following: `User Token`, `Email` or `Object ID`. +8. Under *Select additional properties*, select any extra event and user properties you want to send to HubSpot. If you don't select any properties here, Amplitude doesn't send any. Transformed event properties and transformed user properties aren't supported. +9. When finished, enable the destination and click *Save*. -## Use custom behavioral event data in HubSpot +## Use custom event data in HubSpot -- Click here to learn more about how you can [analyze custom behavioral events](https://knowledge.HubSpot.com/analytics-tools/analyze-custom-behavioral-events) in HubSpot. +- Click here to learn more about how you can [analyze custom events](https://knowledge.HubSpot.com/analytics-tools/analyze-custom-behavioral-events) in HubSpot. ### Report on custom events @@ -70,21 +70,43 @@ Event completions appear on the contact record timeline, along with any properti To view event details on the contact timeline: - [Navigate to a contact record](https://knowledge.hubspot.com/records/work-with-records) that has completed a custom event. -- To filter a contact timeline by completed events, click **Filter activity**, then select **Custom event**. -- In the contact timeline, click to expand the **event** to display the event details. +- To filter a contact timeline by completed events, click *Filter activity*, then select *Custom event*. +- In the contact timeline, click to expand the *event* to display the event details. ### Use custom events in workflows In a workflow, you can delay based on custom event completions using a [Delay until event happens action](https://knowledge.hubspot.com/workflows/use-delays) or an event enrollment trigger. -1. In your HubSpot account, navigate to **Automation > Workflows**. -2. Click the **name** of a workflow. Or, learn how to create a new workflow. -3. In the workflow editor, click the **+ plus icon** to add a workflow action. -4. In the right panel, select **Delay until the event happens**. +1. In your HubSpot account, navigate to *Automation > Workflows*. +2. Click the name of a workflow. Or, learn how to create a new workflow. +3. In the workflow editor, click the + icon to add a workflow action. +4. In the right panel, click *Delay until the event happens*. 5. Configure the delay: - - Click the **Event** dropdown menu, then select a **custom behavioral event**. - - Then, select the **event property** that you want to delay on. - - Select the **filter** for the event property. - - Click **Apply filter**. - - Select the **maximum wait time**, or select the **Delay as long as possible checkbox**. -6. Click **Save**. + - From the *Event* dropdown menu, select a *custom event*. + - Select the event property you want to delay on. + - Select the filter for the event property. + - Click *Apply filter*. + - Select the maximum wait time, or check *Delay as long as possible*. +6. Click *Save*. + +## Disconnect HubSpot from within Amplitude + +To disconnect HubSpot from within Amplitude, follow these steps: + +1. In Amplitude, navigate to *Data > Sources > HubSpot*. +2. Click the trash can icon. +3. Follow the instructions displayed in the confirmation modal that appears. +4. Click *Delete*. + +Disconnecting HubSpot means new data sent from this source will no longer be processed. Historical data from HubSpot won’t be deleted and can still be analyzed. + +## Uninstall Amplitude from a HubSpot account + +To disconnect HubSpot from within Amplitude, follow these steps: + +1. In HubSpot, navigate to *Reporting & Data > Integrations > Connected apps > Amplitude*. +2. Select *Uninstall* from the *Actions* dropdown. +3. Follow the instructions displayed in the confirmation modal that appears. +4. Click *Uninstall*. + +This won’t delete any existing Amplitude data in HubSpot, but it will no longer be updated. \ No newline at end of file diff --git a/content/collections/destination-catalog/en/hubspot.md b/content/collections/destination-catalog/en/hubspot.md index 39ad9bc88..3f4176062 100644 --- a/content/collections/destination-catalog/en/hubspot.md +++ b/content/collections/destination-catalog/en/hubspot.md @@ -9,7 +9,7 @@ integration_category: integration_type: - event-streaming partner_doc_link: 'https://ecosystem.hubspot.com/marketplace/apps/marketing/analytics-data/amplitude-engage' -title: Hubspot (Event Stream) +title: 'HubSpot (event stream)' source: 'https://docs.developers.amplitude.com/data/destinations/hubspot' category: 'Event streaming' author: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 @@ -17,10 +17,9 @@ connection: destination partner_maintained: false integration_icon: partner-icons/hubspot.svg exclude_from_sitemap: false -updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1713478876 +updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae +updated_at: 1722024870 --- - [HubSpot](https://www.hubspot.com/) is an easy to use and powerful CRM platform that enables scaling companies to sell, market and provide customer service from a unified UI. Amplitude's HubSpot streaming integration enables you to forward your Amplitude events and event properties straight to HubSpot with just a few clicks. @@ -30,8 +29,8 @@ Amplitude's HubSpot streaming integration enables you to forward your Amplitude Keep these things in mind when sending events to HubSpot: - You must enable this integration in each Amplitude project you want to use it in. -- Events from Amplitude appear as Custom Behavioral Events in HubSpot. -- A HubSpot Enterprise Marketing Hub account is required to send Custom Behavioral Events. +- Events from Amplitude appear as custom events in HubSpot. +- A HubSpot Enterprise subscription is required to send custom events. - Relevant limits for HubSpot events are: - HubSpot enforces strict API rate limits. You can find more information about these limits [here](https://developers.hubspot.com/docs/api/usage-details). - HubSpot allows up to 50 properties for each custom behavior event. @@ -45,59 +44,86 @@ Keep these things in mind when sending events to HubSpot: ### HubSpot setup -1. Create the custom behavioral events and note down their internal name and add event properties that you want to forward to HubSpot. Include a string property named `event_type` in the behavior custom event, which indicates the specific type of event within Amplitude. Learn how you create the event and event property in HubSpot [here](https://knowledge.hubspot.com/analytics-tools/create-custom-behavioral-events-with-the-code-wizard). +Create the custom events and note down their internal name and add event properties that you want to forward to HubSpot. Include a string property named `event_type` in the custom event, which indicates the specific type of event within Amplitude. + +Learn how to create the event and event property in HubSpot [here](https://knowledge.hubspot.com/analytics-tools/create-custom-behavioral-events-with-the-code-wizard). ### Amplitude setup -1. In Amplitude Data, click **Catalog** and select the **Destinations** tab. -2. In the Event Streaming section, click **HubSpot**. -3. Enter a sync name, then click **Create Sync**. -4. Choose a HubSpot Account ID or authenticate with HubSpot -5. Enter the HubSpot Event Name created by HubSpot -6. Toggle the **Send events** filter to select the events to send. HubSpot recommends choosing the events that are most important to your use case. -7. Click on the **Select & filter events** option to choose the event type of the events you would like to send. -8. Click on **Map properties to destination** to specify the identity mapping between Amplitude and HubSpot. Note that HubSpot requires the identifier to be at least one of the following: `utk`, `email`, or object ID. -9. Click on **Select additional properties** to specify the event properties you wish to forward to HubSpot. By default, the event properties only include the **event_type** property, which indicates the type of event for a particular event in Amplitude. -10. When finished, enable the destination and **Save**. +1. In Amplitude Data, navigate to *Catalog > Destinations*. +2. Scroll down and click *HubSpot*. +3. Enter a sync name, then click *Create Sync*. +4. Choose a HubSpot Account ID or authenticate with HubSpot. + +![hubspot.png](/docs/output/img/sources/hubspot.png) -## Use custom behavioral event data in HubSpot +6. Enter the HubSpot event name created by HubSpot. +7. Toggle the *Send events* filter to select the events to send. HubSpot recommends choosing the events that are most important to your use case. +8. Click *Select & filter events* to choose the event type of the events you would like to send. +9. Click *Map properties to destination* to specify the identity mapping between Amplitude and HubSpot. HubSpot requires the identifier to be at least one of the following: `utk`, `email`, or object ID. +10. Click *Select additional properties* to specify the event properties you wish to forward to HubSpot. By default, the event properties only include the `event_type` property, which indicates the type of event for a particular event in Amplitude. +11. When finished, enable the destination and click *Save*. -- Click here to learn more about how you can [analyze custom behavioral events](https://knowledge.hubspot.com/analytics-tools/analyze-custom-behavioral-events) in HubSpot. +## Use custom event data in HubSpot + +- Learn more about how you can [analyze custom events](https://knowledge.hubspot.com/analytics-tools/analyze-custom-behavioral-events) in HubSpot. ### View event completions -1. In your HubSpot account, navigate to **Reports > Analytics Tools**. -2. Click **Custom Behavioral Events**. -3. Click the **Analyze** tab. +1. In your HubSpot account, navigate to *Reports > Analytics Tools*. +2. Click *Custom Events*. +3. Open the *Analyze* tab. 4. To filter the data for a specific time range and frequency, click the Date range and Frequency dropdown menus. -5. To view chart data for specific events in the chart, select the **checkboxes** next to those events in the table. -6. To view more detail for an event, including completions, unique visitors, and the properties associated with the event, click the name of the **event** in the table. +5. To view chart data for specific events in the chart, check the checkboxes next to those events in the table. +6. To view more detail for an event, including completions, unique visitors, and the properties associated with the event, click the name of the event in the table. -### Report on custom behavioral events +### Report on custom events -1. In your HubSpot account, navigate to **Reports > Reports**. -2. In the upper right, click **Create custom report**. -3. In the left sidebar, select **Custom Report Builder**. -4. To use custom behavioral events as your primary data source, click the **Primary data source** dropdown menu, then select **Custom behavioral events**. -5. If you want to use custom behavioral events as a non-primary source, you can select **Custom behavioral events** from the Other section. -6. Continue [building your report](https://knowledge.hubspot.com/reports/create-reports-with-the-custom-report-builder). To specify which event you want to report on, in the left sidebar, click the **Browse** dropdown menu, then select **Custom behavioral events**. Then, under Custom behavioral events, select the **event** you want to report on. +1. In your HubSpot account, navigate to *Reports > Reports*. +2. In the upper right, click *Create custom report*. +3. In the left sidebar, select *Custom Report Builder*. +4. To use custom events as your primary data source, click the *Primary data source* dropdown menu, then select *Custom events*. +5. If you want to use custom events as a non-primary source, select *Custom events* from the Other section. +6. Continue [building your report](https://knowledge.hubspot.com/reports/create-reports-with-the-custom-report-builder). To specify which event you want to report on, in the left sidebar, click the *Browse* dropdown menu, then select *Custom events*. Then, under custom events, select the event you want to report on. -### Custom behavioral events in workflows +### Custom events in workflows -1. In your HubSpot account, navigate to **Automation > Workflows**. -2. Click the **name** of a workflow. Or, learn how to create a new workflow. +1. In your HubSpot account, navigate to *Automation > Workflows*. +2. Click the name of a workflow. Or, learn how to create a new workflow. 3. In the workflow editor, click the **+ plus icon** to add a workflow action. 4. In the right panel, select **Delay until the event happens**. 5. Configure the delay: - - Click the **Event** dropdown menu, then select a **custom behavioral event**. - - Then, select the **event property** that you want to delay on. - - Select the **filter** for the event property. - - Click **Apply filter**. - - Select the **maximum wait time**, or select the **Delay as long as possible checkbox**. -6. Click **Save**. + - Click the *Event* dropdown menu, then select a *custom event*. + - Then, select the *event property* that you want to delay on. + - Select the *filter* for the event property. + - Click *Apply filter*. + - Select the maximum wait time, or check *Delay as long as possible*. +6. Click *Save*. ## Use cases 1. **Personalized Marketing:** With the ability to track user behavior and capture user and event properties in Amplitude, businesses can create highly personalized and targeted marketing campaigns in HubSpot. This can lead to increased engagement, conversions, and customer loyalty. 2. **Lead Scoring and Nurturing:** By tracking user behavior and capturing user and event properties in Amplitude, businesses can score and rank leads based on their level of engagement and interests. This can help businesses to optimize their lead nurturing efforts and increase their chances of closing deals. 3. **Customer Retention:** By tracking user behavior and capturing user and event properties in Amplitude, businesses can identify customers who are at risk of churning and take proactive steps to retain them. For instance, businesses can trigger personalized emails or ads to offer discounts or incentives to encourage customers to stay engaged with the product or service. + +## Disconnect HubSpot from within Amplitude + +To disconnect HubSpot from within Amplitude, follow these steps: + +1. In Amplitude, navigate to *Data > Sources > HubSpot*. +2. Click the trash can icon. +3. Follow the instructions displayed in the confirmation modal that appears. +4. Click *Delete*. + +Disconnecting HubSpot means new data sent from this source will no longer be processed. Historical data from HubSpot won’t be deleted and can still be analyzed. + +## Uninstall Amplitude from a HubSpot account + +To disconnect HubSpot from within Amplitude, follow these steps: + +1. In HubSpot, navigate to *Reporting & Data > Integrations > Connected apps > Amplitude*. +2. Select *Uninstall* from the *Actions* dropdown. +3. Follow the instructions displayed in the confirmation modal that appears. +4. Click *Uninstall*. + +This won’t delete any existing Amplitude data in HubSpot, but it will no longer be updated. \ No newline at end of file diff --git a/public/docs/output/img/sources/.meta/hubspot.png.yaml b/public/docs/output/img/sources/.meta/hubspot.png.yaml new file mode 100644 index 000000000..a6c67d74d --- /dev/null +++ b/public/docs/output/img/sources/.meta/hubspot.png.yaml @@ -0,0 +1,7 @@ +data: { } +size: 153030 +last_modified: 1722024239 +width: 732 +height: 1047 +mime_type: image/png +duration: null diff --git a/public/docs/output/img/sources/hubspot.png b/public/docs/output/img/sources/hubspot.png new file mode 100644 index 0000000000000000000000000000000000000000..ec153ef6d8c8cff4c3b75d5b62dd40204459a3c0 GIT binary patch literal 153030 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%0D9ivdme#yR5eg^tpMqc_zVIw-*dj0Gkd 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

Ro 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 literal 0 HcmV?d00001 From 3dacbac6ef86e72804da751e710b837532db3fe9 Mon Sep 17 00:00:00 2001 From: SpencerFleury <159941756+SpencerFleury@users.noreply.github.com> Date: Fri, 26 Jul 2024 14:01:38 -0700 Subject: [PATCH 02/43] Update hubspot.md Caught and fixed a straggler --- content/collections/destination-catalog/en/hubspot.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/collections/destination-catalog/en/hubspot.md b/content/collections/destination-catalog/en/hubspot.md index 3f4176062..e9bf40e82 100644 --- a/content/collections/destination-catalog/en/hubspot.md +++ b/content/collections/destination-catalog/en/hubspot.md @@ -18,7 +18,7 @@ partner_maintained: false integration_icon: partner-icons/hubspot.svg exclude_from_sitemap: false updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae -updated_at: 1722024870 +updated_at: 1722027623 --- [HubSpot](https://www.hubspot.com/) is an easy to use and powerful CRM platform that enables scaling companies to sell, market and provide customer service from a unified UI. @@ -33,7 +33,7 @@ Keep these things in mind when sending events to HubSpot: - A HubSpot Enterprise subscription is required to send custom events. - Relevant limits for HubSpot events are: - HubSpot enforces strict API rate limits. You can find more information about these limits [here](https://developers.hubspot.com/docs/api/usage-details). - - HubSpot allows up to 50 properties for each custom behavior event. + - HubSpot allows up to 50 properties for each custom event. - Types of data you can forward to HubSpot: - Amplitude sends selected event properties along with the event. - Amplitude doesn't perform an identity call for this integration. This means Amplitude doesn't send any user properties information directly to HubSpot. From 101f6c86c03d0ac2d68dd562a510d695eae54118 Mon Sep 17 00:00:00 2001 From: SpencerFleury <159941756+SpencerFleury@users.noreply.github.com> Date: Fri, 26 Jul 2024 15:53:57 -0700 Subject: [PATCH 03/43] Brandon's late updates --- .../en/hubspot-cohort-sync.md | 18 ++++++------------ .../en/hubspot-event-streaming-v2.md | 8 ++++---- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/content/collections/destination-catalog/en/hubspot-cohort-sync.md b/content/collections/destination-catalog/en/hubspot-cohort-sync.md index 0d075a24d..1c7c01090 100644 --- a/content/collections/destination-catalog/en/hubspot-cohort-sync.md +++ b/content/collections/destination-catalog/en/hubspot-cohort-sync.md @@ -1,7 +1,7 @@ --- id: 119727fe-3a6f-40c0-aa88-e1eab2da0cf6 blueprint: destination-catalog -title: 'HubSpot (Cohort Sync)' +title: 'HubSpot (cohort sync)' author: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 connection: destination integration_type: @@ -14,7 +14,7 @@ use_cases: - 'Target key cohorts with messaging informed by customer insights' exclude_from_sitemap: false updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae -updated_at: 1722023682 +updated_at: 1722034412 source: 'https://www.docs.developers.amplitude.com/data/destinations/hubspot-cohort/' --- The HubSpot destination allows you to sync your Amplitude-built cohort to your HubSpot contacts lists for targeting purposes. @@ -25,23 +25,17 @@ The HubSpot destination allows you to sync your Amplitude-built cohort to your H - If you choose Email as HubSpot's userID, Amplitude creates a new email address contact in HubSpot if the user doesn't exist in HubSpot but does exist in the Amplitude cohort that you are syncing over. - If you choose Contact ID as HubSpot's userID, it must already exist in HubSpot and is required to be in **long** data type format. -## Setup +## Set up in Amplitude -### Prerequisites - -Contact your CSM if you want to use this integration. - -### Amplitude setup - -1. In Amplitude Data, click **Catalog** and select the **Destinations** tab. -2. In the Cohort section, click **HubSpot**. +1. In Amplitude Data, navigate to *Catalog > Destinations* tab. +2. In the Cohort section, click *HubSpot*. 3. Log into your HubSpot account (via OAuth) to authenticate. Then select the account that contains the cohort you want to sync. 4. After you're redirected to the Amplitude dashboard, select the identifiers you want to use for the cohort sync. When you're done, save your work. ## Send a cohort 1. In Amplitude, open the cohort you want to sync. -2. Click **Sync** and choose HubSpot. +2. Click *Sync* and choose *HubSpot*. 3. Specify the HubSpot account you want to send the cohort to. 4. Set the sync cadence. 5. Save your work. diff --git a/content/collections/destination-catalog/en/hubspot-event-streaming-v2.md b/content/collections/destination-catalog/en/hubspot-event-streaming-v2.md index 69ea39ca0..72a308930 100644 --- a/content/collections/destination-catalog/en/hubspot-event-streaming-v2.md +++ b/content/collections/destination-catalog/en/hubspot-event-streaming-v2.md @@ -11,7 +11,7 @@ integration_icon: partner-icons/hubspot.svg exclude_from_sitemap: false updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae source: 'https://www.docs.developers.amplitude.com/data/destinations/hubspot-event-streaming-v2/' -updated_at: 1722024948 +updated_at: 1722034306 --- [HubSpot](https://www.HubSpot.com/) is an easy to use and powerful CRM platform that enables scaling companies to sell, market and provide customer service from a unified UI. Amplitude's HubSpot streaming integration enables you to forward your Amplitude events and event properties straight to HubSpot with just a few clicks. @@ -29,10 +29,10 @@ This feature is in Closed Beta and is in active development. Email [integrations Keep these things in mind when sending events to HubSpot: -- If you have an existing HubSpot streaming sync [HubSpot streaming integration](/docs/data/destination-catalog/hubspot), and you want to access these new features, select HubSpot V2 in the Data Catalog to create a new Event streaming connection . With this update, Amplitude sends events and their properties to different event definitions in HubSpot, matching each of the selected events, rather than the single event definition from the internal event name. +- If you already have an existing HubSpot streaming connection, re-authenticate with HubSpot to grant additional permissions to create events and properties for you. With this update, Amplitude sends events and their properties to different event definitions in HubSpot, matching each of the selected events, rather than the single event definition from the internal event name. - You must enable this integration in each Amplitude project you want to use it in. - Events from Amplitude appear as custom events in HubSpot. -- A HubSpot Enterprise subscription is required to send custom events. See HubSpot's [HubSpot Product & Services Catalog](https://legal.hubspot.com/hubspot-product-and-services-catalog) for more information +- A HubSpot Enterprise subscription is required to send custom events. See the [HubSpot Product & Services Catalog](https://legal.hubspot.com/hubspot-product-and-services-catalog) for more information. - Relevant limits for HubSpot events are: - HubSpot enforces strict API rate limits. You can find more information about these limits on HubSport's[Usage Details](https://developers.HubSpot.com/docs/api/usage-details) page. - HubSpot allows up to 50 custom properties for each custom event. @@ -50,7 +50,7 @@ Keep these things in mind when sending events to HubSpot: 5. Toggle the *Send events* filter to select the events to send. 6. Under *Select & filter events*, choose the Amplitude Events you would like to map to HubSpot. Provide a HubSpot Internal Event Name that corresponds to the Amplitude event you’ve selected. HubSpot recommends choosing the events that are most important to your use case. 7. Under *Map properties to destinations*, select the Event Properties you would like to send. The HubSpot identifier for this object must be at least one of the following: `User Token`, `Email` or `Object ID`. -8. Under *Select additional properties*, select any extra event and user properties you want to send to HubSpot. If you don't select any properties here, Amplitude doesn't send any. Transformed event properties and transformed user properties aren't supported. +8. Under *Select additional properties*, select any extra event and user properties you want to send to HubSpot. If you don't select any properties here, Amplitude doesn't send any. 9. When finished, enable the destination and click *Save*. ## Use custom event data in HubSpot From 4516bac193b818f7cf36ed19942c83e60479bb27 Mon Sep 17 00:00:00 2001 From: tyiuhc Date: Mon, 29 Jul 2024 14:11:19 -0700 Subject: [PATCH 04/43] fix: add all() documentation to Experiment Android SDK --- .../experiment-sdks/en/experiment-android.md | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/content/collections/experiment-sdks/en/experiment-android.md b/content/collections/experiment-sdks/en/experiment-android.md index 63b574f0a..144546292 100644 --- a/content/collections/experiment-sdks/en/experiment-android.md +++ b/content/collections/experiment-sdks/en/experiment-android.md @@ -550,6 +550,28 @@ if (variant.value == "control") { {{/partial:tab}} {{/partial:tabs}} +### All + +Access all [variants](/docs/experiment/data-model#variants) stored by the SDK client. + +```kotlin +fun all(): Map +``` + +{{partial:tabs tabs="Java, Kotlin"}} +{{partial:tab name="Java"}} +```java +experiment.all(); +``` +{{/partial:tab}} +{{partial:tab name="Kotlin"}} +```kotlin +experiment.all() +``` +{{/partial:tab}} +{{/partial:tabs}} + +### Clear Clear all [variants](/docs/experiment/data-model#variants) in the cache and storage. @@ -687,4 +709,4 @@ val config = ExperimentConfig.builder() val experiment = Experiment.initialize(context, "", config) ``` {{/partial:tab}} -{{/partial:tabs}} \ No newline at end of file +{{/partial:tabs}} From 9049bde6da7e1890a6f4a67a0b2839b3f4cc2bbc Mon Sep 17 00:00:00 2001 From: SpencerFleury <159941756+SpencerFleury@users.noreply.github.com> Date: Tue, 30 Jul 2024 10:12:15 -0700 Subject: [PATCH 05/43] DOC-163: Experiment Results DOC-163: Add formula availability info --- .../en/experiment-results-use-formula-metrics.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md index fc2c0b6a4..8833d6854 100644 --- a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md +++ b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md @@ -8,8 +8,8 @@ this_article_will_help_you: - 'Understand how Amplitude calculates statistical significance for formula metrics' landing: true exclude_from_sitemap: false -updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717103685 +updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae +updated_at: 1722359496 landing_blurb: 'Understand the different kinds of formula metrics supported by the Experiment Results chart' --- In an Experiment Results chart, using a **formula metric** offers you greater flexibility when performing analyses. A formula metric is a metric that consists of: @@ -79,6 +79,18 @@ This function will only work if you are grouping by a numerical property on the Returns the average of the property values you are grouping by. This function is equivalent to `PROPSUM(event)/TOTALS(event)`. [Learn more about how Amplitude calculates PROPAVG and PROPSUM in this article](/docs/experiment/under-the-hood/experiment-analysis-chart-calculation) +### PROPMAX + +**Syntax**: PROPMAX(event) + +* **Event:** returns the maximum value of the property you are grouping the specified event by. The property must be numeric. If grouping by multiple properties, the calculation will be performed using the first group-by clause. + +### PROPMIN + +**Syntax**: PROPMIN(event) + +* **Event:** returns the minimum value of the property you are grouping the specified event by. The property must be numeric. If grouping by multiple properties, the calculation will be performed using the first group-by clause. + **CONVERSIONRATE (closed beta):** **Syntax:** CONVERSIONRATE(array of events, conversion window, latency offset) From bd53f17d4d2901c824393dcf0e4698b0c72a1374 Mon Sep 17 00:00:00 2001 From: SpencerFleury <159941756+SpencerFleury@users.noreply.github.com> Date: Tue, 30 Jul 2024 10:22:27 -0700 Subject: [PATCH 06/43] Update experiment-results-use-formula-metrics.md general text edits --- .../experiment-results-use-formula-metrics.md | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md index 8833d6854..a7fb240ee 100644 --- a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md +++ b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md @@ -9,7 +9,7 @@ this_article_will_help_you: landing: true exclude_from_sitemap: false updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae -updated_at: 1722359496 +updated_at: 1722360131 landing_blurb: 'Understand the different kinds of formula metrics supported by the Experiment Results chart' --- In an Experiment Results chart, using a **formula metric** offers you greater flexibility when performing analyses. A formula metric is a metric that consists of: @@ -31,11 +31,11 @@ To add a formula metric to your Experiment Results chart, follow the below steps ![Screenshot 2023-07-31 at 2.13.04 PM.png](/docs/output/img/experiment-results/screenshot-2023-07-31-at-2-13-04-pm-png.png) -3. Click *Select event ...* to begin selecting events to include in your formula metric. Repeat this step until all events are included. +3. Click *Select event ...* to begin selecting events to include in your formula metric. Repeat this step until you've selected all the events you need. -2. In the *Formula* box, enter the formula that will calculate your formula metric. [Click here for a list of formulas that are supported by Experiment Results](#h_01GYB55B59PZ793RCSC6B32KJ7), or [here for an explanation of formula syntax](#h_01GYB56QRGWM2BZHNV2VSG53TW). +2. In the *Formula* box, enter the formula for calculating your formula metric. [Click here for a list of formulas Experiment Results supports](#h_01GYB55B59PZ793RCSC6B32KJ7), or [here for an explanation of formula syntax](#h_01GYB56QRGWM2BZHNV2VSG53TW). -3. Add a name for this new formula metric. Click *Apply* when you're done. The metric will be added to your Experiment Results chart. +3. Add a name for this new formula metric. Click *Apply* when you're done. The metric now appears in your Experiment Results chart. You can also view this metric in the [object management center](/docs/data/object-management). @@ -47,7 +47,7 @@ The following formula functions are supported in Experiment Results: **Syntax**: UNIQUES(event) -* **Event:** Refers to the event you are interested in. This must be a letter that corresponds to an event in the Events Module. +* **Event:** Refers to the event you're interested in. This must be a letter corresponding to an event in the Events Module. Returns the number of unique users who triggered the event.  @@ -55,7 +55,7 @@ Returns the number of unique users who triggered the event.  **Syntax**: TOTALS(event) -* **Event:** Refers to the event you are interested in. This must be a letter that corresponds to an event in the Events Module. +* **Event:** Refers to the event you're interested in. This must be a letter corresponding to an event in the Events Module. Returns the total number of times the event was triggered. @@ -63,33 +63,33 @@ Returns the total number of times the event was triggered. **Syntax**: PROPSUM(event) -* **Event:** Refers to the event you are interested in. This must be a letter that corresponds to an event in the Events Module. +* **Event:** Refers to the event you're interested in. This must be a letter corresponding to an event in the Events Module. -This function will only work if you are grouping by a numerical property on the event. If grouping by multiple properties, the formula will perform the calculation with the first group-by clause. +This function only works when grouping by a numerical property on the event. If grouping by multiple properties, the formula runs the calculation with the first group-by clause. -Returns the sum of the property values you are grouping the specified event by. +Returns the sum of the property values you're grouping the specified event by. **PROPAVG:** **Syntax**: PROPAVG(event) -* **Event:** Refers to the event you are interested in. This must be a letter that corresponds to an event in the Events Module. +* **Event:** Refers to the event you're interested in. This must be a letter corresponding to an event in the Events Module. -This function will only work if you are grouping by a numerical property on the event. If grouping by multiple properties, the formula will perform the calculation with the first group-by clause. +This function only works when grouping by a numerical property on the event. If grouping by multiple properties, the formula runs the calculation with the first group-by clause. -Returns the average of the property values you are grouping by. This function is equivalent to `PROPSUM(event)/TOTALS(event)`. [Learn more about how Amplitude calculates PROPAVG and PROPSUM in this article](/docs/experiment/under-the-hood/experiment-analysis-chart-calculation) +Returns the average of the property values you're grouping by. This function is equivalent to `PROPSUM(event)/TOTALS(event)`. [Learn more about how Amplitude calculates PROPAVG and PROPSUM in this article](/docs/experiment/under-the-hood/experiment-analysis-chart-calculation) ### PROPMAX **Syntax**: PROPMAX(event) -* **Event:** returns the maximum value of the property you are grouping the specified event by. The property must be numeric. If grouping by multiple properties, the calculation will be performed using the first group-by clause. +* **Event:** Returns the maximum value of the property you're grouping the specified event by. The property must be numeric. If grouping by multiple properties, the calculation uses the first group-by clause. ### PROPMIN **Syntax**: PROPMIN(event) -* **Event:** returns the minimum value of the property you are grouping the specified event by. The property must be numeric. If grouping by multiple properties, the calculation will be performed using the first group-by clause. +* **Event:** Returns the minimum value of the property you're grouping the specified event by. The property must be numeric. If grouping by multiple properties, the calculation uses the first group-by clause. **CONVERSIONRATE (closed beta):** @@ -116,14 +116,16 @@ Returns the conversion rate (< 1) from 1st event to nth event of the array. This * **Latency Offset** (optional): Refers to latency in the data ingestion to Amplitude. The unit is in seconds. {{partial:admonition type='note'}} -This function is supported for Experiment metrics only, and is currently only available to certain customers. To gain access, contact your Amplitude Customer Success Manager. Also, this function will only work when grouping by a numerical property on the last event. +This function is supported for Experiment metrics only, and is currently only available to certain customers. To gain access, contact your Amplitude Customer Success Manager. + +This function only works when grouping by a numerical property on the last event. {{/partial:admonition}} Returns the average value of the given property among all the users who completed the conversion. This function internally uses Funnel Query to get the average value among the converted users. ## Formula syntax -In your formulas, refer to events selected in the Events Module by their corresponding letter. The functions and the parameters are not case sensitive. You can also perform the following arithmetic operations: +In your formulas, refer to events selected in the Events Module by their corresponding letter. The functions and the parameters aren't case-sensitive. You can also perform the following arithmetic operations: * Parenthesis () * Addition (+) @@ -133,13 +135,13 @@ In your formulas, refer to events selected in the Events Module by their corresp ## How Amplitude calculates experiment data for formula metrics -Before understanding how experiment data is calculated for formula metrics, it’s important to understand the overall [Experiment Analysis view](/docs/experiment/analysis-view), which provides details for your experiment. +Before getting into how calculations of formula metrics work with experiment data, it’s important to understand the overall [Experiment Analysis view](/docs/experiment/analysis-view), which provides details for your experiment. -For formula metrics, Amplitude computes the results for each function independently to find the mean and variance of each one. The arithmetic operators are then applied on the results of these individual functions. +For formula metrics, Amplitude computes the results for each function independently to find the mean and variance of each one. It then applies the arithmetic operators to the results of these individual functions. -Imagine you have defined a formula metric as `TOTALS(A) + TOTALS(B)`. Amplitude will calculate the variances and means of both components of this metric, as well as the covariance. +Imagine you've defined a formula metric as `TOTALS(A) + TOTALS(B)`. Amplitude calculates the variances and means of both components of this metric, as well as the covariance. -If we set X equal to TOTALS(A) and Y equal to TOTALS(B), the following statements hold: +If you set X equal to TOTALS(A) and Y equal to TOTALS(B), the following statements hold: * `V[X]` = Variance of X * `E[X]` = Mean of X @@ -162,6 +164,6 @@ If we set X equal to TOTALS(A) and Y equal to TOTALS(B), the following statement Variance: ![](/docs/output/img/experiment-results/23576087077403){.inline} Mean: `E[X / Y] = E[X] / E[Y]` -Once we have the mean and variance of the overall formula metric, we can calculate the confidence interval chart and the p-values. +Once you have the mean and variance of the overall formula metric, you can calculate the confidence interval chart and the p-values. `Formula / Metric: TOTALS(A) / TOTALS(B)` \ No newline at end of file From b941fa357f04feb66064988bb94ca5ec0f96490d Mon Sep 17 00:00:00 2001 From: SpencerFleury <159941756+SpencerFleury@users.noreply.github.com> Date: Tue, 30 Jul 2024 10:25:00 -0700 Subject: [PATCH 07/43] Update experiment-results-use-formula-metrics.md --- .../en/experiment-results-use-formula-metrics.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md index a7fb240ee..a0008171f 100644 --- a/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md +++ b/content/collections/experiment-results/en/experiment-results-use-formula-metrics.md @@ -21,7 +21,7 @@ If you've used [custom formulas in Event Segmentation](/docs/analytics/charts/ev ## Create a formula metric -To add a formula metric to your Experiment Results chart, follow the below steps: +To add a formula metric to your Experiment Results chart, follow these steps: 1. In the Primary Metric module, click *+ Add Metric* and choose a formula from the *Formula* drop down options. @@ -41,7 +41,7 @@ You can also view this metric in the [object management center](/docs/data/objec ## Supported formula functions -The following formula functions are supported in Experiment Results: +Experiment Results supports the formula functions listed here: **UNIQUES:** @@ -57,7 +57,7 @@ Returns the number of unique users who triggered the event.  * **Event:** Refers to the event you're interested in. This must be a letter corresponding to an event in the Events Module. -Returns the total number of times the event was triggered. +Returns the total number of times users triggered the event. **PROPSUM:** From 432793af2750ad5a46f7b1b4b80eb687c435c021 Mon Sep 17 00:00:00 2001 From: SpencerFleury <159941756+SpencerFleury@users.noreply.github.com> Date: Tue, 30 Jul 2024 10:25:41 -0700 Subject: [PATCH 08/43] Update data-overview.md --- content/collections/data/en/data-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/collections/data/en/data-overview.md b/content/collections/data/en/data-overview.md index d880f0520..baf510148 100644 --- a/content/collections/data/en/data-overview.md +++ b/content/collections/data/en/data-overview.md @@ -14,7 +14,7 @@ To get the most out of Amplitude, building a data catalog your team understands Amplitude Data provides a robust set of tools to help prevent data quality issues from the start. -* Create a plan directly in Amplitude and define your events, properties, and even your taxonomy standards directly in Amplitude. This information is visible when you select events and properties. Ampitude Analytics monitors this information to make sure your incoming data matches your spec. +* Create a plan directly in Amplitude and define your events, properties, and even your taxonomy standards directly in Amplitude. This information is visible when you select events and properties. Amplitude Analytics monitors this information to make sure your incoming data matches your spec. * Use the Ampli developer toolkit, which uses your plan to generate a type-safe tracking library and lints code to ensure proper tracking of your events and properties. Planning directly in Amplitude Data gives you an up-to-date plan your company can use instead of one-off spreadsheets or wiki pages that can quickly become outdated. We've created a walkthrough of the [complete planning workflow](/docs/data/data-planning-workflow) to illustrate the process from start to finish. From f34603dbdc239227e367b406fdad568f8c6bae19 Mon Sep 17 00:00:00 2001 From: Zequn Fu Date: Wed, 31 Jul 2024 17:51:32 -0700 Subject: [PATCH 09/43] AMP-105631 update docs for databricks import to call out tables that being supported today --- content/collections/source-catalog/en/databricks.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content/collections/source-catalog/en/databricks.md b/content/collections/source-catalog/en/databricks.md index 008d24586..d049b3c77 100644 --- a/content/collections/source-catalog/en/databricks.md +++ b/content/collections/source-catalog/en/databricks.md @@ -19,6 +19,8 @@ source: 'https://www.docs.developers.amplitude.com/data/sources/databricks/' --- Amplitude's Databricks import source enables you to import data from Databricks to your Amplitude account. Databricks import uses the [Databricks Change Data Feed](https://docs.databricks.com/en/delta/delta-change-data-feed.html#use-delta-lake-change-data-feed-on-databricks) feature to securely access and extract live data from your Databricks workspace. +For guided instructions to setting up this integration, view the [Loom video](https://www.loom.com/share/a00f8905170e4c83977ae6fb2f0dcde7?sid=5a77e8c9-d34b-42b0-a179-679669c8bdbe). + ## Features - Import all data types, including events, user properties, and group properties. @@ -31,7 +33,7 @@ Amplitude's Databricks import source enables you to import data from Databricks - The User Look-Up page doesn't display 100 most recent events ingested. -For guided instructions to setting up this integration, view the [Loom video](https://www.loom.com/share/a00f8905170e4c83977ae6fb2f0dcde7?sid=5a77e8c9-d34b-42b0-a179-679669c8bdbe). +- Feature only supports delta tables for now. Databricks views, materialized views, and streaming tables are not supported since they don't support time travel yet. ## Configure Databricks @@ -175,4 +177,4 @@ To verify the data coming into Amplitude: - View the Events page of your Tracking Plan - Create a Segmentation chart that filters on the event name you specify. -- Go to the `Ingestion Jobs` tab in your source. You can view the status of the ingestion and debug using `ERROR LOG` if necessary. \ No newline at end of file +- Go to the `Ingestion Jobs` tab in your source. You can view the status of the ingestion and debug using `ERROR LOG` if necessary. From 031b73f33c0df12e371bbc72ef1ff0fedb9a16e2 Mon Sep 17 00:00:00 2001 From: Zequn Fu Date: Wed, 31 Jul 2024 17:56:14 -0700 Subject: [PATCH 10/43] AMP-105631 update --- content/collections/source-catalog/en/databricks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/collections/source-catalog/en/databricks.md b/content/collections/source-catalog/en/databricks.md index d049b3c77..17eb756bc 100644 --- a/content/collections/source-catalog/en/databricks.md +++ b/content/collections/source-catalog/en/databricks.md @@ -33,7 +33,7 @@ For guided instructions to setting up this integration, view the [Loom video](ht - The User Look-Up page doesn't display 100 most recent events ingested. -- Feature only supports delta tables for now. Databricks views, materialized views, and streaming tables are not supported since they don't support time travel yet. +- Databricks [views](https://docs.databricks.com/en/views/index.html), [materialized views](https://docs.databricks.com/en/views/materialized.html), and [streaming tables](https://docs.databricks.com/en/delta-live-tables/index.html#streaming-table) are not supported by feature right now since they don't support time travel yet. ## Configure Databricks From c18a50035befd3eee64a023efd0d8f08166d067b Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Thu, 1 Aug 2024 08:55:02 -0700 Subject: [PATCH 11/43] update verbiage --- content/collections/source-catalog/en/databricks.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/collections/source-catalog/en/databricks.md b/content/collections/source-catalog/en/databricks.md index 17eb756bc..4a59b8763 100644 --- a/content/collections/source-catalog/en/databricks.md +++ b/content/collections/source-catalog/en/databricks.md @@ -33,7 +33,10 @@ For guided instructions to setting up this integration, view the [Loom video](ht - The User Look-Up page doesn't display 100 most recent events ingested. -- Databricks [views](https://docs.databricks.com/en/views/index.html), [materialized views](https://docs.databricks.com/en/views/materialized.html), and [streaming tables](https://docs.databricks.com/en/delta-live-tables/index.html#streaming-table) are not supported by feature right now since they don't support time travel yet. +- The following Databricks features don't support time travel, and aren't supported by this integration: + - [views](https://docs.databricks.com/en/views/index.html) + - [materialized views](https://docs.databricks.com/en/views/materialized.html) + - [streaming tables](https://docs.databricks.com/en/delta-live-tables/index.html#streaming-table) ## Configure Databricks From 09390640c0b42031ad26cfc61e7ea81aff3a0eb9 Mon Sep 17 00:00:00 2001 From: Theodore Chao Date: Thu, 1 Aug 2024 11:23:56 -0700 Subject: [PATCH 12/43] bump browser sdk and autocapture versions on autocapture page --- .../browser_sdk/en/autocapture-plugin.md | 4 +- content/globals/en/sdk_versions.yaml | 4 +- node_modules/.package-lock.json | 3032 +++++++-------- node_modules/vite/dist/node/cli.js | 10 +- node_modules/vite/dist/node/index.js | 4 +- node_modules/vite/package.json | 2 +- package-lock.json | 3248 ++++++++--------- package.json | 1 + public/docs/css/algolia.css | 3 +- public/docs/css/site.css | 73 +- public/docs/js/api-table.js | 1 - .../docs/js/interactive-evaluation-table.js | 1 - public/docs/js/interactive-exposure-table.js | 1 - .../js/interactive-exposure-tracking-table.js | 1 - vendor/composer/autoload_classmap.php | 1 - vendor/composer/autoload_static.php | 1 - vendor/composer/installed.php | 4 +- 17 files changed, 3049 insertions(+), 3342 deletions(-) diff --git a/content/collections/browser_sdk/en/autocapture-plugin.md b/content/collections/browser_sdk/en/autocapture-plugin.md index f1c690cfa..a31d37723 100644 --- a/content/collections/browser_sdk/en/autocapture-plugin.md +++ b/content/collections/browser_sdk/en/autocapture-plugin.md @@ -26,13 +26,13 @@ Autocapture requires the latest versions of the Amplitude Browser SDK ({{sdk_ver {{partial:tab name="npm"}} ```bash npm install @amplitude/analytics-browser -npm install @amplitude/plugin-autocapture-browser@beta +npm install @amplitude/plugin-autocapture-browser ``` {{/partial:tab}} {{partial:tab name="yarn"}} ```bash yarn add @amplitude/analytics-browser -yarn add @amplitude/plugin-autocapture-browser@beta +yarn add @amplitude/plugin-autocapture-browser ``` {{/partial:tab}} {{/partial:tabs}} diff --git a/content/globals/en/sdk_versions.yaml b/content/globals/en/sdk_versions.yaml index 4cc62aa41..2bc30ee01 100644 --- a/content/globals/en/sdk_versions.yaml +++ b/content/globals/en/sdk_versions.yaml @@ -1,5 +1,5 @@ -browser: 2.9.0 -visual_labeling_plugin: 0.9.0 +browser: 2.9.3 +visual_labeling_plugin: 1.0.0 session_replay_plugin: 1.4.0 session_replay_standalone: 1.6.0 session_replay_android_plugin: 0.6.5 diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 6b74cd3b9..bc932a357 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -40,28 +40,28 @@ } }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -76,20 +76,12 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dependencies": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.25.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -122,13 +114,13 @@ } }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -136,35 +128,17 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/traverse": "^7.25.0", "semver": "^6.3.1" }, "engines": { @@ -174,18 +148,10 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-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==", - "bin": { - "semver": "bin/semver.js" - } - }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", @@ -198,18 +164,10 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-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==", - "bin": { - "semver": "bin/semver.js" - } - }, "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==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -221,47 +179,13 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "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==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "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==", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "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==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -280,15 +204,14 @@ } }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -309,21 +232,21 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-wrap-function": "^7.24.7" + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -333,13 +256,13 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", - "@babel/helper-optimise-call-expression": "^7.24.7" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -372,21 +295,10 @@ "node": ">=6.9.0" } }, - "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==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "engines": { "node": ">=6.9.0" } @@ -400,34 +312,33 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dependencies": { - "@babel/helper-function-name": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -447,80 +358,41 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/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==", + "node_modules/@babel/parser": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dependencies": { - "color-convert": "^1.9.0" + "@babel/types": "^7.25.2" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/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==" - }, - "node_modules/@babel/highlight/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==", - "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/@babel/highlight/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==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", "dependencies": { - "has-flag": "^3.0.0" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" }, "engines": { - "node": ">=4" - } - }, - "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==", - "bin": { - "parser": "bin/babel-parser.js" + "node": ">=6.9.0" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "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==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -530,11 +402,11 @@ } }, "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==", + "version": "7.25.0", + "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.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -560,12 +432,12 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -836,14 +708,14 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -883,11 +755,11 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -928,17 +800,15 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", "globals": "^11.1.0" }, "engines": { @@ -964,11 +834,11 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1006,6 +876,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "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", @@ -1067,13 +952,13 @@ } }, "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==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -1098,11 +983,11 @@ } }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1156,12 +1041,12 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-simple-access": "^7.24.7" }, "engines": { @@ -1172,14 +1057,14 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dependencies": { - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1310,11 +1195,11 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -1433,14 +1318,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "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", @@ -1499,11 +1376,11 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1572,18 +1449,19 @@ } }, "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==", - "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -1604,29 +1482,30 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", "@babel/plugin-transform-dynamic-import": "^7.24.7", "@babel/plugin-transform-exponentiation-operator": "^7.24.7", "@babel/plugin-transform-export-namespace-from": "^7.24.7", "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-member-expression-literals": "^7.24.7", "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", "@babel/plugin-transform-modules-umd": "^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-new-target": "^7.24.7", @@ -1635,7 +1514,7 @@ "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-object-super": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", @@ -1646,7 +1525,7 @@ "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", "@babel/plugin-transform-unicode-escapes": "^7.24.7", "@babel/plugin-transform-unicode-property-regex": "^7.24.7", "@babel/plugin-transform-unicode-regex": "^7.24.7", @@ -1655,7 +1534,7 @@ "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.31.0", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -1665,14 +1544,6 @@ "@babel/core": "^7.0.0-0" } }, - "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==", - "bin": { - "semver": "bin/semver.js" - } - }, "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", @@ -1692,9 +1563,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1703,31 +1574,28 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "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==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1736,11 +1604,11 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dependencies": { - "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, @@ -1773,6 +1641,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1798,48 +1667,127 @@ "node": ">=12" } }, - "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==", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, "engines": { - "node": ">=6.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "engines": { - "node": ">=6.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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==", - "engines": { - "node": ">=6.0.0" - } + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "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==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", @@ -1924,9 +1872,9 @@ } }, "node_modules/@tailwindcss/typography": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", - "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.13.tgz", + "integrity": "sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==", "dev": true, "dependencies": { "lodash.castarray": "^4.4.0", @@ -1976,9 +1924,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dependencies": { "@babel/types": "^7.20.7" } @@ -2027,9 +1975,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.9", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.9.tgz", - "integrity": "sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz", + "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -2061,9 +2009,9 @@ } }, "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==", + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -2094,9 +2042,9 @@ } }, "node_modules/@types/imagemin": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.5.tgz", - "integrity": "sha512-tah3dm+5sG+fEDAz6CrQ5evuEaPX9K6DF3E5a01MPOKhA2oGBoC+oA5EJzSugB905sN4DE19EDzldT2Cld2g6Q==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-9.0.0.tgz", + "integrity": "sha512-4IaT+BdPUAFf/AAy3XlFAbqGk4RawhdidxWO5XTe+PJAYAr4d7m2FHiqyEPXbDpwS+IaLIJq5AIjLE9HcwMGBg==", "dependencies": { "@types/node": "*" } @@ -2150,11 +2098,11 @@ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" }, "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "version": "22.0.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.0.2.tgz", + "integrity": "sha512-yPL6DyFwY5PiMVEwymNeqUTKsDczQBJ/5T7W/46RwLU/VH+AA8aT5TZkvBviLKLbbm0hlfftEkGrNzfRk/fofQ==", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.11.1" } }, "node_modules/@types/node-forge": { @@ -2171,9 +2119,9 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/qs": { - "version": "6.9.14", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", - "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" }, "node_modules/@types/range-parser": { "version": "1.2.7", @@ -2226,9 +2174,9 @@ "integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==" }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", "dependencies": { "@types/node": "*" } @@ -2420,9 +2368,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "bin": { "acorn": "bin/acorn" }, @@ -2430,23 +2378,23 @@ "node": ">=0.4.0" } }, - "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==", + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "peerDependencies": { "acorn": "^8" } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -2469,32 +2417,15 @@ } } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "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==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "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==", "peerDependencies": { - "ajv": "^6.9.1" + "ajv": "^8.8.2" } }, "node_modules/ansi-html-community": { @@ -2509,27 +2440,22 @@ } }, "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" + "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==", + "dependencies": { + "color-convert": "^1.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=4" } }, "node_modules/any-promise": { @@ -2607,9 +2533,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "funding": [ { "type": "opencollective", @@ -2625,9 +2551,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -2659,26 +2585,18 @@ } }, "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==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "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", @@ -2692,11 +2610,11 @@ } }, "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==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -2745,11 +2663,14 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bn.js": { @@ -2830,12 +2751,12 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "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, + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -2917,6 +2838,18 @@ "node": ">= 0.12" } }, + "node_modules/browserify-sign/node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", @@ -2926,9 +2859,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", "funding": [ { "type": "opencollective", @@ -2944,10 +2877,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -3045,9 +2978,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001610", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001610.tgz", - "integrity": "sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==", + "version": "1.0.30001646", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz", + "integrity": "sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==", "funding": [ { "type": "opencollective", @@ -3064,32 +2997,16 @@ ] }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/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==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { - "color-convert": "^2.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/charenc": { @@ -3101,15 +3018,9 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -3122,25 +3033,17 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "engines": { "node": ">=6.0" } @@ -3166,9 +3069,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", - "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dependencies": { "string-width": "^4.2.0" }, @@ -3179,133 +3082,29 @@ "@colors/colors": "1.5.0" } }, - "node_modules/cli-table3/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==", - "engines": { - "node": ">=8" + "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==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" } }, - "node_modules/cli-table3/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "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==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "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==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { "node": ">=12" } }, - "node_modules/cliui/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -3325,20 +3124,17 @@ "integrity": "sha512-jd97xWPKgHn6uvK31V6zcyPd40lUJd7gpYxbN2VOVxGWO4tyvS9Li4EpsFjXepGTo2tYcOTC4a8YsbQXMJ4XUw==" }, "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==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "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==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/colord": { "version": "2.9.3", @@ -3351,11 +3147,11 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "engines": { - "node": ">= 6" + "node": ">= 10" } }, "node_modules/common-path-prefix": { @@ -3509,9 +3305,9 @@ } }, "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==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dependencies": { "browserslist": "^4.23.0" }, @@ -3540,14 +3336,6 @@ "node": ">=10" } }, - "node_modules/cosmiconfig/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -3667,6 +3455,34 @@ "webpack": "^4.27.0 || ^5.0.0" } }, + "node_modules/css-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/css-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/css-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -3684,6 +3500,17 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -3699,20 +3526,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/css-select/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/css-tree": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", @@ -3820,14 +3633,6 @@ "postcss": "^8.2.15" } }, - "node_modules/cssnano/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, "node_modules/csso": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", @@ -3840,9 +3645,9 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dependencies": { "ms": "2.1.2" }, @@ -4004,20 +3809,6 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-serializer/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -4039,11 +3830,11 @@ ] }, "node_modules/domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dependencies": { - "domelementtype": "^2.0.1" + "domelementtype": "^2.2.0" }, "engines": { "node": ">= 4" @@ -4065,20 +3856,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/domutils/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -4113,14 +3890,14 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.736", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz", - "integrity": "sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz", + "integrity": "sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==" }, "node_modules/elliptic": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", - "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", + "version": "6.5.6", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.6.tgz", + "integrity": "sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -4137,10 +3914,9 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/emojis-list": { "version": "3.0.0", @@ -4159,9 +3935,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4179,9 +3955,9 @@ } }, "node_modules/envinfo": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.12.0.tgz", - "integrity": "sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "bin": { "envinfo": "dist/cli.js" }, @@ -4217,9 +3993,9 @@ } }, "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==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" }, "node_modules/esbuild": { "version": "0.18.20", @@ -4227,6 +4003,7 @@ "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -4259,9 +4036,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "engines": { "node": ">=6" } @@ -4378,11 +4155,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, "node_modules/express": { "version": "4.19.2", "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", @@ -4471,22 +4243,16 @@ "node": ">=8.6.0" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -4496,9 +4262,9 @@ } }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dependencies": { "reusify": "^1.0.4" } @@ -4533,17 +4299,45 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/file-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">= 10.13.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -4614,7 +4408,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/find-up": { + "node_modules/find-up": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", @@ -4629,82 +4423,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -4733,9 +4451,9 @@ } }, "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==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", @@ -4748,6 +4466,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "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==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -4790,9 +4520,9 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -4866,37 +4596,34 @@ } }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, + "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", "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" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "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, + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dependencies": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 6" } }, "node_modules/glob-to-regexp": { @@ -4930,45 +4657,6 @@ "node": ">=8" } }, - "node_modules/globby/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/globby/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globby/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/good-listener": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", @@ -5004,11 +4692,11 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/has-property-descriptors": { @@ -5045,17 +4733,31 @@ } }, "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "engines": { "node": ">=4" } }, + "node_modules/hash-base/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/hash-sum": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", @@ -5071,9 +4773,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -5146,6 +4848,34 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/html-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/html-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/html-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/html-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -5194,6 +4924,14 @@ "node": ">= 4.0" } }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, "node_modules/html-minifier-terser/node_modules/terser": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", @@ -5226,6 +4964,20 @@ "entities": "^2.0.0" } }, + "node_modules/htmlparser2/node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -5420,9 +5172,9 @@ } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -5437,10 +5189,78 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "node_modules/import-local/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==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5460,9 +5280,9 @@ } }, "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "engines": { "node": ">= 10" } @@ -5489,11 +5309,14 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5611,16 +5434,13 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "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" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -5641,6 +5461,14 @@ "node": ">= 10.13.0" } }, + "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==", + "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", @@ -5656,9 +5484,9 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "dev": true, "bin": { "jiti": "bin/jiti.js" @@ -5686,9 +5514,9 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "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==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/json5": { "version": "2.2.3", @@ -5827,12 +5655,41 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, - "node_modules/laravel-mix/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==", + "node_modules/laravel-mix/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/laravel-mix/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==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/laravel-mix/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/laravel-mix/node_modules/babel-loader": { @@ -5853,23 +5710,37 @@ "webpack": ">=2" } }, - "node_modules/laravel-mix/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/laravel-mix/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/laravel-mix/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==", + "node_modules/laravel-mix/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==", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">= 10" + "node": ">=7.0.0" } }, + "node_modules/laravel-mix/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/laravel-mix/node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -5886,62 +5757,84 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/laravel-mix/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/laravel-mix/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==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/laravel-mix/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/laravel-mix/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/laravel-mix/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==" + }, + "node_modules/laravel-mix/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==", "dependencies": { - "brace-expansion": "^1.1.7" + "p-locate": "^4.1.0" }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/laravel-mix/node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "node_modules/laravel-mix/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==", "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 10" + "node": ">=6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/laravel-mix/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==", + "dependencies": { + "p-limit": "^2.2.0" }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" + "engines": { + "node": ">=8" + } + }, + "node_modules/laravel-mix/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/laravel-mix/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==", + "dependencies": { + "find-up": "^4.0.0" }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } + "engines": { + "node": ">=8" } }, "node_modules/laravel-mix/node_modules/schema-utils": { @@ -5961,23 +5854,26 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/laravel-mix/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" + "node_modules/laravel-mix/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/laravel-mix/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "node_modules/laravel-mix/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 6" + "node": ">=8" } }, "node_modules/laravel-vite-plugin": { @@ -5997,9 +5893,9 @@ } }, "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==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz", + "integrity": "sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==", "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" @@ -6040,14 +5936,17 @@ } }, "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==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -6095,14 +5994,13 @@ "dependencies": { "tslib": "^2.0.3" } - }, - "node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "dev": true, - "engines": { - "node": "14 || >=16.14" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" } }, "node_modules/make-dir": { @@ -6119,14 +6017,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -6198,11 +6088,11 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -6284,6 +6174,34 @@ "webpack": "^4.4.0 || ^5.0.0" } }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/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==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/mini-css-extract-plugin/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==" + }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -6321,18 +6239,14 @@ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, "node_modules/minimist": { @@ -6344,9 +6258,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -6457,6 +6371,11 @@ "vm-browserify": "^1.0.1" } }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, "node_modules/node-notifier": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz", @@ -6470,10 +6389,21 @@ "which": "^2.0.2" } }, + "node_modules/node-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "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==" + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -6543,9 +6473,12 @@ } }, "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==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6643,28 +6576,31 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-pipe": { @@ -6698,6 +6634,12 @@ "node": ">=6" } }, + "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==", + "dev": true + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -6739,6 +6681,18 @@ "node": ">= 0.10" } }, + "node_modules/parse-asn1/node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -6779,11 +6733,11 @@ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/path-is-absolute": { @@ -6808,21 +6762,27 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -6852,9 +6812,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -6886,20 +6846,23 @@ } }, "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==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dependencies": { - "find-up": "^4.0.0" + "find-up": "^6.3.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.40", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz", + "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==", "funding": [ { "type": "opencollective", @@ -6916,8 +6879,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -7048,26 +7011,19 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" }, "engines": { - "node": ">= 14" + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, "peerDependencies": { "postcss": ">=8.0.9", @@ -7082,15 +7038,6 @@ } } }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/postcss-loader": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", @@ -7112,6 +7059,17 @@ "webpack": "^5.0.0" } }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/postcss-merge-longhand": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", @@ -7260,28 +7218,34 @@ } }, "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "postcss-selector-parser": "^6.0.11" + "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.2.14" } }, "node_modules/postcss-nested/node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -7566,14 +7530,17 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } }, "node_modules/qs": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.3.tgz", + "integrity": "sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==", "dependencies": { "side-channel": "^1.0.6" }, @@ -7881,6 +7848,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dependencies": { "glob": "^7.1.3" }, @@ -7891,45 +7859,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -7944,6 +7873,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -8011,45 +7941,14 @@ "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/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==", - "dependencies": { - "fast-deep-equal": "^3.1.3" + "engines": { + "node": ">= 12.13.0" }, - "peerDependencies": { - "ajv": "^8.8.2" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, "node_modules/select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", @@ -8073,35 +7972,13 @@ } }, "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==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -8334,16 +8211,9 @@ } }, "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, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/slash": { "version": "3.0.0", @@ -8377,9 +8247,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -8483,20 +8353,16 @@ } }, "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/string-width-cjs": { @@ -8509,31 +8375,12 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/string-width-cjs/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8541,21 +8388,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", @@ -8564,18 +8396,6 @@ "dev": true, "dependencies": { "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/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==", - "dev": true, - "engines": { - "node": ">=8" } }, "node_modules/strip-final-newline": { @@ -8605,6 +8425,34 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/style-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/style-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/style-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/style-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -8659,15 +8507,68 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/sucrase/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/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "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" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/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, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "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==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -8701,18 +8602,10 @@ "node": ">=10.13.0" } }, - "node_modules/svgo/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==", - "engines": { - "node": ">= 10" - } - }, "node_modules/tailwindcss": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", - "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz", + "integrity": "sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -8723,7 +8616,7 @@ "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.19.1", + "jiti": "^1.21.0", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -8746,10 +8639,69 @@ "node": ">=14.0.0" } }, + "node_modules/tailwindcss/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, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -8759,6 +8711,18 @@ "node": ">=4" } }, + "node_modules/tailwindcss/node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -8768,9 +8732,9 @@ } }, "node_modules/terser": { - "version": "5.30.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", - "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", + "version": "5.31.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz", + "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -8817,6 +8781,34 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/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==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/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==" + }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -8928,9 +8920,9 @@ "dev": true }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, "node_modules/tty-browserify": { "version": "0.0.0", @@ -8950,9 +8942,9 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.11.1.tgz", + "integrity": "sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -9007,9 +8999,9 @@ } }, "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==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "funding": [ { "type": "opencollective", @@ -9025,8 +9017,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -9043,23 +9035,23 @@ "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "dependencies": { "punycode": "^1.4.1", - "qs": "^6.11.2" + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" } }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -9103,10 +9095,11 @@ } }, "node_modules/vite": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", - "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", @@ -9158,9 +9151,9 @@ } }, "node_modules/vite-plugin-full-reload": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz", - "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", + "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", "dev": true, "dependencies": { "picocolors": "^1.0.0", @@ -9226,9 +9219,9 @@ } }, "node_modules/webpack": { - "version": "5.91.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", - "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "version": "5.93.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", + "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", @@ -9236,10 +9229,10 @@ "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.16.0", + "enhanced-resolve": "^5.17.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -9317,14 +9310,6 @@ } } }, - "node_modules/webpack-cli/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==", - "engines": { - "node": ">= 10" - } - }, "node_modules/webpack-dev-middleware": { "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", @@ -9435,25 +9420,6 @@ } } }, - "node_modules/webpack-notifier/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-notifier/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -9463,6 +9429,34 @@ "source-map": "~0.6.1" } }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/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==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/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==" + }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9505,6 +9499,70 @@ "webpack": "3 || 4 || 5" } }, + "node_modules/webpackbar/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpackbar/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpackbar/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpackbar/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/webpackbar/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpackbar/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -9546,17 +9604,16 @@ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" }, "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -9572,21 +9629,6 @@ "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true, - "engines": { - "node": ">=8" } }, "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { @@ -9604,47 +9646,63 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/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/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "node_modules/wrap-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==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "node_modules/wrap-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==", "dependencies": { - "ansi-regex": "^5.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, + "node_modules/wrap-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==" + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "engines": { "node": ">=10.0.0" }, @@ -9683,12 +9741,11 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true, + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "engines": { - "node": ">= 14" + "node": ">= 6" } }, "node_modules/yargs": { @@ -9716,47 +9773,10 @@ "node": ">=12" } }, - "node_modules/yargs/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "engines": { "node": ">=12.20" }, diff --git a/node_modules/vite/dist/node/cli.js b/node_modules/vite/dist/node/cli.js index e29ee6856..21d0962a4 100644 --- a/node_modules/vite/dist/node/cli.js +++ b/node_modules/vite/dist/node/cli.js @@ -2,7 +2,7 @@ import path from 'node:path'; import fs from 'node:fs'; import { performance } from 'node:perf_hooks'; import { EventEmitter } from 'events'; -import { C as colors, D as bindShortcuts, x as createLogger, h as resolveConfig } from './chunks/dep-52909643.js'; +import { C as colors, D as bindShortcuts, x as createLogger, h as resolveConfig } from './chunks/dep-41cf5ffd.js'; import { VERSION } from './constants.js'; import 'node:fs/promises'; import 'node:url'; @@ -758,7 +758,7 @@ cli filterDuplicateOptions(options); // output structure is preserved even after bundling so require() // is ok here - const { createServer } = await import('./chunks/dep-52909643.js').then(function (n) { return n.I; }); + const { createServer } = await import('./chunks/dep-41cf5ffd.js').then(function (n) { return n.I; }); try { const server = await createServer({ root, @@ -836,7 +836,7 @@ cli .option('-w, --watch', `[boolean] rebuilds when modules have changed on disk`) .action(async (root, options) => { filterDuplicateOptions(options); - const { build } = await import('./chunks/dep-52909643.js').then(function (n) { return n.H; }); + const { build } = await import('./chunks/dep-41cf5ffd.js').then(function (n) { return n.H; }); const buildOptions = cleanOptions(options); try { await build({ @@ -864,7 +864,7 @@ cli .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`) .action(async (root, options) => { filterDuplicateOptions(options); - const { optimizeDeps } = await import('./chunks/dep-52909643.js').then(function (n) { return n.G; }); + const { optimizeDeps } = await import('./chunks/dep-41cf5ffd.js').then(function (n) { return n.G; }); try { const config = await resolveConfig({ root, @@ -891,7 +891,7 @@ cli .option('--outDir

', `[string] output directory (default: dist)`) .action(async (root, options) => { filterDuplicateOptions(options); - const { preview } = await import('./chunks/dep-52909643.js').then(function (n) { return n.J; }); + const { preview } = await import('./chunks/dep-41cf5ffd.js').then(function (n) { return n.J; }); try { const server = await preview({ root, diff --git a/node_modules/vite/dist/node/index.js b/node_modules/vite/dist/node/index.js index aa0f32161..2443c7cf8 100644 --- a/node_modules/vite/dist/node/index.js +++ b/node_modules/vite/dist/node/index.js @@ -1,5 +1,5 @@ -import { i as isInNodeModules } from './chunks/dep-52909643.js'; -export { b as build, e as buildErrorMessage, v as createFilter, x as createLogger, c as createServer, g as defineConfig, f as formatPostcssSourceMap, k as getDepOptimizationConfig, m as isDepsOptimizerEnabled, z as isFileServingAllowed, l as loadConfigFromFile, A as loadEnv, u as mergeAlias, q as mergeConfig, n as normalizePath, o as optimizeDeps, a as preprocessCSS, p as preview, j as resolveBaseUrl, h as resolveConfig, B as resolveEnvPrefix, d as resolvePackageData, r as resolvePackageEntry, y as searchForWorkspaceRoot, w as send, s as sortUserPlugins, t as transformWithEsbuild } from './chunks/dep-52909643.js'; +import { i as isInNodeModules } from './chunks/dep-41cf5ffd.js'; +export { b as build, e as buildErrorMessage, v as createFilter, x as createLogger, c as createServer, g as defineConfig, f as formatPostcssSourceMap, k as getDepOptimizationConfig, m as isDepsOptimizerEnabled, z as isFileServingAllowed, l as loadConfigFromFile, A as loadEnv, u as mergeAlias, q as mergeConfig, n as normalizePath, o as optimizeDeps, a as preprocessCSS, p as preview, j as resolveBaseUrl, h as resolveConfig, B as resolveEnvPrefix, d as resolvePackageData, r as resolvePackageEntry, y as searchForWorkspaceRoot, w as send, s as sortUserPlugins, t as transformWithEsbuild } from './chunks/dep-41cf5ffd.js'; export { VERSION as version } from './constants.js'; export { version as esbuildVersion } from 'esbuild'; export { VERSION as rollupVersion } from 'rollup'; diff --git a/node_modules/vite/package.json b/node_modules/vite/package.json index 363e0d28a..bb5c8d6ea 100644 --- a/node_modules/vite/package.json +++ b/node_modules/vite/package.json @@ -1,6 +1,6 @@ { "name": "vite", - "version": "4.5.2", + "version": "4.5.3", "type": "module", "license": "MIT", "author": "Evan You", diff --git a/package-lock.json b/package-lock.json index ee29d596d..30142d402 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,28 +65,28 @@ } }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -101,20 +101,12 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dependencies": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.25.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -147,13 +139,13 @@ } }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -161,35 +153,17 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/traverse": "^7.25.0", "semver": "^6.3.1" }, "engines": { @@ -199,18 +173,10 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-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==", - "bin": { - "semver": "bin/semver.js" - } - }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", @@ -223,18 +189,10 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-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==", - "bin": { - "semver": "bin/semver.js" - } - }, "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==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -246,47 +204,13 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "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==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "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==", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "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==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -305,15 +229,14 @@ } }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -334,21 +257,21 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-wrap-function": "^7.24.7" + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -358,13 +281,13 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", - "@babel/helper-optimise-call-expression": "^7.24.7" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -397,21 +320,10 @@ "node": ">=6.9.0" } }, - "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==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "engines": { "node": ">=6.9.0" } @@ -425,34 +337,33 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dependencies": { - "@babel/helper-function-name": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -472,80 +383,41 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/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==", + "node_modules/@babel/parser": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dependencies": { - "color-convert": "^1.9.0" + "@babel/types": "^7.25.2" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/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==" - }, - "node_modules/@babel/highlight/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==", - "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/@babel/highlight/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==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", "dependencies": { - "has-flag": "^3.0.0" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" }, "engines": { - "node": ">=4" - } - }, - "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==", - "bin": { - "parser": "bin/babel-parser.js" + "node": ">=6.9.0" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "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==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -555,11 +427,11 @@ } }, "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==", + "version": "7.25.0", + "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.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -585,12 +457,12 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -861,14 +733,14 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -908,11 +780,11 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -953,17 +825,15 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", "globals": "^11.1.0" }, "engines": { @@ -989,11 +859,11 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1031,6 +901,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "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", @@ -1092,13 +977,13 @@ } }, "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==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -1123,11 +1008,11 @@ } }, "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==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1181,12 +1066,12 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-simple-access": "^7.24.7" }, "engines": { @@ -1197,14 +1082,14 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dependencies": { - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1335,11 +1220,11 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -1458,14 +1343,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "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", @@ -1524,11 +1401,11 @@ } }, "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==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1597,18 +1474,19 @@ } }, "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==", - "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -1629,29 +1507,30 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", "@babel/plugin-transform-dynamic-import": "^7.24.7", "@babel/plugin-transform-exponentiation-operator": "^7.24.7", "@babel/plugin-transform-export-namespace-from": "^7.24.7", "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-member-expression-literals": "^7.24.7", "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", "@babel/plugin-transform-modules-umd": "^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-new-target": "^7.24.7", @@ -1660,7 +1539,7 @@ "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-object-super": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", @@ -1671,7 +1550,7 @@ "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", "@babel/plugin-transform-unicode-escapes": "^7.24.7", "@babel/plugin-transform-unicode-property-regex": "^7.24.7", "@babel/plugin-transform-unicode-regex": "^7.24.7", @@ -1680,7 +1559,7 @@ "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.31.0", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -1690,14 +1569,6 @@ "@babel/core": "^7.0.0-0" } }, - "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==", - "bin": { - "semver": "bin/semver.js" - } - }, "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", @@ -1717,9 +1588,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1728,31 +1599,28 @@ } }, "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==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "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==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1761,11 +1629,11 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dependencies": { - "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, @@ -1790,373 +1658,117 @@ "node": ">=10.0.0" } }, - "node_modules/@esbuild/android-arm": { + "node_modules/@esbuild/darwin-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ - "arm" + "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ - "android" + "darwin" ], "engines": { "node": ">=12" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, "engines": { "node": ">=12" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "optional": true, - "os": [ - "android" - ], "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "optional": true, - "os": [ - "sunos" - ], "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/@jridgewell/gen-mapping": { @@ -2173,9 +1785,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "engines": { "node": ">=6.0.0" } @@ -2198,9 +1810,9 @@ } }, "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==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", @@ -2285,9 +1897,9 @@ } }, "node_modules/@tailwindcss/typography": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", - "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.13.tgz", + "integrity": "sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==", "dev": true, "dependencies": { "lodash.castarray": "^4.4.0", @@ -2337,9 +1949,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dependencies": { "@babel/types": "^7.20.7" } @@ -2388,9 +2000,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.9", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.9.tgz", - "integrity": "sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz", + "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -2422,9 +2034,9 @@ } }, "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==", + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -2455,9 +2067,9 @@ } }, "node_modules/@types/imagemin": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-8.0.5.tgz", - "integrity": "sha512-tah3dm+5sG+fEDAz6CrQ5evuEaPX9K6DF3E5a01MPOKhA2oGBoC+oA5EJzSugB905sN4DE19EDzldT2Cld2g6Q==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-9.0.0.tgz", + "integrity": "sha512-4IaT+BdPUAFf/AAy3XlFAbqGk4RawhdidxWO5XTe+PJAYAr4d7m2FHiqyEPXbDpwS+IaLIJq5AIjLE9HcwMGBg==", "dependencies": { "@types/node": "*" } @@ -2511,11 +2123,11 @@ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" }, "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "version": "22.0.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.0.2.tgz", + "integrity": "sha512-yPL6DyFwY5PiMVEwymNeqUTKsDczQBJ/5T7W/46RwLU/VH+AA8aT5TZkvBviLKLbbm0hlfftEkGrNzfRk/fofQ==", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.11.1" } }, "node_modules/@types/node-forge": { @@ -2532,9 +2144,9 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/qs": { - "version": "6.9.14", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", - "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" }, "node_modules/@types/range-parser": { "version": "1.2.7", @@ -2587,9 +2199,9 @@ "integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==" }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", "dependencies": { "@types/node": "*" } @@ -2781,9 +2393,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "bin": { "acorn": "bin/acorn" }, @@ -2791,24 +2403,24 @@ "node": ">=0.4.0" } }, - "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==", + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "peerDependencies": { "acorn": "^8" } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" @@ -2830,32 +2442,15 @@ } } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "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==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "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==", "peerDependencies": { - "ajv": "^6.9.1" + "ajv": "^8.8.2" } }, "node_modules/ansi-html-community": { @@ -2870,27 +2465,22 @@ } }, "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" + "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==", + "dependencies": { + "color-convert": "^1.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=4" } }, "node_modules/any-promise": { @@ -2968,9 +2558,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "funding": [ { "type": "opencollective", @@ -2986,9 +2576,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -3020,26 +2610,18 @@ } }, "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==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "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", @@ -3053,11 +2635,11 @@ } }, "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==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -3106,11 +2688,14 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bn.js": { @@ -3191,12 +2776,12 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "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, + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -3278,6 +2863,18 @@ "node": ">= 0.12" } }, + "node_modules/browserify-sign/node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", @@ -3287,9 +2884,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", "funding": [ { "type": "opencollective", @@ -3305,10 +2902,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -3406,9 +3003,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001610", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001610.tgz", - "integrity": "sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==", + "version": "1.0.30001646", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz", + "integrity": "sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==", "funding": [ { "type": "opencollective", @@ -3425,32 +3022,16 @@ ] }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/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==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { - "color-convert": "^2.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/charenc": { @@ -3462,15 +3043,9 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -3483,25 +3058,17 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "engines": { "node": ">=6.0" } @@ -3527,9 +3094,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", - "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dependencies": { "string-width": "^4.2.0" }, @@ -3540,43 +3107,6 @@ "@colors/colors": "1.5.0" } }, - "node_modules/cli-table3/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/clipboard": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", @@ -3600,73 +3130,6 @@ "node": ">=12" } }, - "node_modules/cliui/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -3686,20 +3149,17 @@ "integrity": "sha512-jd97xWPKgHn6uvK31V6zcyPd40lUJd7gpYxbN2VOVxGWO4tyvS9Li4EpsFjXepGTo2tYcOTC4a8YsbQXMJ4XUw==" }, "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==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "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==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/colord": { "version": "2.9.3", @@ -3712,11 +3172,11 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "engines": { - "node": ">= 6" + "node": ">= 10" } }, "node_modules/common-path-prefix": { @@ -3870,9 +3330,9 @@ } }, "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==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dependencies": { "browserslist": "^4.23.0" }, @@ -3901,14 +3361,6 @@ "node": ">=10" } }, - "node_modules/cosmiconfig/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -4028,6 +3480,34 @@ "webpack": "^4.27.0 || ^5.0.0" } }, + "node_modules/css-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/css-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/css-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -4045,6 +3525,17 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -4060,20 +3551,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/css-select/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/css-tree": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", @@ -4181,14 +3658,6 @@ "postcss": "^8.2.15" } }, - "node_modules/cssnano/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, "node_modules/csso": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", @@ -4201,9 +3670,9 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dependencies": { "ms": "2.1.2" }, @@ -4365,20 +3834,6 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-serializer/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -4400,11 +3855,11 @@ ] }, "node_modules/domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dependencies": { - "domelementtype": "^2.0.1" + "domelementtype": "^2.2.0" }, "engines": { "node": ">= 4" @@ -4426,20 +3881,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/domutils/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -4474,14 +3915,14 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.736", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz", - "integrity": "sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz", + "integrity": "sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==" }, "node_modules/elliptic": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", - "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", + "version": "6.5.6", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.6.tgz", + "integrity": "sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -4498,10 +3939,9 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/emojis-list": { "version": "3.0.0", @@ -4520,9 +3960,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4540,9 +3980,9 @@ } }, "node_modules/envinfo": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.12.0.tgz", - "integrity": "sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "bin": { "envinfo": "dist/cli.js" }, @@ -4578,9 +4018,9 @@ } }, "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==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" }, "node_modules/esbuild": { "version": "0.18.20", @@ -4588,6 +4028,7 @@ "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -4620,9 +4061,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "engines": { "node": ">=6" } @@ -4739,11 +4180,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, "node_modules/express": { "version": "4.19.2", "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", @@ -4832,22 +4268,16 @@ "node": ">=8.6.0" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -4857,9 +4287,9 @@ } }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dependencies": { "reusify": "^1.0.4" } @@ -4894,6 +4324,34 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/file-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -4975,7 +4433,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/find-up": { + "node_modules/find-up": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", @@ -4990,82 +4448,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -5094,9 +4476,9 @@ } }, "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==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", @@ -5109,6 +4491,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "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==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -5151,9 +4545,9 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -5227,37 +4621,34 @@ } }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, + "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", "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" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "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, + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dependencies": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 6" } }, "node_modules/glob-to-regexp": { @@ -5291,45 +4682,6 @@ "node": ">=8" } }, - "node_modules/globby/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/globby/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globby/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/good-listener": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", @@ -5365,11 +4717,11 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/has-property-descriptors": { @@ -5406,17 +4758,31 @@ } }, "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "engines": { "node": ">=4" } }, + "node_modules/hash-base/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/hash-sum": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", @@ -5432,9 +4798,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -5507,6 +4873,34 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/html-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/html-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/html-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/html-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -5555,6 +4949,14 @@ "node": ">= 4.0" } }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, "node_modules/html-minifier-terser/node_modules/terser": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", @@ -5587,6 +4989,20 @@ "entities": "^2.0.0" } }, + "node_modules/htmlparser2/node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -5781,9 +5197,9 @@ } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -5798,10 +5214,78 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-local/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==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5821,9 +5305,9 @@ } }, "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "engines": { "node": ">= 10" } @@ -5850,11 +5334,14 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5972,16 +5459,13 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "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" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -6002,6 +5486,14 @@ "node": ">= 10.13.0" } }, + "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==", + "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", @@ -6017,9 +5509,9 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "dev": true, "bin": { "jiti": "bin/jiti.js" @@ -6047,9 +5539,9 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "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==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/json5": { "version": "2.2.3", @@ -6188,12 +5680,41 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, - "node_modules/laravel-mix/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==", + "node_modules/laravel-mix/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/laravel-mix/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==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/laravel-mix/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/laravel-mix/node_modules/babel-loader": { @@ -6214,23 +5735,37 @@ "webpack": ">=2" } }, - "node_modules/laravel-mix/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/laravel-mix/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/laravel-mix/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==", + "node_modules/laravel-mix/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==", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">= 10" + "node": ">=7.0.0" } }, + "node_modules/laravel-mix/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/laravel-mix/node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -6247,62 +5782,84 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/laravel-mix/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/laravel-mix/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==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/laravel-mix/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/laravel-mix/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/laravel-mix/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==" + }, + "node_modules/laravel-mix/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==", "dependencies": { - "brace-expansion": "^1.1.7" + "p-locate": "^4.1.0" }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/laravel-mix/node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "node_modules/laravel-mix/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==", "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 10" + "node": ">=6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/laravel-mix/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==", + "dependencies": { + "p-limit": "^2.2.0" }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" + "engines": { + "node": ">=8" + } + }, + "node_modules/laravel-mix/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/laravel-mix/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==", + "dependencies": { + "find-up": "^4.0.0" }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } + "engines": { + "node": ">=8" } }, "node_modules/laravel-mix/node_modules/schema-utils": { @@ -6322,23 +5879,26 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/laravel-mix/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" + "node_modules/laravel-mix/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/laravel-mix/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "node_modules/laravel-mix/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 6" + "node": ">=8" } }, "node_modules/laravel-vite-plugin": { @@ -6358,9 +5918,9 @@ } }, "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==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz", + "integrity": "sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==", "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" @@ -6401,14 +5961,17 @@ } }, "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==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -6456,14 +6019,13 @@ "dependencies": { "tslib": "^2.0.3" } - }, - "node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "dev": true, - "engines": { - "node": "14 || >=16.14" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" } }, "node_modules/make-dir": { @@ -6480,14 +6042,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -6559,11 +6113,11 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -6645,6 +6199,34 @@ "webpack": "^4.4.0 || ^5.0.0" } }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/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==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/mini-css-extract-plugin/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==" + }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -6682,18 +6264,14 @@ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, "node_modules/minimist": { @@ -6705,9 +6283,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -6818,6 +6396,11 @@ "vm-browserify": "^1.0.1" } }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, "node_modules/node-notifier": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz", @@ -6831,10 +6414,21 @@ "which": "^2.0.2" } }, + "node_modules/node-notifier/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "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==" + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -6904,9 +6498,12 @@ } }, "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==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7004,28 +6601,31 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-pipe": { @@ -7059,6 +6659,12 @@ "node": ">=6" } }, + "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==", + "dev": true + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -7100,6 +6706,18 @@ "node": ">= 0.10" } }, + "node_modules/parse-asn1/node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -7140,11 +6758,11 @@ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/path-is-absolute": { @@ -7169,21 +6787,27 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -7213,9 +6837,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -7247,20 +6871,23 @@ } }, "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==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dependencies": { - "find-up": "^4.0.0" + "find-up": "^6.3.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.40", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz", + "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==", "funding": [ { "type": "opencollective", @@ -7277,8 +6904,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -7409,26 +7036,19 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" }, "engines": { - "node": ">= 14" + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, "peerDependencies": { "postcss": ">=8.0.9", @@ -7443,15 +7063,6 @@ } } }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/postcss-loader": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", @@ -7473,6 +7084,17 @@ "webpack": "^5.0.0" } }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/postcss-merge-longhand": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", @@ -7621,28 +7243,34 @@ } }, "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "postcss-selector-parser": "^6.0.11" + "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.2.14" } }, "node_modules/postcss-nested/node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -7927,14 +7555,17 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } }, "node_modules/qs": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.3.tgz", + "integrity": "sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==", "dependencies": { "side-channel": "^1.0.6" }, @@ -8242,6 +7873,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dependencies": { "glob": "^7.1.3" }, @@ -8252,45 +7884,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -8305,6 +7898,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -8372,45 +7966,14 @@ "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/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==", - "dependencies": { - "fast-deep-equal": "^3.1.3" + "engines": { + "node": ">= 12.13.0" }, - "peerDependencies": { - "ajv": "^8.8.2" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, "node_modules/select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", @@ -8434,35 +7997,13 @@ } }, "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==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -8695,16 +8236,9 @@ } }, "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, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/slash": { "version": "3.0.0", @@ -8738,9 +8272,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -8844,20 +8378,16 @@ } }, "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/string-width-cjs": { @@ -8870,31 +8400,12 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/string-width-cjs/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8902,21 +8413,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", @@ -8925,18 +8421,6 @@ "dev": true, "dependencies": { "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/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==", - "dev": true, - "engines": { - "node": ">=8" } }, "node_modules/strip-final-newline": { @@ -8966,6 +8450,34 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/style-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/style-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/style-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/style-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9020,15 +8532,68 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/sucrase/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/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "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" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/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, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "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==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -9062,18 +8627,10 @@ "node": ">=10.13.0" } }, - "node_modules/svgo/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==", - "engines": { - "node": ">= 10" - } - }, "node_modules/tailwindcss": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", - "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz", + "integrity": "sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -9084,7 +8641,7 @@ "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.19.1", + "jiti": "^1.21.0", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -9107,10 +8664,69 @@ "node": ">=14.0.0" } }, + "node_modules/tailwindcss/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, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -9120,6 +8736,18 @@ "node": ">=4" } }, + "node_modules/tailwindcss/node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -9129,9 +8757,9 @@ } }, "node_modules/terser": { - "version": "5.30.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", - "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", + "version": "5.31.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz", + "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -9178,6 +8806,34 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/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==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/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==" + }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9289,9 +8945,9 @@ "dev": true }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, "node_modules/tty-browserify": { "version": "0.0.0", @@ -9311,9 +8967,9 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.11.1.tgz", + "integrity": "sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -9368,9 +9024,9 @@ } }, "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==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "funding": [ { "type": "opencollective", @@ -9386,8 +9042,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -9404,23 +9060,23 @@ "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "dependencies": { "punycode": "^1.4.1", - "qs": "^6.11.2" + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" } }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -9464,10 +9120,11 @@ } }, "node_modules/vite": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", - "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", @@ -9519,9 +9176,9 @@ } }, "node_modules/vite-plugin-full-reload": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz", - "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", + "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", "dev": true, "dependencies": { "picocolors": "^1.0.0", @@ -9587,9 +9244,9 @@ } }, "node_modules/webpack": { - "version": "5.91.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", - "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "version": "5.93.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", + "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", @@ -9597,10 +9254,10 @@ "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.16.0", + "enhanced-resolve": "^5.17.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -9678,14 +9335,6 @@ } } }, - "node_modules/webpack-cli/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==", - "engines": { - "node": ">= 10" - } - }, "node_modules/webpack-dev-middleware": { "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", @@ -9796,25 +9445,6 @@ } } }, - "node_modules/webpack-notifier/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-notifier/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -9824,6 +9454,34 @@ "source-map": "~0.6.1" } }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/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==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/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==" + }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9866,6 +9524,70 @@ "webpack": "3 || 4 || 5" } }, + "node_modules/webpackbar/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpackbar/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpackbar/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpackbar/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/webpackbar/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpackbar/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -9907,17 +9629,16 @@ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" }, "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -9933,21 +9654,6 @@ "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true, - "engines": { - "node": ">=8" } }, "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { @@ -9965,47 +9671,63 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/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/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "node_modules/wrap-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==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "node_modules/wrap-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==", "dependencies": { - "ansi-regex": "^5.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, + "node_modules/wrap-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==" + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "engines": { "node": ">=10.0.0" }, @@ -10044,12 +9766,11 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true, + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "engines": { - "node": ">= 14" + "node": ">= 6" } }, "node_modules/yargs": { @@ -10077,47 +9798,10 @@ "node": ">=12" } }, - "node_modules/yargs/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "engines": { "node": ">=12.20" }, diff --git a/package.json b/package.json index 1578051d6..a8781e637 100644 --- a/package.json +++ b/package.json @@ -30,3 +30,4 @@ "tippy.js": "^6.3.7" } } + diff --git a/public/docs/css/algolia.css b/public/docs/css/algolia.css index b1ca3bec9..d9c531aaf 100644 --- a/public/docs/css/algolia.css +++ b/public/docs/css/algolia.css @@ -602,8 +602,7 @@ svg.DocSearch-Hit-Select-Icon { } .DocSearch-VisuallyHiddenForAccessibility { clip: rect(0 0 0 0); - -webkit-clip-path: inset(50%); - clip-path: inset(50%); + clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; diff --git a/public/docs/css/site.css b/public/docs/css/site.css index 0467a8ff9..82096e2c6 100644 --- a/public/docs/css/site.css +++ b/public/docs/css/site.css @@ -1,5 +1,5 @@ /* -! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com +! tailwindcss v3.4.7 | MIT License | https://tailwindcss.com *//* 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) @@ -123,6 +123,7 @@ textarea { font-size: 100%; /* 1 */ font-weight: inherit; /* 1 */ line-height: inherit; /* 1 */ + letter-spacing: inherit; /* 1 */ color: inherit; /* 1 */ margin: 0; /* 2 */ padding: 0; /* 3 */ @@ -135,9 +136,9 @@ select { 1. Correct the inability to style clickable types in iOS and Safari. 2. Remove default button styles. */button, -[type='button'], -[type='reset'], -[type='submit'] { +input:where([type='button']), +input:where([type='reset']), +input:where([type='submit']) { -webkit-appearance: button; /* 1 */ background-color: transparent; /* 2 */ background-image: none; /* 2 */ @@ -450,6 +451,10 @@ video { --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; }::backdrop { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; @@ -498,6 +503,10 @@ video { --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; }.container { width: 100%; }@media (min-width: 640px) {.container { @@ -545,7 +554,7 @@ video { list-style-type: decimal; margin-top: 1.25em; margin-bottom: 1.25em; - padding-left: 1.625em; + padding-inline-start: 1.625em; }.prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-alpha; }.prose :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { @@ -568,7 +577,7 @@ video { list-style-type: disc; margin-top: 1.25em; margin-bottom: 1.25em; - padding-left: 1.625em; + padding-inline-start: 1.625em; }.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { font-weight: 400; color: var(--tw-prose-counters); @@ -587,12 +596,12 @@ video { font-weight: 500; font-style: italic; color: var(--tw-prose-quotes); - border-left-width: 0.25rem; - border-left-color: var(--tw-prose-quote-borders); + border-inline-start-width: 0.25rem; + border-inline-start-color: var(--tw-prose-quote-borders); quotes: "\201C""\201D""\2018""\2019"; margin-top: 1.6em; margin-bottom: 1.6em; - padding-left: 1em; + padding-inline-start: 1em; }.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: open-quote; }.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { @@ -647,6 +656,9 @@ video { display: block; margin-top: 2em; margin-bottom: 2em; +}.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; }.prose :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 500; font-family: inherit; @@ -654,9 +666,9 @@ video { box-shadow: 0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%); font-size: 0.875em; padding-top: 0.1875em; - padding-right: 0.375em; + padding-inline-end: 0.375em; padding-bottom: 0.1875em; - padding-left: 0.375em; + padding-inline-start: 0.375em; background-color: #e5e6e8; border-radius: 0.2rem; border: none; @@ -706,9 +718,9 @@ video { margin-bottom: 1.7142857em; border-radius: 0.375rem; padding-top: 0.8571429em; - padding-right: 1.1428571em; + padding-inline-end: 1.1428571em; padding-bottom: 0.8571429em; - padding-left: 1.1428571em; + padding-inline-start: 1.1428571em; }.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color: transparent; border-width: 0; @@ -726,7 +738,7 @@ video { }.prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { width: 100%; table-layout: auto; - text-align: left; + text-align: start; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; @@ -738,9 +750,9 @@ video { color: var(--tw-prose-headings); font-weight: 600; vertical-align: bottom; - padding-right: 0.5714286em; + padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; - padding-left: 0.5714286em; + padding-inline-start: 0.5714286em; }.prose :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders); @@ -803,26 +815,23 @@ video { }.prose :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0; -}.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - margin-top: 2em; - margin-bottom: 2em; }.prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em; }.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-left: 0.375em; + padding-inline-start: 0.375em; }.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-left: 0.375em; + padding-inline-start: 0.375em; }.prose :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; -}.prose :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +}.prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; -}.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +}.prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; -}.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +}.prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; -}.prose :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +}.prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; }.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; @@ -832,7 +841,7 @@ video { margin-bottom: 1.25em; }.prose :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; - padding-left: 1.625em; + padding-inline-start: 1.625em; }.prose :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; }.prose :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { @@ -842,18 +851,18 @@ video { }.prose :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; }.prose :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-left: 0; + padding-inline-start: 0; }.prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-right: 0; + padding-inline-end: 0; }.prose :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-top: 0.5714286em; - padding-right: 0.5714286em; + padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; - padding-left: 0.5714286em; + padding-inline-start: 0.5714286em; }.prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-left: 0; + padding-inline-start: 0; }.prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-right: 0; + padding-inline-end: 0; }.prose :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; diff --git a/public/docs/js/api-table.js b/public/docs/js/api-table.js index 69bdf4872..95aab6ad7 100644 --- a/public/docs/js/api-table.js +++ b/public/docs/js/api-table.js @@ -1,5 +1,4 @@ /******/ (() => { // webpackBootstrap -var __webpack_exports__ = {}; /*!****************************************!*\ !*** ./resources/docs/js/api-table.js ***! \****************************************/ diff --git a/public/docs/js/interactive-evaluation-table.js b/public/docs/js/interactive-evaluation-table.js index ed2908623..3c6780d76 100644 --- a/public/docs/js/interactive-evaluation-table.js +++ b/public/docs/js/interactive-evaluation-table.js @@ -1,5 +1,4 @@ /******/ (() => { // webpackBootstrap -var __webpack_exports__ = {}; /*!***********************************************************!*\ !*** ./resources/docs/js/interactive-evaluation-table.js ***! \***********************************************************/ diff --git a/public/docs/js/interactive-exposure-table.js b/public/docs/js/interactive-exposure-table.js index 0add8958a..3938956b3 100644 --- a/public/docs/js/interactive-exposure-table.js +++ b/public/docs/js/interactive-exposure-table.js @@ -1,5 +1,4 @@ /******/ (() => { // webpackBootstrap -var __webpack_exports__ = {}; /*!*********************************************************!*\ !*** ./resources/docs/js/interactive-exposure-table.js ***! \*********************************************************/ diff --git a/public/docs/js/interactive-exposure-tracking-table.js b/public/docs/js/interactive-exposure-tracking-table.js index d096816c3..65a58792f 100644 --- a/public/docs/js/interactive-exposure-tracking-table.js +++ b/public/docs/js/interactive-exposure-tracking-table.js @@ -1,5 +1,4 @@ /******/ (() => { // webpackBootstrap -var __webpack_exports__ = {}; /*!******************************************************************!*\ !*** ./resources/docs/js/interactive-exposure-tracking-table.js ***! \******************************************************************/ diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 3b7409d42..be332d456 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -6588,7 +6588,6 @@ 'Statamic\\Http\\Controllers\\CP\\Updater\\UpdateProductController' => $vendorDir . '/statamic/cms/src/Http/Controllers/CP/Updater/UpdateProductController.php', 'Statamic\\Http\\Controllers\\CP\\Updater\\UpdaterController' => $vendorDir . '/statamic/cms/src/Http/Controllers/CP/Updater/UpdaterController.php', 'Statamic\\Http\\Controllers\\CP\\Users\\AccountController' => $vendorDir . '/statamic/cms/src/Http/Controllers/CP/Users/AccountController.php', - 'Statamic\\Http\\Controllers\\CP\\Users\\ExtractsFromUserFields' => $vendorDir . '/statamic/cms/src/Http/Controllers/CP/Users/ExtractsFromUserFields.php', 'Statamic\\Http\\Controllers\\CP\\Users\\PasswordController' => $vendorDir . '/statamic/cms/src/Http/Controllers/CP/Users/PasswordController.php', 'Statamic\\Http\\Controllers\\CP\\Users\\RolesController' => $vendorDir . '/statamic/cms/src/Http/Controllers/CP/Users/RolesController.php', 'Statamic\\Http\\Controllers\\CP\\Users\\UserActionController' => $vendorDir . '/statamic/cms/src/Http/Controllers/CP/Users/UserActionController.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index b6600ec0c..d652fdff5 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -7377,7 +7377,6 @@ class ComposerStaticInit9cbea597e589339dcaab293cd99e76c0 'Statamic\\Http\\Controllers\\CP\\Updater\\UpdateProductController' => __DIR__ . '/..' . '/statamic/cms/src/Http/Controllers/CP/Updater/UpdateProductController.php', 'Statamic\\Http\\Controllers\\CP\\Updater\\UpdaterController' => __DIR__ . '/..' . '/statamic/cms/src/Http/Controllers/CP/Updater/UpdaterController.php', 'Statamic\\Http\\Controllers\\CP\\Users\\AccountController' => __DIR__ . '/..' . '/statamic/cms/src/Http/Controllers/CP/Users/AccountController.php', - 'Statamic\\Http\\Controllers\\CP\\Users\\ExtractsFromUserFields' => __DIR__ . '/..' . '/statamic/cms/src/Http/Controllers/CP/Users/ExtractsFromUserFields.php', 'Statamic\\Http\\Controllers\\CP\\Users\\PasswordController' => __DIR__ . '/..' . '/statamic/cms/src/Http/Controllers/CP/Users/PasswordController.php', 'Statamic\\Http\\Controllers\\CP\\Users\\RolesController' => __DIR__ . '/..' . '/statamic/cms/src/Http/Controllers/CP/Users/RolesController.php', 'Statamic\\Http\\Controllers\\CP\\Users\\UserActionController' => __DIR__ . '/..' . '/statamic/cms/src/Http/Controllers/CP/Users/UserActionController.php', diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 7bc16ebac..62890878b 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => 'statamic/statamic', 'pretty_version' => 'dev-main', 'version' => 'dev-main', - 'reference' => 'ab89be56a344cdb01c8c88cf0efff2509d47394c', + 'reference' => '71a43033eb909943898a855399577a79d5a005af', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -1178,7 +1178,7 @@ 'statamic/statamic' => array( 'pretty_version' => 'dev-main', 'version' => 'dev-main', - 'reference' => 'ab89be56a344cdb01c8c88cf0efff2509d47394c', + 'reference' => '71a43033eb909943898a855399577a79d5a005af', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), From b9b83259260e962de766f1ba01f6686997d2c877 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Thu, 1 Aug 2024 11:28:22 -0700 Subject: [PATCH 13/43] init --- .../styles/config/vocabularies/dev/accept.txt | 3 +- .../collections/get-started/en/autocapture.md | 94 +++++++++++++++++++ content/globals/en/sdk_versions.yaml | 5 +- content/trees/collections/en/get-started.yaml | 2 + content/trees/navigation/en/get_started.yaml | 3 + 5 files changed, 103 insertions(+), 4 deletions(-) create mode 100644 content/collections/get-started/en/autocapture.md diff --git a/.github/styles/config/vocabularies/dev/accept.txt b/.github/styles/config/vocabularies/dev/accept.txt index f12fcf4a5..de062cc8e 100644 --- a/.github/styles/config/vocabularies/dev/accept.txt +++ b/.github/styles/config/vocabularies/dev/accept.txt @@ -244,4 +244,5 @@ MTUs HTTP Wix Squarespace -Clickthrough \ No newline at end of file +Clickthrough +Autocapture \ No newline at end of file diff --git a/content/collections/get-started/en/autocapture.md b/content/collections/get-started/en/autocapture.md new file mode 100644 index 000000000..50ea39158 --- /dev/null +++ b/content/collections/get-started/en/autocapture.md @@ -0,0 +1,94 @@ +--- +id: 062d89f1-1e39-4f90-8490-1ee34c5647f9 +blueprint: get-started +title: Autocapture +landing: false +exclude_from_sitemap: false +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722531117 +--- +Amplitude's Autocapture helps you gain insights as soon as you install the SDK. This document describes enabling Autocapture. + +## Autocapture for the web + +When you use them together, Amplitude's latest [Browser SDK](/docs/sdks/analytics/browser/browser-sdk-2) and [Autocapture plugin](/docs/sdks/analytics/browser/autocapture-plugin) captures default events, form field interactions, and marketing attribution information. + +### Install the SDK and plugin +Autocapture requires the latest versions of the Amplitude Browser SDK ({{sdk_versions:browser}}) and the Autocapture plugin ({{sdk_versions:visual_labeling_plugin}}) + +{{partial:tabs tabs="Script Loader, npm, yarn"}} +{{partial:tab name="Script Loader"}} +```html + + +``` +{{/partial:tab}} +{{partial:tab name="npm"}} +```bash +npm install @amplitude/analytics-browser +npm install @amplitude/plugin-autocapture-browser +``` +{{/partial:tab}} +{{partial:tab name="yarn"}} +```bash +yarn add @amplitude/analytics-browser +yarn add @amplitude/plugin-autocapture-browser +``` +{{/partial:tab}} +{{/partial:tabs}} + +### Initialize the SDK and plugin + +The Amplitude Browser SDK supports a [plugin architecture](/docs/sdks/sdk-plugins) that enables features like Autocapture. To enable the plugin, update your code with one of the following snippets, depending on your implementation. Both methods require that you define the Autocapture plugin, then call `add()` to enable it. + +{{partial:tabs tabs="Script loader, npm / yarn"}} +{{partial:tab name="Script loader"}} +```html + +``` +{{/partial:tab}} +{{partial:tab name="npm / yarn"}} +```js +import * as amplitude from '@amplitude/analytics-browser'; +import { autocapturePlugin } from '@amplitude/plugin-autocapture-browser'; + +amplitude.init(AMPLITUDE_API_KEY); +amplitude.add(autocapturePlugin()); +``` +{{/partial:tab}} +{{/partial:tabs}} + +### Content security policy (CSP) + +If your web app configures the strict Content Security Policy (CSP) for security concerns, adjust the policy to allowlist to Amplitude domains: + +* Add `https://*.amplitude.com` to `script-src` +* Add `https://*.amplitude.com` to `connect-src` + +### Autocapture for web features + +After you install and enable the SDK and plugin, the following features are available. + +#### Default events + +| Event | Description | Properties | +| --------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Page viewed | Captures when a user loads a page on your site. | Page counter, Page domain, Page location, Page path, Page title, Page URL, Session Replay ID (if enabled), Referrer, [Attribution](#attribution), [User properties](#user-properties). | +| Start session | Captures when a user starts a session on your site. | Session Replay ID (if enabled), [User properties](#user-properties). | +| End session | Captures when a user ends a session on your site. | [User properties](#user-properties). | +| Form started | Captures when a user interacts with a form on your site. | Form destination, Session Replay ID (if enabled), [User properties](#user-properties). | +| Form submitted | Captures when a user submits a form on your site. | Form destination, Session Replay ID (if enabled), [User properties](#user-properties). | +| File downloaded | Captures when a user downloads a file from your site. | File extension, File name, Link text, Link URL, Session Replay ID (if enabled), | + +For more information, see Track Default Events in the [Browser SDK 2](/docs/sdks/analytics/browser/browser-sdk-2#track-default-events) documentation. + +#### Marketing attribution + +Captures the following properties: + +* UTM parameters (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) +* Referrer parameters () diff --git a/content/globals/en/sdk_versions.yaml b/content/globals/en/sdk_versions.yaml index 4cc62aa41..df5053d96 100644 --- a/content/globals/en/sdk_versions.yaml +++ b/content/globals/en/sdk_versions.yaml @@ -1,8 +1,7 @@ -browser: 2.9.0 -visual_labeling_plugin: 0.9.0 +browser: 2.9.3 +visual_labeling_plugin: 1.0.0-beta.3 session_replay_plugin: 1.4.0 session_replay_standalone: 1.6.0 session_replay_android_plugin: 0.6.5 session_replay_android_standalone: 0.6.5 -session_replay_android_middleware: 0.6.5 experiment_android: 1.12.1 diff --git a/content/trees/collections/en/get-started.yaml b/content/trees/collections/en/get-started.yaml index a4211a5b2..2f71454a7 100644 --- a/content/trees/collections/en/get-started.yaml +++ b/content/trees/collections/en/get-started.yaml @@ -7,3 +7,5 @@ tree: entry: e4d9e0f6-a440-47d9-9f21-f1af62645bff - entry: b337d57f-f887-4596-9dc8-9397e301b7f4 + - + entry: 062d89f1-1e39-4f90-8490-1ee34c5647f9 diff --git a/content/trees/navigation/en/get_started.yaml b/content/trees/navigation/en/get_started.yaml index d07dfd576..ded19064f 100644 --- a/content/trees/navigation/en/get_started.yaml +++ b/content/trees/navigation/en/get_started.yaml @@ -46,6 +46,9 @@ tree: - id: fb66467c-e050-4c9e-bdf6-e110f8abf58b entry: 95a8c851-e03e-4b3d-907b-d3381dd46957 + - + id: 67e31de9-d899-47a7-8e8e-52be22d8a5b2 + entry: 062d89f1-1e39-4f90-8490-1ee34c5647f9 - id: 8699ae75-d49f-4d84-9090-0bef3527444c title: 'Build a Chart' From f3dc4cb15311f3c0f25ba07bfda8283fe67d6c62 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Thu, 1 Aug 2024 11:29:51 -0700 Subject: [PATCH 14/43] update ignore list --- ignore.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ignore.sh b/ignore.sh index 0a8381dbc..64d8a0459 100644 --- a/ignore.sh +++ b/ignore.sh @@ -1,7 +1,7 @@ #!/bin/bash # List of users -users=("markzegarelli" "SpencerFleury") +users=("markzegarelli" "SpencerFleury" "Theodore Chao") # Get the contributor of the last commit last_contributor=$(git log -1 --pretty=format:'%an') From ab888f9658b61f8f1f8fb7ee5a4500ae1dc84230 Mon Sep 17 00:00:00 2001 From: Xinyi Ye Date: Thu, 1 Aug 2024 13:19:21 -0700 Subject: [PATCH 15/43] AMP-105735 Browser SDK remote config --- .../browser_sdk/en/browser-sdk-2.md | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/content/collections/browser_sdk/en/browser-sdk-2.md b/content/collections/browser_sdk/en/browser-sdk-2.md index 9a91fb841..b71dae9f0 100644 --- a/content/collections/browser_sdk/en/browser-sdk-2.md +++ b/content/collections/browser_sdk/en/browser-sdk-2.md @@ -94,7 +94,8 @@ amplitude.init(AMPLITUDE_API_KEY, 'user@amplitude.com', options); | `serverZone` | `EU` or `US`. Sets the Amplitude server zone. Set this to `EU` for Amplitude projects created in `EU` data center. | `US` | | `useBatch` | `boolean`. Sets whether to upload events to Batch API instead of the default HTTP V2 API or not. | `false` | | `appVersion` | `string`. Sets an app version for events tracked. This can be the version of your application. For example: "1.0.0" | `undefined` | -| `defaultTracking` | `boolean`. Configures default event tracking. See [Track default events](#track-default-events). | `true` | +| `autocapture` | `boolean|AutocaptureOptions`. Configures autocapture tracking. | | +| `defaultTracking` | `boolean`. Deprecated. Use `autocapture` instead. Configures default event tracking. See [Track default events](#track-default-events). | `true` | | `deviceId` | `string`. Sets an identifier for the device running your application. | `UUID()` | | `cookieOptions.domain` | `string`. Sets the domain property of cookies created. | `undefined` | | `cookieOptions.expiration` | `number`. Sets expiration of cookies created in days. | 365 days | @@ -109,6 +110,7 @@ amplitude.init(AMPLITUDE_API_KEY, 'user@amplitude.com', options); | `trackingOptions` | `TrackingOptions`. Configures tracking of extra properties. | Enable all tracking options by default. | | `transport` | `string`. Sets request API to use by name. Options include `fetch` for fetch, `xhr` for `XMLHTTPRequest`, or `beacon` for `navigator.sendBeacon`. | `fetch` | | `offline` | `boolean`. Whether the SDK connects to the network. See [Offline mode](#offline-mode) | `false` | +| `fetchRemoteConfig` | `boolean`. Whether the SDK fetches remote configuration. See [Remote configurations](#remote-configuration) | `false` | {{/partial:collapse}} @@ -1196,4 +1198,20 @@ Amplitude doesn't track marketing attribution under any of the following conditi SPA typically don't experience a true page load after a visitor enters the site, which means the referrer information doesn't update when clicking internal links. UTM parameters may be dropped during SPA redirects, while the referrer remains unchanged. This is a known issue in the industry. To address this problem, you can either: - Control the page and location parameters and / or -- Unset the referrer after the first hit \ No newline at end of file +- Unset the referrer after the first hit + +### Remote configuration + +Beginning with version 2.10.0, the Amplitude Browser SDK supports remote config. By default, the SDK disables this feature. + +To enable remote config, add `fetchRemoteConfig: true` to the `amplitude.init()` call as shown below. + +```ts +amplitude.init(AMPLITUDE_API_KEY, { + fetchRemoteConfig: true +}); +``` + +When remote config is enabled, the SDK will first check if remote config has been fetched within the same session. If so, it will use the remote config stored in the indexedDB. Otherwise, it will fetch remote config from the remote config endpoint. Note that remote config will override local config. + +You can set remote config in the Amplitude app "Data -> Manage -> Settings -> Autocapture". It currently supports `config.autocapture` only. From e835668d5a846eb1fed99c0e9abca4725b0fdc0f Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Thu, 1 Aug 2024 14:57:24 -0700 Subject: [PATCH 16/43] DOC-173 first draft --- .../collections/get-started/en/autocapture.md | 143 ++++++++++++++++-- .../collections/ios_sdk/en/ios-swift-sdk.md | 3 +- 2 files changed, 135 insertions(+), 11 deletions(-) diff --git a/content/collections/get-started/en/autocapture.md b/content/collections/get-started/en/autocapture.md index 50ea39158..59a15a74c 100644 --- a/content/collections/get-started/en/autocapture.md +++ b/content/collections/get-started/en/autocapture.md @@ -75,20 +75,145 @@ After you install and enable the SDK and plugin, the following features are avai #### Default events -| Event | Description | Properties | -| --------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Page viewed | Captures when a user loads a page on your site. | Page counter, Page domain, Page location, Page path, Page title, Page URL, Session Replay ID (if enabled), Referrer, [Attribution](#attribution), [User properties](#user-properties). | -| Start session | Captures when a user starts a session on your site. | Session Replay ID (if enabled), [User properties](#user-properties). | -| End session | Captures when a user ends a session on your site. | [User properties](#user-properties). | -| Form started | Captures when a user interacts with a form on your site. | Form destination, Session Replay ID (if enabled), [User properties](#user-properties). | -| Form submitted | Captures when a user submits a form on your site. | Form destination, Session Replay ID (if enabled), [User properties](#user-properties). | -| File downloaded | Captures when a user downloads a file from your site. | File extension, File name, Link text, Link URL, Session Replay ID (if enabled), | +| Event | Description | Properties | +| --------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Page viewed | Captures when a user loads a page on your site. | Page counter, Page domain, Page location, Page path, Page title, Page URL, Session Replay ID (if enabled), Referrer, [Attribution](#marketing-attribution), [User properties](#user-properties). | +| Start session | Captures when a user starts a session on your site. | Session Replay ID (if enabled), [User properties](#user-properties). | +| End session | Captures when a user ends a session on your site. | [User properties](#user-properties). | +| Form started | Captures when a user interacts with a form on your site. | Form destination, Session Replay ID (if enabled), [User properties](#user-properties). | +| Form submitted | Captures when a user submits a form on your site. | Form destination, Session Replay ID (if enabled), [User properties](#user-properties). | +| File downloaded | Captures when a user downloads a file from your site. | File extension, File name, Link text, Link URL, Session Replay ID (if enabled), | For more information, see Track Default Events in the [Browser SDK 2](/docs/sdks/analytics/browser/browser-sdk-2#track-default-events) documentation. +{{partial:admonition type="tip" heading="Default event prefix"}} +Amplitude prefixes default events with the Amplitude logo or `[Amplitude]` in plain text. +{{/partial:admonition}} + #### Marketing attribution Captures the following properties: * UTM parameters (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) -* Referrer parameters () +* Referrer parameters (`referrer`, `referring_domain`) +* Click identifiers for Google, Facebook, Kochava, Microsoft, TikTok, X (Twitter), LinkedIn, and Reddit. +* [First-touch](/docs/sdks/analytics/browser/browser-sdk-2#first-touch-attribution) and [multi-touch](/docs/sdks/analytics/browser/browser-sdk-2#multi-touch-attribution). For more information about attribution, see [Use sessions, channels, and attribution to drive marketing analytics](/docs/analytics/marketing-analytics). + +#### User properties + +Amplitude attaches [User Properties](/docs/get-started/user-property-definitions) to all default event, unless disabled. + +#### Visual labeling for web (alpha) + +Amplitude's Visual Labeling tool enables you to identify and select individual elements on a page that you want to track. For example, if you want to track the number of users who click a **Sign up**, button you can select it with Visual Labeling, and Amplitude creates an event that targets the specific element. + +Events you add with Visual Labeling work retroactively, since Amplitude captures all form-related events starting from when your instrumentation is live. + +For more information, see [Visual Labeling](/docs/data/visual-labeling). + +## Autocapture for iOS + +The latest version of Amplitude's [iOS SDK](/docs/sdks/analytics/ios/ios-swift-sdk) includes Autocapture capabilities. + +### Install the SDK + +Install the SDK as instructed in the [iOS-Swift SDK](/docs/sdks/analytics/ios/ios-swift-sdk#install-the-sdk) documentation. + +### Initialize the SDK with default tracking enabled + +The iOS SDK enables session tracking and disables both application lifecycle tracking and screen view tracking by default. + +To enable all default tracking, initialize the SDK with the following snippet. + +{{partial:tabs tabs="Swift, Obj-C"}} +{{partial:tab name="Swift"}} +```swift +let amplitude = Amplitude(configuration: Configuration( + apiKey: "API_KEY", + defaultTracking: DefaultTrackingOptions.ALL //[tl! ~~] +)) +``` +{{/partial:tab}} +{{partial:tab name="Obj-C"}} +```objc +AMPConfiguration* configuration = [AMPConfiguration initWithApiKey:@"API_KEY"]; +configuration.defaultTracking = AMPDefaultTrackingOptions.ALL; //[tl! ~~] +Amplitude* amplitude = [Amplitude initWithConfiguration:configuration]; +``` +{{/partial:tab}} +{{/partial:tabs}} + + +### Autocapture for iOS features + +After you install and initialize the SDK, the following features are available. + +#### Default events + +| Event | Description | Properties | +| ------------------------ | ---------------------------------------------------------------------------- | ------------------------------------ | +| Start session | Captures when a user starts a session in your app. | [User properties](#user-properties). | +| End session | Captures when a user ends a session in your app. | [User properties](#user-properties). | +| Application installed | Captures when a user opens the app for the first time after they install it. | | +| Application updated | Captures when a user opens the app for the first time after they update it. | | +| Application opened | Captures when a user launches or foregrounds the app after the first open. | | +| Application backgrounded | Captures when a user backgrounds the application. | | +| Screen viewed | Captures when a user views a screen in an app. | Screen name | + +#### User properties + +Amplitude attaches [User Properties](/docs/get-started/user-property-definitions) to all default event, unless disabled. + +## Autocapture for Android + +The latest version of Amplitude's [Android SDK](/docs/sdks/analytics/android/android-kotlin-sdk) includes Autocapture capabilities. + +### Install the SDK + +Install the SDK as instructed in the [Android-Kotlin SDK](/docs/sdks/analytics/android/android-kotlin-sdk#install-the-sdk) documentation. + +### Initialize the SDK with default tracking enabled + +The Android-Kotlin SDK enables session tracking, and disables application lifecycle, screen view, and deep link tracking by default. To enable all default tracking, initialize the SDK with the following snippet: + +```kotlin +Amplitude( + Configuration( + apiKey = AMPLITUDE_API_KEY, + context = applicationContext, + defaultTracking = DefaultTrackingOptions.ALL //[tl! ~~] + ) +) +``` + +#### Default events + +| Event | Description | Properties | +| ------------------------ | ---------------------------------------------------------------------------- | ------------------------------------ | +| Start session | Captures when a user starts a session in your app. | [User properties](#user-properties). | +| End session | Captures when a user ends a session in your app. | [User properties](#user-properties). | +| Application installed | Captures when a user opens the app for the first time after they install it. | | +| Application updated | Captures when a user opens the app for the first time after they update it. | | +| Application opened | Captures when a user launches or foregrounds the app after the first open. | | +| Application backgrounded | Captures when a user backgrounds the application. | | +| Screen viewed | Captures when a user views a screen in an app. | Screen name | + +#### User properties + +Amplitude attaches [User Properties](/docs/get-started/user-property-definitions) to all default event, unless disabled. + +## Working with Autocapture + +Autocapture provides flexible options to help ensure you track the most relevant data. + +### Update event definitions + +In situations where your site or app's code changes, you can update existing event definitions to match, or create a new event that reflects the update. Autocapture consistently captures raw click events, so the new definition retroactively fixes gaps in your data due to site or application changes. + +### Adjust tracked events to control event volume + +The [Browser](/docs/sdks/analytics/browser/browser-sdk-2#track-default-events), [iOS](/docs/sdks/analytics/ios/ios-swift-sdk#track-default-events), and [Android](/docs/sdks/analytics/android/android-kotlin-sdk#track-default-events) SDKs have granular control that determines which categories of default event the SDK tracks. + +### Use Autocapture as a starting point + +Autocapture provides the quickest path to analytics, without the need for engineering support. For more complex use-cases, you may want to work with an engineer to expand your instrumentation and capture more rich metadata and events that are core to your business \ No newline at end of file diff --git a/content/collections/ios_sdk/en/ios-swift-sdk.md b/content/collections/ios_sdk/en/ios-swift-sdk.md index d001ee87b..adb1f53b0 100644 --- a/content/collections/ios_sdk/en/ios-swift-sdk.md +++ b/content/collections/ios_sdk/en/ios-swift-sdk.md @@ -299,12 +299,11 @@ When you enable this setting, Amplitude tracks the following events: - `[Amplitude] Application Updated`, this event fires when a user opens the application after updating the application, by observing the `UIApplicationDidFinishLaunchingNotification` notification underneath. - `[Amplitude] Application Opened`, this event fires when a user launches or foregrounds the application after the first open, by observing the `UIApplicationDidFinishLaunchingNotification` or `UIApplicationWillEnterForegroundNotification` notification underneath. - `[Amplitude] Application Backgrounded`, this event fires when a user backgrounds the application, by observing the `UIApplicationDidEnterBackgroundNotification` notification underneath. -- + ### Track screen views Set `defaultTracking.screenViews` to `true` to enable Amplitude to track screen view events. - {{partial:admonition type="warning" heading=""}} This feature is supported in UIKit. For Swift UI, track the corresponding event manually. {{/partial:admonition}} From b04a64b296bb95f3f116aba10498c3b53b542ec4 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Thu, 1 Aug 2024 15:04:02 -0700 Subject: [PATCH 17/43] Update hierarchy --- .../collections/get-started/en/autocapture.md | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/content/collections/get-started/en/autocapture.md b/content/collections/get-started/en/autocapture.md index 59a15a74c..c2a11628a 100644 --- a/content/collections/get-started/en/autocapture.md +++ b/content/collections/get-started/en/autocapture.md @@ -69,11 +69,7 @@ If your web app configures the strict Content Security Policy (CSP) for security * Add `https://*.amplitude.com` to `script-src` * Add `https://*.amplitude.com` to `connect-src` -### Autocapture for web features - -After you install and enable the SDK and plugin, the following features are available. - -#### Default events +### Default events | Event | Description | Properties | | --------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -90,7 +86,7 @@ For more information, see Track Default Events in the [Browser SDK 2](/docs/sdks Amplitude prefixes default events with the Amplitude logo or `[Amplitude]` in plain text. {{/partial:admonition}} -#### Marketing attribution +### Marketing attribution Captures the following properties: @@ -99,11 +95,11 @@ Captures the following properties: * Click identifiers for Google, Facebook, Kochava, Microsoft, TikTok, X (Twitter), LinkedIn, and Reddit. * [First-touch](/docs/sdks/analytics/browser/browser-sdk-2#first-touch-attribution) and [multi-touch](/docs/sdks/analytics/browser/browser-sdk-2#multi-touch-attribution). For more information about attribution, see [Use sessions, channels, and attribution to drive marketing analytics](/docs/analytics/marketing-analytics). -#### User properties +### User properties Amplitude attaches [User Properties](/docs/get-started/user-property-definitions) to all default event, unless disabled. -#### Visual labeling for web (alpha) +### Visual labeling for web (alpha) Amplitude's Visual Labeling tool enables you to identify and select individual elements on a page that you want to track. For example, if you want to track the number of users who click a **Sign up**, button you can select it with Visual Labeling, and Amplitude creates an event that targets the specific element. @@ -143,12 +139,7 @@ Amplitude* amplitude = [Amplitude initWithConfiguration:configuration]; {{/partial:tab}} {{/partial:tabs}} - -### Autocapture for iOS features - -After you install and initialize the SDK, the following features are available. - -#### Default events +### Default events | Event | Description | Properties | | ------------------------ | ---------------------------------------------------------------------------- | ------------------------------------ | @@ -160,7 +151,7 @@ After you install and initialize the SDK, the following features are available. | Application backgrounded | Captures when a user backgrounds the application. | | | Screen viewed | Captures when a user views a screen in an app. | Screen name | -#### User properties +### User properties Amplitude attaches [User Properties](/docs/get-started/user-property-definitions) to all default event, unless disabled. @@ -186,7 +177,7 @@ Amplitude( ) ``` -#### Default events +### Default events | Event | Description | Properties | | ------------------------ | ---------------------------------------------------------------------------- | ------------------------------------ | @@ -198,7 +189,7 @@ Amplitude( | Application backgrounded | Captures when a user backgrounds the application. | | | Screen viewed | Captures when a user views a screen in an app. | Screen name | -#### User properties +### User properties Amplitude attaches [User Properties](/docs/get-started/user-property-definitions) to all default event, unless disabled. From a51d9fcecf7a12130a9170516f2c5092ca435693 Mon Sep 17 00:00:00 2001 From: SpencerFleury <159941756+SpencerFleury@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:42:04 -0700 Subject: [PATCH 18/43] Created article for Data Access Control DOC-27 --- ...sensitive-data-with-data-access-control.md | 47 ++++++++++++++++++ content/trees/collections/en/data.yaml | 2 + content/trees/navigation/en/data.yaml | 3 ++ .../.meta/chart_with_pii.png.yaml | 7 +++ .../img/account-management/chart_with_pii.png | Bin 0 -> 154225 bytes 5 files changed, 59 insertions(+) create mode 100644 content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md create mode 100644 public/docs/output/img/account-management/.meta/chart_with_pii.png.yaml create mode 100644 public/docs/output/img/account-management/chart_with_pii.png diff --git a/content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md b/content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md new file mode 100644 index 000000000..580522048 --- /dev/null +++ b/content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md @@ -0,0 +1,47 @@ +--- +id: 371fc9ac-cc84-4c44-b058-c6150127ccde +blueprint: data +title: 'Manage access to sensitive data with Data Access Control' +this_article_will_help_you: + - 'Easily prevent users from accessing sensitive or restricted information in Amplitude' +landing: false +exclude_from_sitemap: false +updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae +updated_at: 1722551768 +--- +Enterprise-level organizations often collect data that can include revenue data, personally-identifiable information (PII), and other sensitive information. Amplitude’s **data access control (DAC)** feature enables these organizations to easily manage access to these categories of data, in a way that prevents unauthorized users from gaining access to it, and that helps prevent the data from inadvertently leaking out. + +DAC works within Amplitude’s Groups framework. Admins grant or restrict access to PII, revenue data, and sensitive information to all members of a group. From there, they can [add or remove users from these groups](/docs/admin/account-management/manage-permission-groups#edit-a-group) as access requirements change, either on an individual or organizational level. + +For example, when an unauthorized user tries to view a chart that includes restricted information, Amplitude blocks the chart from loading on the user’s screen. Those users are also unable to create new charts that might include restricted data. This is true not only for charts, but also for cohorts, dashboards, notebooks, and user sessions. + +{{partial:admonition type='note'}} +Organization admins always have access to all data classifications, regardless of any DAC restrictions.{{/partial:admonition}} + +When a user encounters a chart they’re unable to view because of the presence of restricted data, Amplitude specifies the properties or cohorts DAC has blocked. + +![chart_with_pii.png](/docs/output/img/account-management/chart_with_pii.png) + +The user can then exclude the restricted data and view the chart (or cohort, dashboard, notebook, or user session) without it. + +## Set access for specific categories of sensitive data + +Setting access levels is a two-stage process. First, you must **classify** your data. When that’s complete, you can set up **permissioning**. + +{{/partial:admonition type='note'}} +DAC applies only to properties. It **doesn’t** apply to definitions or metadata. +{{/partial:admonition} + +### Classify properties + +1. In Amplitude Data, navigate to *Properties* and select the tab that contains the properties you want to classify. +2. Click the name of the property you’re interested in. You can manage event, user, and group properties directly; derived properties inherit all the classifications of their parent properties. +3. In the details panel that opens, click the *Classification* drop-down and select all relevant classifications for this property. Then click *Send*. +4. Repeat steps 2 and 3 for each property you want to classify. + +### Set up permissioning + +1. In Amplitude Data, navigate to *Groups* and click the name of the group you’re interested in. Alternatively, you can [create a new group](/docs/admin/account-management/manage-permission-groups#create-a-group). +2. Open the group’s *Data Access* tab. All three controllable classifications are listed here: PII, revenue, and sensitive. +3. For each classification, select *Yes* to allow members of the group to view this data, or *No* to deny them access. +4. When you’re done, click *Save*. \ No newline at end of file diff --git a/content/trees/collections/en/data.yaml b/content/trees/collections/en/data.yaml index 962c5096a..4438bb4dc 100644 --- a/content/trees/collections/en/data.yaml +++ b/content/trees/collections/en/data.yaml @@ -19,3 +19,5 @@ tree: entry: e738a4d5-a463-405e-aad0-665115a2b631 - entry: a856a44d-9cc7-4964-bf6b-7c15e69b0f2c + - + entry: 371fc9ac-cc84-4c44-b058-c6150127ccde diff --git a/content/trees/navigation/en/data.yaml b/content/trees/navigation/en/data.yaml index 3ab723664..1309f97a3 100644 --- a/content/trees/navigation/en/data.yaml +++ b/content/trees/navigation/en/data.yaml @@ -98,6 +98,9 @@ tree: - id: 6ac0be64-1583-4943-9867-ac268697694c entry: eabe8de8-fe63-42b8-a93d-eb1d10884b43 + - + id: 436519a4-68d8-42fc-b92d-00c7228f196c + entry: 371fc9ac-cc84-4c44-b058-c6150127ccde - id: 0779f92f-a386-49c7-b231-c92046dd3e03 title: 'Clean and Fix Data' diff --git a/public/docs/output/img/account-management/.meta/chart_with_pii.png.yaml b/public/docs/output/img/account-management/.meta/chart_with_pii.png.yaml new file mode 100644 index 000000000..b998b1cb3 --- /dev/null +++ b/public/docs/output/img/account-management/.meta/chart_with_pii.png.yaml @@ -0,0 +1,7 @@ +data: { } +size: 154225 +last_modified: 1722551448 +width: 1125 +height: 608 +mime_type: image/png +duration: null diff --git a/public/docs/output/img/account-management/chart_with_pii.png b/public/docs/output/img/account-management/chart_with_pii.png new file mode 100644 index 0000000000000000000000000000000000000000..c5c82c57efb56801839a4a844f8046930ebe730b GIT binary patch literal 154225 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 literal 0 HcmV?d00001 From 5383ed1f052b31073f8d0c16ee8a463fef4effe4 Mon Sep 17 00:00:00 2001 From: SpencerFleury <159941756+SpencerFleury@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:43:40 -0700 Subject: [PATCH 19/43] Update manage-access-to-sensitive-data-with-data-access-control.md --- ...ccess-to-sensitive-data-with-data-access-control.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md b/content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md index 580522048..aa708feba 100644 --- a/content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md +++ b/content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md @@ -9,7 +9,7 @@ exclude_from_sitemap: false updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae updated_at: 1722551768 --- -Enterprise-level organizations often collect data that can include revenue data, personally-identifiable information (PII), and other sensitive information. Amplitude’s **data access control (DAC)** feature enables these organizations to easily manage access to these categories of data, in a way that prevents unauthorized users from gaining access to it, and that helps prevent the data from inadvertently leaking out. +Enterprise-level organizations often collect data that can include revenue data, personally identifiable information (PII), and other sensitive information. Amplitude’s **data access control (DAC)** feature enables these organizations to easily manage access to these categories of data, in a way that prevents unauthorized users from gaining access to it, and that helps prevent the data from inadvertently leaking out. DAC works within Amplitude’s Groups framework. Admins grant or restrict access to PII, revenue data, and sensitive information to all members of a group. From there, they can [add or remove users from these groups](/docs/admin/account-management/manage-permission-groups#edit-a-group) as access requirements change, either on an individual or organizational level. @@ -26,7 +26,7 @@ The user can then exclude the restricted data and view the chart (or cohort, das ## Set access for specific categories of sensitive data -Setting access levels is a two-stage process. First, you must **classify** your data. When that’s complete, you can set up **permissioning**. +Setting access levels is a two-stage process. First, you must **classify** your data. When that’s complete, you can set up **permissions**. {{/partial:admonition type='note'}} DAC applies only to properties. It **doesn’t** apply to definitions or metadata. @@ -39,9 +39,9 @@ DAC applies only to properties. It **doesn’t** apply to definitions or metadat 3. In the details panel that opens, click the *Classification* drop-down and select all relevant classifications for this property. Then click *Send*. 4. Repeat steps 2 and 3 for each property you want to classify. -### Set up permissioning +### Set up permissions -1. In Amplitude Data, navigate to *Groups* and click the name of the group you’re interested in. Alternatively, you can [create a new group](/docs/admin/account-management/manage-permission-groups#create-a-group). -2. Open the group’s *Data Access* tab. All three controllable classifications are listed here: PII, revenue, and sensitive. +1. In Amplitude Data, navigate to *Groups* and click the name of the group you’re interested in. You can also [create a new group](/docs/admin/account-management/manage-permission-groups#create-a-group). +2. Open the group’s *Data Access* tab. All three controllable classifications are visible here: PII, revenue, and sensitive. 3. For each classification, select *Yes* to allow members of the group to view this data, or *No* to deny them access. 4. When you’re done, click *Save*. \ No newline at end of file From fedd1035465678b5affe63590768eaecb36c9be0 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Fri, 2 Aug 2024 14:43:18 -0700 Subject: [PATCH 20/43] update CDC verbiage --- .../source-catalog/en/snowflake.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/collections/source-catalog/en/snowflake.md b/content/collections/source-catalog/en/snowflake.md index c80ff5e37..6c2880449 100644 --- a/content/collections/source-catalog/en/snowflake.md +++ b/content/collections/source-catalog/en/snowflake.md @@ -43,24 +43,24 @@ With Amplitude's Snowflake integration, you can ingest Snowflake data directly i - Maximum running time for a single Snowflake SQL query is 12 hours. {{partial:admonition type="warning" title="User and Group properties sync"}} -Amplitude's Data Warehouse Import sometimes processes events in parallel, so time-ordered syncing of user and group properties on events is not guaranteed in the same way as submitting events directly to the Identify and Group Identify APIs. +Amplitude's Data Warehouse Import sometimes processes events in parallel, so time-ordered syncing of user and group properties on events isn't guaranteed in the same way as submitting events directly to the Identify and Group Identify APIs. {{/partial:admonition}} ## Modeling methods -Amplitude's Snowflake Data Import supports two methods for importing data from Snowflake, Table Selection UI and Custom SQL Query. +Amplitude's Snowflake Data Import supports two methods for importing data from Snowflake, Change Data Capture and Custom SQL Query. -| | Table Selection UI | Custom SQL Query | +| | Change Data Capture | Custom SQL Query | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | Import data types | Event, User property, Group Property | Event, User property, Group Property | | Import strategy | Change-based | Time-based, Full Sync (only for group and user properties) | | When to use | Recommended for most use cases, user-friendly, minimal SQL knowledge required.
Limited data source selection functionality, consider creating Snowflake VIEW (see Prerequisites for details). | Use when data selection requires customization, even though it may lead to data discrepancies and higher costs if misconfigured | -### Table selection UI +### Change Data Capture -The Table Selection UI modeling method supports Change Data Capture (CDC). This method identifies and captures changes made to data in a database and delivers those changes in real time to a downstream process or system. +Change Data Capture identifies and captures changes made to data in a database and delivers those changes in real time to a downstream process or system. -For the Snowflake source in Amplitude, Table Selection UI uses CDC mechanisms available in Snowflake, [Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel) and [CHANGES](https://docs.snowflake.com/en/sql-reference/constructs/changes) clause, to identify changes made in the data source since the last successfully completed import job. +For the Snowflake source in Amplitude, Change Data Capture uses mechanisms available in Snowflake, [Time Travel](https://docs.snowflake.com/en/user-guide/data-time-travel) and [CHANGES](https://docs.snowflake.com/en/sql-reference/constructs/changes) clause, to identify changes made in the data source since the last successfully completed import job. #### Prerequisites and considerations @@ -102,9 +102,9 @@ To add Snowflake as a data source in your Amplitude project, follow these steps: 4. Copy the autogenerated SQL query and run it in Snowflake to give Amplitude the proper permissions. 5. After running the query, click **Next** to test the connection. 6. After the test is successful, click **Next** again to move on to the data selection stage. -7. Choose the modeling method, [Table Selection UI](#table-selection-ui-settings) or [Custom SQL Query](#custom-sql-query-settings). +7. Choose the modeling method, [Change Data Capture](#table-selection-ui-settings) or [Custom SQL Query](#custom-sql-query-settings). -### Table Selection UI settings +### Change Data Capture settings Configure the modeling method: @@ -138,7 +138,7 @@ Amplitude displays a notification indicating you enable the new Snowflake source If you have any issues or questions while following this flow, contact the Amplitude team. -## Migrate from Custom SQL to Table Selection UI +## Migrate from Custom SQL to Change Data Capture To change the modeling method of your Snowflake source: @@ -161,7 +161,7 @@ To change the modeling method of your Snowflake source: To revert to a Custom SQL connection from an already migrated source, open the source configuration and click **Revert to SQL Query Import**. {{partial:admonition type="info" title="Snowflake data sources"}} -When you roll back from the Table Selection UI to Custom SQL connection in the, use the same data source (table or view) in Snowflake to avoid inconsistencies. +When you roll back from the Change Data Capture to Custom SQL connection in the, use the same data source (table or view) in Snowflake to avoid inconsistencies. {{/partial:admonition}} ## Data fields From 66a05b4aa00f0e40613de3da41e5ab312e9037d8 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Mon, 5 Aug 2024 10:29:38 -0700 Subject: [PATCH 21/43] fix admonition tag --- ...ata-access-control.md => data-access-control.md} | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) rename content/collections/data/en/{manage-access-to-sensitive-data-with-data-access-control.md => data-access-control.md} (90%) diff --git a/content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md b/content/collections/data/en/data-access-control.md similarity index 90% rename from content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md rename to content/collections/data/en/data-access-control.md index aa708feba..5e202a7ca 100644 --- a/content/collections/data/en/manage-access-to-sensitive-data-with-data-access-control.md +++ b/content/collections/data/en/data-access-control.md @@ -6,8 +6,8 @@ this_article_will_help_you: - 'Easily prevent users from accessing sensitive or restricted information in Amplitude' landing: false exclude_from_sitemap: false -updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae -updated_at: 1722551768 +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722878855 --- Enterprise-level organizations often collect data that can include revenue data, personally identifiable information (PII), and other sensitive information. Amplitude’s **data access control (DAC)** feature enables these organizations to easily manage access to these categories of data, in a way that prevents unauthorized users from gaining access to it, and that helps prevent the data from inadvertently leaking out. @@ -16,7 +16,8 @@ DAC works within Amplitude’s Groups framework. Admins grant or restrict access For example, when an unauthorized user tries to view a chart that includes restricted information, Amplitude blocks the chart from loading on the user’s screen. Those users are also unable to create new charts that might include restricted data. This is true not only for charts, but also for cohorts, dashboards, notebooks, and user sessions. {{partial:admonition type='note'}} -Organization admins always have access to all data classifications, regardless of any DAC restrictions.{{/partial:admonition}} +Organization admins always have access to all data classifications, regardless of any DAC restrictions. +{{/partial:admonition}} When a user encounters a chart they’re unable to view because of the presence of restricted data, Amplitude specifies the properties or cohorts DAC has blocked. @@ -26,11 +27,11 @@ The user can then exclude the restricted data and view the chart (or cohort, das ## Set access for specific categories of sensitive data -Setting access levels is a two-stage process. First, you must **classify** your data. When that’s complete, you can set up **permissions**. +Setting access levels is a two-stage process. First, y**classify** your data. When that’s complete, you can set up **permissions**. -{{/partial:admonition type='note'}} +{{partial:admonition type='note'}} DAC applies only to properties. It **doesn’t** apply to definitions or metadata. -{{/partial:admonition} +{{/partial:admonition}} ### Classify properties From f01ceea8d200bed5417461fcc2a9b50f60eebeb4 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Mon, 5 Aug 2024 11:40:14 -0700 Subject: [PATCH 22/43] Add Data / Autocapture article [skip deploy] --- content/collections/data/en/autocapture.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 content/collections/data/en/autocapture.md diff --git a/content/collections/data/en/autocapture.md b/content/collections/data/en/autocapture.md new file mode 100644 index 000000000..af3e3cd3b --- /dev/null +++ b/content/collections/data/en/autocapture.md @@ -0,0 +1,9 @@ +--- +id: 1017e95b-5dd2-46fc-82b4-54e61d4fb755 +blueprint: data +title: Autocapture +landing: false +exclude_from_sitemap: false +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722883100 +--- From edef0a7cdac6cd28152c81e6e8df270de20d63f2 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Mon, 5 Aug 2024 13:59:27 -0700 Subject: [PATCH 23/43] Update Autocapture plugin article --- .../browser_sdk/en/autocapture-plugin.md | 58 +++++++++++++++++++ content/trees/collections/en/data.yaml | 2 + 2 files changed, 60 insertions(+) diff --git a/content/collections/browser_sdk/en/autocapture-plugin.md b/content/collections/browser_sdk/en/autocapture-plugin.md index f1c690cfa..d0d8f8481 100644 --- a/content/collections/browser_sdk/en/autocapture-plugin.md +++ b/content/collections/browser_sdk/en/autocapture-plugin.md @@ -10,6 +10,64 @@ supported_languages: updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 updated_at: 1718657468 --- + +{{partial:admonition type="warning" heading="Autocapture plugin is deprecated"}} +As of August 8, 2024, Amplitude's Autocapture plugin for the Browser SDK is deprecated. + +If you used the Autocapture plugin prior to August 8, Amplitude recommends that you remove the plugin from your instrumentation, and update Browser SDK to version 2.10.0 or above. Version 2.10.0 ships with Autocapture included. +{{/partial:admonition}} + +## Update to the built-in Autocapture + +If you used the Autocapture plugin, and updated the Browser SDK to version 2.10.0 or newer, complete the following steps to remove the plugin, and used the Autocapture that ships with Browser SDK. + +### Script loader + +Replace your referenced script with the following snippet: + +```html + +``` + +### Npm or yarn + +If you use npm or yarn to add the Browser SDK, update the Browser SDK package, and remove the Autocapture plugin. + +```js +// package.json +{ + "dependencies": { + "@amplitude/analytics-browser": "^2.10.0", // make sure the minimum version is 2.10.0 + "@amplitude/plugin-autocapture-browser": "0.9.0", //[tl! --] + } +} +``` + +In your script, remove references to the Autocapture plugin. + +```js +import * as amplitude from '@amplitude/analytics-browser'; +import { autocapturePlugin } from '@amplitude/plugin-autocapture-browser'; //[tl! --] + +amplitude.init(AMPLITUDE_API_KEY); //[tl! --] +amplitude.init(AMPLITUDE_API_KEY, { //[tl! ++: 4] + autocapture: { + elementInteractions: true, + }, +}); +amplitude.add(autocapturePlugin()); //[tl! --] +``` + +--- + Amplitude's Autocapture plugin extends the events and properties that Amplitude tracks by default, and enables Visual Labeling to enable you to define events based on elements on your site. For more information about Visual Labeling, see [Visual Labeling](/docs/data/visual-labeling). ## Installation diff --git a/content/trees/collections/en/data.yaml b/content/trees/collections/en/data.yaml index 962c5096a..fbb84227d 100644 --- a/content/trees/collections/en/data.yaml +++ b/content/trees/collections/en/data.yaml @@ -19,3 +19,5 @@ tree: entry: e738a4d5-a463-405e-aad0-665115a2b631 - entry: a856a44d-9cc7-4964-bf6b-7c15e69b0f2c + - + entry: 1017e95b-5dd2-46fc-82b4-54e61d4fb755 From 8103284f33abd0253156eb73a399a129082f8ed6 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Mon, 5 Aug 2024 14:00:17 -0700 Subject: [PATCH 24/43] Browser SDK 1 in maintenance --- content/collections/browser_sdk/en/browser-sdk-1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/collections/browser_sdk/en/browser-sdk-1.md b/content/collections/browser_sdk/en/browser-sdk-1.md index be00f4f11..87096d45c 100644 --- a/content/collections/browser_sdk/en/browser-sdk-1.md +++ b/content/collections/browser_sdk/en/browser-sdk-1.md @@ -2,7 +2,7 @@ id: 8471af8b-e132-4073-8330-d5dd7bbbd8ae blueprint: browser_sdk title: 'Browser SDK 1' -sdk_status: current +sdk_status: maintenance article_type: core supported_languages: - js @@ -13,7 +13,7 @@ bundle_url: 'https://www.npmjs.com/package/@amplitude/analytics-browser/v/1.13.4 api_reference_url: 'https://amplitude.github.io/Amplitude-TypeScript/' shields_io_badge: 'https://img.shields.io/npm/v/@amplitude/analytics-browser/v1.svg' updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1721756281 +updated_at: 1722891605 major_version: 1 ampli_article: f7989230-bf1c-48aa-ad61-2bc2b3e15a8c migration_guide: From e77662d4fc5a397f6acd54090756ab13bbbb41b9 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Mon, 5 Aug 2024 14:04:42 -0700 Subject: [PATCH 25/43] Update Browser SDK 2 metadata --- .../collections/browser_sdk/en/ampli-for-browser-sdk-2-0.md | 4 +++- content/collections/browser_sdk/en/browser-sdk-1.md | 4 +--- content/collections/browser_sdk/en/browser-sdk-2.md | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/content/collections/browser_sdk/en/ampli-for-browser-sdk-2-0.md b/content/collections/browser_sdk/en/ampli-for-browser-sdk-2-0.md index 03ccabf0d..31ba7aad5 100644 --- a/content/collections/browser_sdk/en/ampli-for-browser-sdk-2-0.md +++ b/content/collections/browser_sdk/en/ampli-for-browser-sdk-2-0.md @@ -10,7 +10,7 @@ supported_languages: - ts bundle_url: 'https://www.npmjs.com/package/@amplitude/ampli?activeTab=versions' updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1721151325 +updated_at: 1722891655 ampli_examples: - id: lyop1tqs @@ -20,6 +20,8 @@ ampli_examples: id: lyop20ks ampli_language: TypeScript ampli_example_link: 'https://github.com/amplitude/ampli-examples/blob/main/browser/typescript/v2/react-app' +migration_guide: + - 9b155be9-bb32-428c-9f49-6e00f9630547 --- The [Ampli Wrapper](/docs/sdks/ampli) is a generated, strongly typed API for tracking Analytics events based on your Tracking Plan in Amplitude Data. The tracking library exposes a function for every event in your team’s tracking plan. The function’s arguments correspond to the event’s properties. diff --git a/content/collections/browser_sdk/en/browser-sdk-1.md b/content/collections/browser_sdk/en/browser-sdk-1.md index 87096d45c..2f8146a88 100644 --- a/content/collections/browser_sdk/en/browser-sdk-1.md +++ b/content/collections/browser_sdk/en/browser-sdk-1.md @@ -13,11 +13,9 @@ bundle_url: 'https://www.npmjs.com/package/@amplitude/analytics-browser/v/1.13.4 api_reference_url: 'https://amplitude.github.io/Amplitude-TypeScript/' shields_io_badge: 'https://img.shields.io/npm/v/@amplitude/analytics-browser/v1.svg' updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1722891605 +updated_at: 1722891630 major_version: 1 ampli_article: f7989230-bf1c-48aa-ad61-2bc2b3e15a8c -migration_guide: - - 9b155be9-bb32-428c-9f49-6e00f9630547 exclude_from_sitemap: false source: 'https://www.docs.developers.amplitude.com/data/sdks/typescript-browser/' package_name: '@amplitude/analytics-browser' diff --git a/content/collections/browser_sdk/en/browser-sdk-2.md b/content/collections/browser_sdk/en/browser-sdk-2.md index 9a91fb841..b430e76fe 100644 --- a/content/collections/browser_sdk/en/browser-sdk-2.md +++ b/content/collections/browser_sdk/en/browser-sdk-2.md @@ -12,15 +12,15 @@ releases_url: 'https://github.com/amplitude/Amplitude-TypeScript/releases?q=anal bundle_url: 'https://www.npmjs.com/package/@amplitude/analytics-browser' shields_io_badge: 'https://img.shields.io/npm/v/@amplitude/analytics-browser/latest.svg' updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1721756275 +updated_at: 1722891854 major_version: 2 ampli_article: 5afa91b7-c12d-425a-b4b6-661061e5843a exclude_from_sitemap: false source: 'https://www.docs.developers.amplitude.com/data/sdks/browser-2/' -plugins: - - f0bf544a-7505-45ef-89ad-e7fe6ec71fbf package_name: '@amplitude/analytics-browser' platform: Browser +migration_guide: + - 9b155be9-bb32-428c-9f49-6e00f9630547 --- Amplitude's Browser SDK 2 lets you send events to Amplitude. From c2c1224d1c237dd403ef320efb82c35154318d45 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Mon, 5 Aug 2024 15:18:52 -0700 Subject: [PATCH 26/43] new data nav --- .../data/en/amplitude-data-settings.md | 4 +- .../data/en/change-event-activity-status.md | 4 +- .../data/en/change-event-category.md | 12 +- .../collections/data/en/configure-schema.md | 6 +- .../data/en/cross-project-analysis.md | 4 +- content/collections/data/en/data-overview.md | 6 +- .../data/en/data-planning-playbook.md | 6 +- .../data/en/data-planning-workflow.md | 4 +- .../en/display-names-in-amplitude-data.md | 4 +- content/collections/data/en/lookup-tables.md | 6 +- .../collections/data/en/object-management.md | 4 +- .../collections/data/en/override-property.md | 6 +- .../en/property-updates-property-groups.md | 4 +- .../data/en/revert-overridden-property.md | 4 +- content/collections/data/en/time-to-live.md | 10 +- .../collections/data/en/transformations.md | 4 +- .../en/understand-ip-address-and-location.md | 4 +- .../data/en/update-property-data-type.md | 12 +- .../data/en/use-ai-data-assistant.md | 4 +- content/collections/data/en/use-ampli.md | 12 +- .../data/en/user-properties-and-events.md | 6 +- .../collections/data/en/validate-events.md | 4 +- .../collections/data/en/work-with-branches.md | 12 +- content/trees/navigation/en/data.yaml | 256 +++++++++--------- 24 files changed, 213 insertions(+), 185 deletions(-) diff --git a/content/collections/data/en/amplitude-data-settings.md b/content/collections/data/en/amplitude-data-settings.md index 747ecb990..325ce0e69 100644 --- a/content/collections/data/en/amplitude-data-settings.md +++ b/content/collections/data/en/amplitude-data-settings.md @@ -1,14 +1,14 @@ --- id: 9fbd24d0-c90c-497c-8cca-5b345f1058d6 blueprint: data -title: 'Configure and manage your Amplitude Data settings' +title: 'Manage your Amplitude Data settings' source: 'https://help.amplitude.com/hc/en-us/articles/5078848559259-Configure-and-manage-your-Amplitude-Data-settings' this_article_will_help_you: - 'Understand and manage all settings related to your Amplitude Data projects' landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717611886 +updated_at: 1722894995 --- In the Settings page, you will: diff --git a/content/collections/data/en/change-event-activity-status.md b/content/collections/data/en/change-event-activity-status.md index bf2aadd72..f09907fc1 100644 --- a/content/collections/data/en/change-event-activity-status.md +++ b/content/collections/data/en/change-event-activity-status.md @@ -1,7 +1,7 @@ --- id: 4116b5ac-6eb0-4b39-8b13-470a135f2143 blueprint: data -title: "Change an event's activity status" +title: 'Event activity status' source: 'https://help.amplitude.com/hc/en-us/articles/17050354126619-Change-an-event-s-activity-status' this_article_will_help_you: - 'Understand what constitutes an active or inactive event' @@ -9,7 +9,7 @@ this_article_will_help_you: landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717620469 +updated_at: 1722895620 --- You can specify whether an event should be considered an **active** or **inactive** event. A good way to think about the difference is that an active event is one the user actively engaged with, like clicking the Add to Cart button. An **inactive** event is one that happened to the user, without any specific action on their part. Some good examples of this would be events like `Push Notification Sent` or `Message Received`. diff --git a/content/collections/data/en/change-event-category.md b/content/collections/data/en/change-event-category.md index c45c3a209..65c734b55 100644 --- a/content/collections/data/en/change-event-category.md +++ b/content/collections/data/en/change-event-category.md @@ -1,9 +1,13 @@ --- -title: "Change an event’s category" -source: "https://help.amplitude.com/hc/en-us/articles/17050453062811-Change-an-event-s-category" id: ea221b5f-e025-4904-9343-245bafb90b65 +blueprint: data +title: 'Event categorization' +source: 'https://help.amplitude.com/hc/en-us/articles/17050453062811-Change-an-event-s-category' +landing: false +exclude_from_sitemap: false +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722895597 --- - You can update an event type's category directly from the *Events* tab. To do so, follow these steps: 1. Click the checkbox next to the event name. @@ -13,4 +17,4 @@ You can update an event type's category directly from the *Events* tab. To do so This only applies to **active** events that are **included in your tracking plan**. It also **doesn't** apply to custom events. {{/partial:admonition}} -You can also change the event's category from the *Category* column in the *Events* table or from inside its right-hand fly-out panel. From the *Events* table, change the status from the *Category* column's drop-down menu. Click the event name to open its *Details* panel, then navigate to *Category* and select the new category from the drop-down menu. +You can also change the event's category from the *Category* column in the *Events* table or from inside its right-hand fly-out panel. From the *Events* table, change the status from the *Category* column's drop-down menu. Click the event name to open its *Details* panel, then navigate to *Category* and select the new category from the drop-down menu. \ No newline at end of file diff --git a/content/collections/data/en/configure-schema.md b/content/collections/data/en/configure-schema.md index b8217e047..eebec3a8d 100644 --- a/content/collections/data/en/configure-schema.md +++ b/content/collections/data/en/configure-schema.md @@ -1,14 +1,14 @@ --- id: d15d30d7-05f6-498f-bf9c-9a7432322077 blueprint: data -title: 'Configure the Schema settings to handle unexpected data' +title: 'Protect your schema from unexpected data' source: 'https://help.amplitude.com/hc/en-us/articles/360055495852-Configure-the-Schema-settings-to-handle-unexpected-data' this_article_will_help_you: - 'Eliminate Schema errors caused by unexpected data' landing: false exclude_from_sitemap: false -updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae -updated_at: 1720552894 +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722895369 --- Sometimes, Amplitude might receive data from your app that it doesn't know what to do with. This is usually the result of a **schema violation,** and it means the data Amplitude has just received isn't accounted for in your schema. If you see a schema violation, you've probably neglected to plan for that particular data type or value when you first set up your schema. diff --git a/content/collections/data/en/cross-project-analysis.md b/content/collections/data/en/cross-project-analysis.md index bafb4cb58..cec5bda92 100644 --- a/content/collections/data/en/cross-project-analysis.md +++ b/content/collections/data/en/cross-project-analysis.md @@ -1,14 +1,14 @@ --- id: 6389c912-154c-42fe-afea-07db4a295404 blueprint: data -title: 'Cross-project analysis in Amplitude Data' +title: 'Cross-project analysis with Portfolios' source: 'https://help.amplitude.com/hc/en-us/articles/14909802992283-Cross-project-analysis-in-Amplitude-Data' this_article_will_help_you: - 'Create or import a data portfolio to analyze data from multiple source projects at once' landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717622895 +updated_at: 1722895919 --- Amplitude Data's **portfolio** feature lets you create cross-product analyses by combining multiple source projects into a single view.  diff --git a/content/collections/data/en/data-overview.md b/content/collections/data/en/data-overview.md index d880f0520..a18d5985b 100644 --- a/content/collections/data/en/data-overview.md +++ b/content/collections/data/en/data-overview.md @@ -1,10 +1,10 @@ --- id: c5166da1-e099-4e0b-a870-b06b10057c19 blueprint: data -title: 'Data overview' +title: 'Overview of Amplitude Data' exclude_from_sitemap: false -updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae -updated_at: 1721925948 +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722894813 landing: true landing_blurb: 'Get up to speed with Amplitude Data.' --- diff --git a/content/collections/data/en/data-planning-playbook.md b/content/collections/data/en/data-planning-playbook.md index c30f692ad..623db18f5 100644 --- a/content/collections/data/en/data-planning-playbook.md +++ b/content/collections/data/en/data-planning-playbook.md @@ -1,15 +1,15 @@ --- id: 2886ff4d-cb6d-4327-a412-83c4e5c3aff7 blueprint: data -title: 'Data planning playbook' +title: 'Plan your Taxonomy' source: 'https://help.amplitude.com/hc/en-us/articles/115000465251-Data-planning-playbook' this_article_will_help_you: - 'Understand the basics of users, events, and properties' - 'Learn techniques for planning your taxonomy' landing: false exclude_from_sitemap: false -updated_by: 5817a4fa-a771-417a-aa94-a0b1e7f55eae -updated_at: 1719870354 +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722895120 --- Using Amplitude effectively requires you to first identify the events and properties you want to track. Designing a solid, scalable taxonomy can help make your analyses easier, avoid data gaps, and prevent future data issues. diff --git a/content/collections/data/en/data-planning-workflow.md b/content/collections/data/en/data-planning-workflow.md index aa6cc3244..aad57c443 100644 --- a/content/collections/data/en/data-planning-workflow.md +++ b/content/collections/data/en/data-planning-workflow.md @@ -1,14 +1,14 @@ --- id: 52bfe4df-5034-4e5d-bfce-81736bf4face blueprint: data -title: 'The complete Amplitude Data planning workflow' +title: 'Planning and instrumentation workflow' source: 'https://help.amplitude.com/hc/en-us/articles/5078746573979-The-complete-Amplitude-Data-planning-workflow' this_article_will_help_you: - 'Understand the complete planning workflow using all the planning capabilities offered by Amplitude Data' landing: true exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1715274278 +updated_at: 1722895150 landing_blurb: 'Learn the end-to-end Amplitude data planning process.' --- Using Amplitude Data for planning helps ensure high-quality data from the start and reduces the need for clean-up later. This article will give you a sense of the complete workflow in Amplitude Data. diff --git a/content/collections/data/en/display-names-in-amplitude-data.md b/content/collections/data/en/display-names-in-amplitude-data.md index 40a21fb6c..f54dfa317 100644 --- a/content/collections/data/en/display-names-in-amplitude-data.md +++ b/content/collections/data/en/display-names-in-amplitude-data.md @@ -1,7 +1,7 @@ --- id: 761569fa-61e0-451b-8c08-4f1d52b8e17e blueprint: data -title: 'Display names in Amplitude Data' +title: 'Event and property display names' source: 'https://help.amplitude.com/hc/en-us/articles/16805727661211-Display-names-in-Amplitude-Data' this_article_will_help_you: - 'Understand the benefits to using a display name for an event or user property' @@ -9,7 +9,7 @@ this_article_will_help_you: landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717620601 +updated_at: 1722895571 --- By default, a display name in Amplitude Data is whatever it was called in your tracking plan. However, these can be difficult to read, understand, and incorporate directly into your analyses. For this reason, you can give your events and user properties new display names that offer an easy-to-read description of their purpose and content. diff --git a/content/collections/data/en/lookup-tables.md b/content/collections/data/en/lookup-tables.md index cff2e4a8c..659b63d2f 100644 --- a/content/collections/data/en/lookup-tables.md +++ b/content/collections/data/en/lookup-tables.md @@ -1,7 +1,7 @@ --- id: a47ad425-cbf2-4408-bd10-17f889025d70 blueprint: data -title: 'Add more data to event and user properties with Lookup Tables' +title: 'Lookup Tables' source: 'https://help.amplitude.com/hc/en-us/articles/8634149673627-Add-more-data-to-event-and-user-properties-with-Lookup-Tables' this_article_will_help_you: - 'Understand how adding a Lookup Table data source can enhance your event and user properties' @@ -9,7 +9,7 @@ this_article_will_help_you: landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717622272 +updated_at: 1722896296 --- With Amplitude's Lookup Table feature, you can import your own data and map it to ingested properties to create an enhanced set of event and user properties. @@ -68,4 +68,4 @@ To delete a Lookup Table you no longer need, follow these steps: 1. In Amplitude, navigate to *Sources*, then find the Lookup Table in the *Sources List*. 2. Open the *Edit Lookup Table Configuration* tab. -3. Click the trash can and follow the on-screen instructions. +3. Click the trash can and follow the on-screen instructions. \ No newline at end of file diff --git a/content/collections/data/en/object-management.md b/content/collections/data/en/object-management.md index 6cd1aedac..3d3fff6cf 100644 --- a/content/collections/data/en/object-management.md +++ b/content/collections/data/en/object-management.md @@ -1,12 +1,12 @@ --- id: 5062badd-ff0e-4efd-9c1a-d8d0809e6bdd blueprint: data -title: 'Object management: Manage the building blocks of your analyses' +title: 'Object management' source: 'https://help.amplitude.com/hc/en-us/articles/9980355191579-Object-management-Manage-the-building-blocks-of-your-analyses' landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1720026414 +updated_at: 1722896250 --- Amplitude's **object management** feature lets you centrally manage **analysis objects.** Analysis objects are the reusable building blocks of your analyses, including [custom events](/docs/data/custom-events), [metrics](#metrics), [segments](/docs/analytics/behavioral-cohorts). diff --git a/content/collections/data/en/override-property.md b/content/collections/data/en/override-property.md index efeebfce4..0814fffe0 100644 --- a/content/collections/data/en/override-property.md +++ b/content/collections/data/en/override-property.md @@ -1,7 +1,7 @@ --- id: 1259587d-dfcf-4713-a57a-35b9f5660744 blueprint: data -title: 'Override a property' +title: 'Override a property definition' source: 'https://help.amplitude.com/hc/en-us/articles/10831335547035-Override-a-property' this_article_will_help_you: - 'Understand the benefits of overriding a property' @@ -9,7 +9,7 @@ this_article_will_help_you: landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717620722 +updated_at: 1722895748 --- Overriding property details is helpful when you want to customize the property for a specific event or property group, without updating the **original** version or creating an entirely new event property.  @@ -34,4 +34,4 @@ To override a property on a property group, follow these steps: Any changes to a property that is overridden on a property group will apply to all events that use that property group. {{/partial:admonition}} -You can always [revert an overridden property](/docs/data/override-property) when you no longer need the override. +You can always [revert an overridden property](/docs/data/override-property) when you no longer need the override. \ No newline at end of file diff --git a/content/collections/data/en/property-updates-property-groups.md b/content/collections/data/en/property-updates-property-groups.md index 494caae17..e31395dc8 100644 --- a/content/collections/data/en/property-updates-property-groups.md +++ b/content/collections/data/en/property-updates-property-groups.md @@ -1,14 +1,14 @@ --- id: 73ffabf3-485b-4bb5-84a0-aea900f3dcad blueprint: data -title: 'Streamline property updates with property groups' +title: 'Using property groups' source: 'https://help.amplitude.com/hc/en-us/articles/5078762828699-Streamline-property-updates-with-property-groups' this_article_will_help_you: - "Update changes you've made to properties across multiple events simultaneously" landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717620189 +updated_at: 1722895847 --- With **property groups**, you can define groups of properties so Amplitude Data can apply them to events quickly. diff --git a/content/collections/data/en/revert-overridden-property.md b/content/collections/data/en/revert-overridden-property.md index 37d14b727..d07c0b53b 100644 --- a/content/collections/data/en/revert-overridden-property.md +++ b/content/collections/data/en/revert-overridden-property.md @@ -1,7 +1,7 @@ --- id: 4ae538ba-8ca1-4a0f-b93a-f89ce4b42db0 blueprint: data -title: 'Revert an overridden property' +title: 'Revert an overridden property definition' source: 'https://help.amplitude.com/hc/en-us/articles/10831709352987-Revert-an-overridden-property' this_article_will_help_you: - 'Understand when to revert an overridden property' @@ -9,7 +9,7 @@ this_article_will_help_you: landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717620952 +updated_at: 1722895781 --- Reverting an [overridden property](/docs/data/override-property) to its original version is a quick way to retroactively clean up your tracking plan and maintain consistency across your event properties. Doing so tells Amplitude Data to update the property to match the latest state of the **original** version listed in the event properties table. Once reverted, any changes to the property will **also** apply to any events or property groups that use the **original** version of that property. diff --git a/content/collections/data/en/time-to-live.md b/content/collections/data/en/time-to-live.md index 8e3a99dab..9694c5e86 100644 --- a/content/collections/data/en/time-to-live.md +++ b/content/collections/data/en/time-to-live.md @@ -1,11 +1,13 @@ --- id: ba19562a-4957-464b-be1c-f86926c58289 blueprint: data -title: 'Time to Live' +title: 'Time to Live (TTL)' author: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1706310913 -source: https://www.docs.developers.amplitude.com/data/ttl-configuration/ +updated_at: 1722896162 +source: 'https://www.docs.developers.amplitude.com/data/ttl-configuration/' +landing: false +exclude_from_sitemap: false --- Amplitude Data's Time-to-Live (TTL) feature lets you have control over how long event data lives in your Amplitude instance. You set the retention period for event data in Amplitude at the Amplitude organization level. When TTL is enabled, a job runs daily to make sure that Amplitude retains your event data according to your organization's TTL policy. @@ -39,4 +41,4 @@ After you confirm, deletion of your event data starts in 24 hours. It may take u {{partial:admonition type="warning" heading="Canceling TTL"}} If you want to cancel TTL, an admin can rescind the request in the 24 hour period before data deletion begins. After 24 hours, the deletion begins and is irreversible. -{{/partial:admonition}} +{{/partial:admonition}} \ No newline at end of file diff --git a/content/collections/data/en/transformations.md b/content/collections/data/en/transformations.md index 94f611430..c9506f70c 100644 --- a/content/collections/data/en/transformations.md +++ b/content/collections/data/en/transformations.md @@ -1,7 +1,7 @@ --- id: 34900232-5084-4b90-89aa-0bccbc06a95b blueprint: data -title: 'Transformations: Retroactively modify your event data structure' +title: 'Using transformations to fix your data' source: 'https://help.amplitude.com/hc/en-us/articles/5913315221915-Transformations-Retroactively-modify-your-event-data-structure' this_article_will_help_you: - 'Understand and create the main types of transformations' @@ -9,7 +9,7 @@ this_article_will_help_you: landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717621255 +updated_at: 1722896092 --- Amplitude Data’s **transformations** feature allows you to transform event data in order to correct common implementation mistakes. Transformations are retroactive: you can create them whenever you want, and apply them to all historical data. This means you can make changes to your event data without having to touch your underlying code base. No matter when you recognize a mistake or want to make a change, you can use a transformation to correct all affected data, both historically and moving forward. diff --git a/content/collections/data/en/understand-ip-address-and-location.md b/content/collections/data/en/understand-ip-address-and-location.md index d490609f1..f1b8c5b5b 100644 --- a/content/collections/data/en/understand-ip-address-and-location.md +++ b/content/collections/data/en/understand-ip-address-and-location.md @@ -1,7 +1,7 @@ --- id: 9771eb95-0cac-4de7-a34b-c65f7e157f67 blueprint: data -title: 'Understand IP address and location properties' +title: 'IP address and location properties' source: 'https://help.amplitude.com/hc/en-us/articles/17646803703323-Understand-IP-address-and-location-properties' this_article_will_help_you: - 'Understand Amplitude defines and uses location properties to enhance your analyses' @@ -9,7 +9,7 @@ this_article_will_help_you: landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717612556 +updated_at: 1722895713 --- Data that highlights user location properties, such as a user's city and country, are crucial for generating insights related to the geographical distribution of your users. They can show you how user preferences and behaviors differ from region to region, and help you better optimize your product. diff --git a/content/collections/data/en/update-property-data-type.md b/content/collections/data/en/update-property-data-type.md index 329068a67..2d1c5eff7 100644 --- a/content/collections/data/en/update-property-data-type.md +++ b/content/collections/data/en/update-property-data-type.md @@ -1,9 +1,13 @@ --- -title: "Set or change a property's data type" -source: "https://help.amplitude.com/hc/en-us/articles/17050314884635-Set-or-change-a-property-s-data-type" id: 09910eae-5073-45e2-9f8b-5b8cdb11806a +blueprint: data +title: 'Property types' +source: 'https://help.amplitude.com/hc/en-us/articles/17050314884635-Set-or-change-a-property-s-data-type' +landing: false +exclude_from_sitemap: false +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722895665 --- - Because it uses type checking for event and user property values, Amplitude can detect when event data it receives doesn’t match the specified type. You can set and edit the data type of an event or user property — for example, from a string to a Boolean. This can be useful as your data and analysis needs shift and expand over time. To edit the data type of a user property, follow these steps: @@ -17,4 +21,4 @@ To edit the data type of a user property, follow these steps: * `Array` * `Enum`: One of a set of possible values. (for example, property fruit is one of [apple, banana, strawberry]) * `Const`: Set as a constant - * `Any`: Any value + * `Any`: Any value \ No newline at end of file diff --git a/content/collections/data/en/use-ai-data-assistant.md b/content/collections/data/en/use-ai-data-assistant.md index 0a8c0e259..ab32b23a6 100644 --- a/content/collections/data/en/use-ai-data-assistant.md +++ b/content/collections/data/en/use-ai-data-assistant.md @@ -1,7 +1,7 @@ --- id: 186f35a4-5184-46c4-8a96-16184ad038bb blueprint: data -title: 'Streamline and improve your tracking plan with the AI Data Assistant' +title: 'Using the Data Assistant' source: 'https://help.amplitude.com/hc/en-us/articles/17321563434267-Streamline-and-improve-your-tracking-plan-with-the-AI-Data-Assistant' this_article_will_help_you: - 'Easily identify and understand issues with your tracking plan' @@ -9,7 +9,7 @@ this_article_will_help_you: landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717621183 +updated_at: 1722896007 --- Maintaining a clean and organized tracking plan is key to maximizing the value you get from Amplitude Data. But when you have hundreds or even thousands of events and properties, doing so can be a daunting task. This is particularly true for identifying what needs to be done to improve messy data. diff --git a/content/collections/data/en/use-ampli.md b/content/collections/data/en/use-ampli.md index a0241db0b..713e7b3de 100644 --- a/content/collections/data/en/use-ampli.md +++ b/content/collections/data/en/use-ampli.md @@ -1,11 +1,15 @@ --- -title: "Use Ampli" -source: "https://help.amplitude.com/hc/en-us/articles/16805456124699-Use-Ampli" id: 0ec04456-9c40-478d-a76e-a45f4c3e0628 +blueprint: data +title: 'Ampli and Developer Tools' +source: 'https://help.amplitude.com/hc/en-us/articles/16805456124699-Use-Ampli' +landing: false +exclude_from_sitemap: false +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722895318 --- - **Ampli** dynamically generates a light-weight wrapper for the **Amplitude SDK** based on your analytics tracking plan in **Amplitude Data** making event tracking easier and less error-prone. The **Ampli Wrapper** provides types and methods that prevent human error by strictly enforcing event names and property values. The wrapper code enables autocompletion for all events and properties in your tracking plan, as well as static type checks at development and compile time. -To learn more about using Ampli, visit the [Amplitude Developer Center.](https://www.docs.developers.amplitude.com/data/ampli/) +To learn more about using Ampli, visit the [Amplitude Developer Center.](https://www.docs.developers.amplitude.com/data/ampli/) \ No newline at end of file diff --git a/content/collections/data/en/user-properties-and-events.md b/content/collections/data/en/user-properties-and-events.md index 3052b0116..d01e86f72 100644 --- a/content/collections/data/en/user-properties-and-events.md +++ b/content/collections/data/en/user-properties-and-events.md @@ -1,14 +1,14 @@ --- id: 57f6f8ee-4044-4a3e-af34-c6d6eca409dc blueprint: data -title: 'Overview of user properties and event properties in Amplitude' +title: 'About user properties and event properties' source: 'https://help.amplitude.com/hc/en-us/articles/115002380567-Overview-of-user-properties-and-event-properties-in-Amplitude' this_article_will_help_you: - 'Articulate the differences between user properties and event properties, and use each type appropriately and effectively in your analyses' landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717611656 +updated_at: 1722895468 --- In Amplitude, **properties** are attributes that provide additional context around your users and the events they trigger. There are two types of properties in Amplitude: @@ -100,4 +100,4 @@ For example, imagine you have a user property called `email` and a separate even ## Hide properties -You can [hide old or buggy properties as needed](/docs/data/remove-invalid-data). Hiding event or user properties will only hide them from appearing on the platform UI and does not delete them. You can always unhide the properties if you change your mind. +You can [hide old or buggy properties as needed](/docs/data/remove-invalid-data). Hiding event or user properties will only hide them from appearing on the platform UI and does not delete them. You can always unhide the properties if you change your mind. \ No newline at end of file diff --git a/content/collections/data/en/validate-events.md b/content/collections/data/en/validate-events.md index c006eea04..bda533586 100644 --- a/content/collections/data/en/validate-events.md +++ b/content/collections/data/en/validate-events.md @@ -1,7 +1,7 @@ --- id: dd311a35-601e-4713-b0cd-49fece790c20 blueprint: data -title: 'Validate events with Observe' +title: 'Monitor your data with observe' source: 'https://help.amplitude.com/hc/en-us/articles/5078870942363-Validate-events-with-Observe' this_article_will_help_you: - 'Understand how the Observe feature helps you better manage your event data for accuracy' @@ -10,7 +10,7 @@ this_article_will_help_you: landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1717622737 +updated_at: 1722895310 --- A big challenge for data, product, and growth teams is a lack of visibility into the state of their data collection. Often, teams rely on manual testing, broken charts, and gut feel to continually validate their product analytics. diff --git a/content/collections/data/en/work-with-branches.md b/content/collections/data/en/work-with-branches.md index 4d364ceb8..e04cb3209 100644 --- a/content/collections/data/en/work-with-branches.md +++ b/content/collections/data/en/work-with-branches.md @@ -1,9 +1,13 @@ --- -title: "Work with branches" -source: "https://help.amplitude.com/hc/en-us/articles/5078713391387-Work-with-branches" id: 1912398b-4b46-42ce-b63e-44d4f0f01881 +blueprint: data +title: 'Working with branches' +source: 'https://help.amplitude.com/hc/en-us/articles/5078713391387-Work-with-branches' +landing: false +exclude_from_sitemap: false +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722895188 --- - #### This article will help you: * Create and work with new branches of your tracking plan @@ -107,4 +111,4 @@ To restrict branch copying, follow these steps: 1. From the source project, navigate to *Settings* and then *General*. 2. Select the checkbox next to *Restrict branch copying to specified testing projects*. -3. From the dropdown, select the checkbox next to the projects that the branch changes can be copied to. +3. From the dropdown, select the checkbox next to the projects that the branch changes can be copied to. \ No newline at end of file diff --git a/content/trees/navigation/en/data.yaml b/content/trees/navigation/en/data.yaml index 3ab723664..286010bfa 100644 --- a/content/trees/navigation/en/data.yaml +++ b/content/trees/navigation/en/data.yaml @@ -1,58 +1,32 @@ tree: - - id: 60a71f94-e900-46ec-baf1-d73161835907 - entry: c5166da1-e099-4e0b-a870-b06b10057c19 - - - id: bb1a9f6b-7be3-4ac9-a242-acfd606af895 - entry: 57f6f8ee-4044-4a3e-af34-c6d6eca409dc - - - id: f11c6cd0-9c94-414c-9a97-a20e86ab59e0 - entry: 9fbd24d0-c90c-497c-8cca-5b345f1058d6 - - - id: c08061ee-b6d3-4874-be1e-d5b2514195cd - entry: 8160e521-d064-46f7-bf1b-595dc1c56327 - - - id: 4512faae-c8d0-4f61-9b7f-7457dc064b92 - entry: 9771eb95-0cac-4de7-a34b-c65f7e157f67 - - - id: b50df020-c7e3-4e2b-88e7-ea6e6a8a633d - entry: a856a44d-9cc7-4964-bf6b-7c15e69b0f2c - - - id: 7318ab4d-f08a-4c62-8dc1-bd1c642934dc - title: Audiences + id: ad9ea166-c4b2-4a3b-a8ad-5ff015b60200 + title: 'Get started' children: - - id: 8e65db0d-9e99-4567-88c4-2f2e7495573f - entry: 598de42f-58b0-4349-894d-1c8a8495e953 + id: 60a71f94-e900-46ec-baf1-d73161835907 + entry: c5166da1-e099-4e0b-a870-b06b10057c19 - - id: 87974e06-c03d-436a-82cf-79b243473f09 - title: Recommendations - children: - - - id: 90813234-d91b-48b7-a959-fce1ac925ef1 - entry: 1367ad78-90fa-465b-be63-45e9102cdcec - - - id: 5881c7c9-49c0-4613-bf49-122b8b347ea7 - entry: 81ab19f5-a628-4a08-81f0-97759a5bfa91 - - - id: 0fd8b5a6-9be2-4c93-833f-237e461e6f32 - entry: 314e6a98-3da6-4985-9ab3-f58b81646a75 + id: 037c12ca-e0a1-41b6-a61b-87269d089de6 + entry: 1bca668a-d50d-4e07-a0a9-a77016d8d5d3 - - id: 98bfa7cf-8db0-404d-8674-ab962c02bc45 - title: Predictions - children: - - - id: 05b23018-9c6c-4a15-9060-787e0fce98af - entry: 4271240a-42f6-4303-90a3-f0d6b11b8587 - - - id: 4779cc1b-0cc5-4f63-937f-fcd9af5c1768 - entry: e1b61782-4ec1-47a2-a803-0b6385477026 - - - id: 6aeaa9a5-60c1-45f4-bbf6-41fb37ff36af - entry: 314e6a98-3da6-4985-9ab3-f58b81646a75 + id: 174b47f9-ffca-40af-bb9d-78a15d49fb1b + entry: 1017e95b-5dd2-46fc-82b4-54e61d4fb755 - - id: 04cd704d-f698-41cd-8567-f91d09b941fe - entry: 8cdc1ed2-7236-4312-ae35-1efdb910c563 + id: 01fcdf37-aa52-472c-abbe-80885ecf7976 + entry: 2634b65f-264c-413f-bccd-8d8fb5dcd88f + - + id: b50df020-c7e3-4e2b-88e7-ea6e6a8a633d + entry: a856a44d-9cc7-4964-bf6b-7c15e69b0f2c + - + id: c08061ee-b6d3-4874-be1e-d5b2514195cd + entry: 8160e521-d064-46f7-bf1b-595dc1c56327 + - + id: f11c6cd0-9c94-414c-9a97-a20e86ab59e0 + entry: 9fbd24d0-c90c-497c-8cca-5b345f1058d6 + - + id: eb30f600-7dc7-4768-834a-9d61e1090402 + entry: 11423e67-aee4-4d24-9501-229b6065861b - id: 93c67f8d-a0ce-4d74-a32d-03e5e288ce41 title: 'Warehouse-native Amplitude' @@ -68,113 +42,149 @@ tree: entry: 0aecc9dc-f80b-44f4-8ead-4ae0e4fd2603 - id: 5c207df6-c244-493a-ae56-ba8deaa66fd3 - title: 'Data Planning' + title: 'Plan your Data' children: - - id: 037c12ca-e0a1-41b6-a61b-87269d089de6 - entry: 1bca668a-d50d-4e07-a0a9-a77016d8d5d3 + id: 041a701a-fb09-4c3f-9250-452165d66d22 + entry: 2886ff4d-cb6d-4327-a412-83c4e5c3aff7 - id: d01f4fba-b773-46d8-accb-2b5393a1f6ca entry: 52bfe4df-5034-4e5d-bfce-81736bf4face - - - id: 041a701a-fb09-4c3f-9250-452165d66d22 - entry: 2886ff4d-cb6d-4327-a412-83c4e5c3aff7 - id: 3cbd213b-04b6-4b5c-b37e-afacdc938995 entry: f01c2196-6c7f-4ec9-9b62-2ed150653399 - - - id: 2f4d2dc0-32b2-47fa-b329-1ca41922750c - entry: 73ffabf3-485b-4bb5-84a0-aea900f3dcad - id: ad7ae0df-f870-4385-8714-993cc9d028af entry: 1912398b-4b46-42ce-b63e-44d4f0f01881 - id: a2047a94-7fab-43f5-abb8-2b285104c573 entry: 0ec04456-9c40-478d-a76e-a45f4c3e0628 + - + id: d92c04ca-7468-483f-90cb-f4ad28d8ee2b + entry: dd311a35-601e-4713-b0cd-49fece790c20 + - + id: 4b844179-6f1e-45ec-a021-f7fde78f5d5a + entry: d15d30d7-05f6-498f-bf9c-9a7432322077 + - + id: d76e509e-6038-4c7c-b3cd-efba5b762102 + entry: 0556731c-f68a-495e-b85f-8e813640d6b0 - - id: f24d8210-795f-44de-aaaf-665e1c8db67c - title: 'Manage Data' + id: 3d58b9f0-3bf3-4b37-b7ba-e61969f66d14 + title: 'Organize your Data' children: + - + id: bb1a9f6b-7be3-4ac9-a242-acfd606af895 + entry: 57f6f8ee-4044-4a3e-af34-c6d6eca409dc - id: 6ac0be64-1583-4943-9867-ac268697694c entry: eabe8de8-fe63-42b8-a93d-eb1d10884b43 - - id: 0779f92f-a386-49c7-b231-c92046dd3e03 - title: 'Clean and Fix Data' - children: - - - id: 7bcc4ed0-4197-4fd9-8380-b0bdf91e74a8 - entry: 9996cae3-403c-44be-9b25-61efb780a3e9 - - - id: 662824ed-25d3-4573-96b5-a01a46561efc - entry: 4116b5ac-6eb0-4b39-8b13-470a135f2143 - - - id: b3e4594e-e96a-402f-ac38-99c8d89724dd - entry: ea221b5f-e025-4904-9343-245bafb90b65 - - - id: 5ea68126-865b-4ce1-be52-4d122514e67d - entry: acd3a1dc-ad94-4730-b859-280c46747eb7 - - - id: ecbdb63f-dc25-44fd-a482-fc46c6bc9392 - entry: 761569fa-61e0-451b-8c08-4f1d52b8e17e - - - id: 117426e4-0199-4bd3-a236-74f340015589 - entry: 1259587d-dfcf-4713-a57a-35b9f5660744 - - - id: 88973ab4-dc04-4a3e-b1c9-a17fc1f336d3 - entry: 3b46d4e2-2ab2-43e2-bacf-19e133b534cf - - - id: f2eea3c0-51dc-4c62-910c-26f52fb026f5 - entry: 4ae538ba-8ca1-4a0f-b93a-f89ce4b42db0 - - - id: 8d1f037f-b546-4963-84a3-8f266118c48e - entry: 09910eae-5073-45e2-9f8b-5b8cdb11806a - - - id: 19247ad4-2bcc-41a6-a36b-7c750a9a4a94 - entry: 186f35a4-5184-46c4-8a96-16184ad038bb - - - id: 6dd7ed66-270b-4e42-a6c3-4d17aa9d8f93 - entry: 34900232-5084-4b90-89aa-0bccbc06a95b + id: ecbdb63f-dc25-44fd-a482-fc46c6bc9392 + entry: 761569fa-61e0-451b-8c08-4f1d52b8e17e - - id: e8cc25dc-5440-4548-8c35-17d9c672e4c7 - title: 'Enrich your Data' - children: - - - id: fe9f9788-bd92-4f42-b9da-fe8609659743 - entry: c2c4ceb7-94ab-44f8-967a-99ff8f07e800 - - - id: 8fa0a996-04f9-4483-b702-2c293809af77 - entry: 5062badd-ff0e-4efd-9c1a-d8d0809e6bdd - - - id: da09feea-cdbd-4acb-a118-0b23e096166c - entry: 66b1d5fc-c05b-4418-9cff-0be3286e437f - - - id: 5393ca67-74d4-4a28-9af4-d00b48c07ca6 - entry: a47ad425-cbf2-4408-bd10-17f889025d70 - - - id: 5d795727-8fee-4d68-8ad2-ad9ae27c7572 - entry: ca26cfe2-d99f-498a-8581-6485a736d4bb + id: b3e4594e-e96a-402f-ac38-99c8d89724dd + entry: ea221b5f-e025-4904-9343-245bafb90b65 - - id: d92c04ca-7468-483f-90cb-f4ad28d8ee2b - entry: dd311a35-601e-4713-b0cd-49fece790c20 + id: 662824ed-25d3-4573-96b5-a01a46561efc + entry: 4116b5ac-6eb0-4b39-8b13-470a135f2143 + - + id: 8d1f037f-b546-4963-84a3-8f266118c48e + entry: 09910eae-5073-45e2-9f8b-5b8cdb11806a + - + id: 4512faae-c8d0-4f61-9b7f-7457dc064b92 + entry: 9771eb95-0cac-4de7-a34b-c65f7e157f67 - - id: bd47ee5c-f2c0-4a7b-8616-82d7b1b14ace - entry: 59306913-18a3-4948-87c4-877316da591c + id: 117426e4-0199-4bd3-a236-74f340015589 + entry: 1259587d-dfcf-4713-a57a-35b9f5660744 + - + id: f2eea3c0-51dc-4c62-910c-26f52fb026f5 + entry: 4ae538ba-8ca1-4a0f-b93a-f89ce4b42db0 + - + id: 2f4d2dc0-32b2-47fa-b329-1ca41922750c + entry: 73ffabf3-485b-4bb5-84a0-aea900f3dcad - id: 7f285103-e43e-496b-bd9b-c2f583ebe078 entry: 6389c912-154c-42fe-afea-07db4a295404 + - + id: 0779f92f-a386-49c7-b231-c92046dd3e03 + title: 'Clean your data' + children: - - id: d76e509e-6038-4c7c-b3cd-efba5b762102 - entry: 0556731c-f68a-495e-b85f-8e813640d6b0 + id: 19247ad4-2bcc-41a6-a36b-7c750a9a4a94 + entry: 186f35a4-5184-46c4-8a96-16184ad038bb - - id: 4b844179-6f1e-45ec-a021-f7fde78f5d5a - entry: d15d30d7-05f6-498f-bf9c-9a7432322077 + id: 88973ab4-dc04-4a3e-b1c9-a17fc1f336d3 + entry: 3b46d4e2-2ab2-43e2-bacf-19e133b534cf + - + id: 7bcc4ed0-4197-4fd9-8380-b0bdf91e74a8 + entry: 9996cae3-403c-44be-9b25-61efb780a3e9 + - + id: 5ea68126-865b-4ce1-be52-4d122514e67d + entry: acd3a1dc-ad94-4730-b859-280c46747eb7 + - + id: 6dd7ed66-270b-4e42-a6c3-4d17aa9d8f93 + entry: 34900232-5084-4b90-89aa-0bccbc06a95b - id: 77482cc4-a811-4976-abb6-56b02448ad08 entry: ba19562a-4957-464b-be1c-f86926c58289 + - + id: e8cc25dc-5440-4548-8c35-17d9c672e4c7 + title: 'Enrich your Data' + children: - - id: eb30f600-7dc7-4768-834a-9d61e1090402 - entry: 11423e67-aee4-4d24-9501-229b6065861b + id: fe9f9788-bd92-4f42-b9da-fe8609659743 + entry: c2c4ceb7-94ab-44f8-967a-99ff8f07e800 + - + id: 8fa0a996-04f9-4483-b702-2c293809af77 + entry: 5062badd-ff0e-4efd-9c1a-d8d0809e6bdd + - + id: da09feea-cdbd-4acb-a118-0b23e096166c + entry: 66b1d5fc-c05b-4418-9cff-0be3286e437f + - + id: 5393ca67-74d4-4a28-9af4-d00b48c07ca6 + entry: a47ad425-cbf2-4408-bd10-17f889025d70 + - + id: 5d795727-8fee-4d68-8ad2-ad9ae27c7572 + entry: ca26cfe2-d99f-498a-8581-6485a736d4bb + - + id: bd47ee5c-f2c0-4a7b-8616-82d7b1b14ace + entry: 59306913-18a3-4948-87c4-877316da591c + - + id: 7318ab4d-f08a-4c62-8dc1-bd1c642934dc + title: Audiences + children: + - + id: 8e65db0d-9e99-4567-88c4-2f2e7495573f + entry: 598de42f-58b0-4349-894d-1c8a8495e953 + - + id: 87974e06-c03d-436a-82cf-79b243473f09 + title: Recommendations + children: + - + id: 90813234-d91b-48b7-a959-fce1ac925ef1 + entry: 1367ad78-90fa-465b-be63-45e9102cdcec + - + id: 5881c7c9-49c0-4613-bf49-122b8b347ea7 + entry: 81ab19f5-a628-4a08-81f0-97759a5bfa91 + - + id: 0fd8b5a6-9be2-4c93-833f-237e461e6f32 + entry: 314e6a98-3da6-4985-9ab3-f58b81646a75 + - + id: 98bfa7cf-8db0-404d-8674-ab962c02bc45 + title: Predictions + children: + - + id: 05b23018-9c6c-4a15-9060-787e0fce98af + entry: 4271240a-42f6-4303-90a3-f0d6b11b8587 + - + id: 4779cc1b-0cc5-4f63-937f-fcd9af5c1768 + entry: e1b61782-4ec1-47a2-a803-0b6385477026 + - + id: 6aeaa9a5-60c1-45f4-bbf6-41fb37ff36af + entry: 314e6a98-3da6-4985-9ab3-f58b81646a75 + - + id: 04cd704d-f698-41cd-8567-f91d09b941fe + entry: 8cdc1ed2-7236-4312-ae35-1efdb910c563 - id: c2f4f77f-a780-4fa5-adc9-cfc5076045d5 title: Integrations From 8e4c35cbdccfc6c176f6979758a6fe2a1b9ab56b Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 6 Aug 2024 09:50:48 -0700 Subject: [PATCH 27/43] redirect --- vercel.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vercel.json b/vercel.json index 2bf868591..c8b30ec4d 100644 --- a/vercel.json +++ b/vercel.json @@ -476,6 +476,11 @@ "source": "/docs/data/destinations/hubspot", "statusCode": 301 }, + { + "destination": "/docs/data/destination-catalog/hubspot", + "source": "/docs/data/destinations/hubspot-event-streaming/", + "statusCode": 301 + }, { "destination": "/docs/data/destination-catalog/hubspot-cohort-sync", "source": "/docs/data/destinations/hubspot-cohort", From b655566068fe16daaf6d2cc1371752b70305a052 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 6 Aug 2024 12:54:13 -0700 Subject: [PATCH 28/43] browser snippet partial --- .../browser_sdk/en/autocapture-plugin.md | 12 +---- .../browser_sdk/en/browser-sdk-2.md | 2 +- content/globals/en/sdk_versions.yaml | 2 +- .../views/partials/code/_snippet.antlers.html | 53 +++++++++++++++++++ 4 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 resources/views/partials/code/_snippet.antlers.html diff --git a/content/collections/browser_sdk/en/autocapture-plugin.md b/content/collections/browser_sdk/en/autocapture-plugin.md index d0d8f8481..5cecf4c08 100644 --- a/content/collections/browser_sdk/en/autocapture-plugin.md +++ b/content/collections/browser_sdk/en/autocapture-plugin.md @@ -25,17 +25,7 @@ If you used the Autocapture plugin, and updated the Browser SDK to version 2.10. Replace your referenced script with the following snippet: -```html - -``` +{{partial:partials/code/snippet autocapture="true"}} ### Npm or yarn diff --git a/content/collections/browser_sdk/en/browser-sdk-2.md b/content/collections/browser_sdk/en/browser-sdk-2.md index b430e76fe..ebd46afee 100644 --- a/content/collections/browser_sdk/en/browser-sdk-2.md +++ b/content/collections/browser_sdk/en/browser-sdk-2.md @@ -30,7 +30,7 @@ Install the dependency with npm, yarn, or the script loader. {{partial:tabs tabs="Script loader, npm, yarn"}} {{partial:tab name="Script loader"}} -Get the latest snippet from [GitHub](https://github.com/amplitude/Amplitude-TypeScript/tree/main/packages/analytics-browser#installing-via-script-loader). +{{partial:partials/code/snippet autocapture="true"}} {{/partial:tab}} {{partial:tab name="npm"}} ```bash diff --git a/content/globals/en/sdk_versions.yaml b/content/globals/en/sdk_versions.yaml index df5053d96..8a68a8066 100644 --- a/content/globals/en/sdk_versions.yaml +++ b/content/globals/en/sdk_versions.yaml @@ -1,4 +1,4 @@ -browser: 2.9.3 +browser: 2.10.0 visual_labeling_plugin: 1.0.0-beta.3 session_replay_plugin: 1.4.0 session_replay_standalone: 1.6.0 diff --git a/resources/views/partials/code/_snippet.antlers.html b/resources/views/partials/code/_snippet.antlers.html new file mode 100644 index 000000000..1f955ee53 --- /dev/null +++ b/resources/views/partials/code/_snippet.antlers.html @@ -0,0 +1,53 @@ +{{if session_replay&&autocapture}} +{{markdown}} +```html + + + +``` +{{/markdown}} + +{{elseif autocapture}} +{{markdown}} +```html + + +``` +{{/markdown}} +{{elseif session_replay}} + +{{markdown}} +```html + + + +``` +{{/markdown}} + +{{else}} + +{{markdown}} +```html + + +``` +{{/markdown}} +{{/if}} + From ffbf3ba8936cdae56f8ef797dc37d9af75acb8da Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 6 Aug 2024 13:28:56 -0700 Subject: [PATCH 29/43] Browser SDK updated --- .../styles/config/vocabularies/dev/accept.txt | 2 +- .../browser_sdk/en/browser-sdk-2.md | 182 ++++++++++-------- 2 files changed, 98 insertions(+), 86 deletions(-) diff --git a/.github/styles/config/vocabularies/dev/accept.txt b/.github/styles/config/vocabularies/dev/accept.txt index de062cc8e..ec47ac8df 100644 --- a/.github/styles/config/vocabularies/dev/accept.txt +++ b/.github/styles/config/vocabularies/dev/accept.txt @@ -245,4 +245,4 @@ HTTP Wix Squarespace Clickthrough -Autocapture \ No newline at end of file +[Aa]utocapture \ No newline at end of file diff --git a/content/collections/browser_sdk/en/browser-sdk-2.md b/content/collections/browser_sdk/en/browser-sdk-2.md index a46e44c90..16b69ae16 100644 --- a/content/collections/browser_sdk/en/browser-sdk-2.md +++ b/content/collections/browser_sdk/en/browser-sdk-2.md @@ -30,6 +30,7 @@ Install the dependency with npm, yarn, or the script loader. {{partial:tabs tabs="Script loader, npm, yarn"}} {{partial:tab name="Script loader"}} +When you use the script loader and enable Autocapture, Browser SDK track interactions on your site automatically. For more information, see [Autocapture](#autocapture). {{partial:partials/code/snippet autocapture="true"}} {{/partial:tab}} {{partial:tab name="npm"}} @@ -94,8 +95,8 @@ amplitude.init(AMPLITUDE_API_KEY, 'user@amplitude.com', options); | `serverZone` | `EU` or `US`. Sets the Amplitude server zone. Set this to `EU` for Amplitude projects created in `EU` data center. | `US` | | `useBatch` | `boolean`. Sets whether to upload events to Batch API instead of the default HTTP V2 API or not. | `false` | | `appVersion` | `string`. Sets an app version for events tracked. This can be the version of your application. For example: "1.0.0" | `undefined` | -| `autocapture` | `boolean|AutocaptureOptions`. Configures autocapture tracking. | | -| `defaultTracking` | `boolean`. Deprecated. Use `autocapture` instead. Configures default event tracking. See [Track default events](#track-default-events). | `true` | +| `autocapture` | `boolean\|AutocaptureOptions`. Configures autocapture tracking. See [Autocapture](#autocapture). | | +| `autocapture` | `boolean`. Deprecated. Use `autocapture` instead. Configures default event tracking. | `true` | | `deviceId` | `string`. Sets an identifier for the device running your application. | `UUID()` | | `cookieOptions.domain` | `string`. Sets the domain property of cookies created. | `undefined` | | `cookieOptions.expiration` | `number`. Sets expiration of cookies created in days. | 365 days | @@ -144,70 +145,30 @@ Control the level of logs the SDK prints to the console with the following `logL | `verbose` | Shows informative messages. | | `debug` | Shows all messages, including function context information for each public method the SDK invokes. Amplitude recommends this log level for development only. | -## Track an event - -Events represent how users interact with your application. For example, "Button Clicked" might be an action you want to track. - -```ts -// Track a basic event -amplitude.track('Button Clicked'); - -// Track events with optional properties -const eventProperties = { - buttonColor: 'primary', -}; -amplitude.track('Button Clicked', eventProperties); -``` - -You can also pass a `BaseEvent` object to `track`. For more information, see the [BaseEvent](https://amplitude.github.io/Amplitude-TypeScript/interfaces/_amplitude_analytics_browser.Types.BaseEvent.html) interface for all available fields. - -```ts -const event_properties = { - buttonColor: 'primary', -}; - -const event = { - event_type: "Button Clicked", - event_properties, - groups: { 'role': 'engineering' }, - group_properties: { 'groupPropertyKey': 'groupPropertyValue' } -}; - -amplitude.track(event); -``` - -## Track events to multiple projects - -By default, Amplitude SDKs send data to one Amplitude project. To send data to more than one project, add an instance of the Amplitude SDK for each project you want to receive data. Then, pass instance variables to wherever you want to call Amplitude. Each instance allows for independent `apiKey`, `userId`, `deviceId`, and `settings` values. - -```ts -const defaultInstance = amplitude.createInstance(); -defaultInstance.init(API_KEY_DEFAULT); - -const envInstance = amplitude.createInstance(); -envInstance.init(API_KEY_ENV, { - instanceName: 'env', -}); -``` +## Autocapture -## Track default events +{{partial:admonition type="warning" heading="`autocapture` is deprecated"}} +As of Browser SDK version 2.10.0, `autocapture` is deprecated and replaced by `autocapture`. +{{/partial:admonition}} -Starting in SDK version 1.9.1, the Browser SDK tracks default events, and adds a configuration to control the collection of default events. Browser SDK tracks the following default events: +Starting in SDK version 2.10.0, the Browser SDK can autocapture events when you enable it, and adds a configuration to control the collection of autocaptured events. Browser SDK can autocapture the following event types: - Attribution - Page views - Sessions - Form interactions - File downloads +- Element interactions {{partial:collapse name="Default event tracking options"}} | Name | Value | Description | | ----------------------------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config.defaultTracking.attribution` | Optional. `boolean` | Enables/disables marketing attribution tracking. If value is `true`, Amplitude tracks marketing attribution events. Default value is `true`. | -| `config.defaultTracking.pageViews` | Optional. `boolean` | Enables/disables default page view tracking. If value is `true`, Amplitude tracks page view events on initialization. Default value is `true`.

Event properties tracked includes: `[Amplitude] Page Domain`, `[Amplitude] Page Location`, `[Amplitude] Page Path`, `[Amplitude] Page Title`, `[Amplitude] Page URL`. See [Track page views](#track-page-views) for more information. | -| `config.defaultTracking.sessions` | Optional. `boolean` | Enables/disables session tracking. If value is `true`, Amplitude tracks session start and session end events otherwise, Amplitude doesn't track session events. When this setting is `false`, Amplitude tracks `sessionId` only. See [Track sessions](#track-sessions) for more information. | -| `config.defaultTracking.formInteractions` | Optional. `boolean` | Enables/disables form interaction tracking. If value is `true`, Amplitude tracks form start and form submit events. Default value is `true`.

Event properties tracked includes: `[Amplitude] Form ID`, `[Amplitude] Form Name`, `[Amplitude] Form Destination`. See [Track form interactions](#track-form-interactions) for more information. | -| `config.defaultTracking.fileDownloads` | Optional. `boolean` | Enables/disables file download tracking. If value is `true`, Amplitude tracks file download events otherwise. Default value is `true`.

Event properties tracked includes: `[Amplitude] File Extension`, `[Amplitude] File Name`, `[Amplitude] Link ID`, `[Amplitude] Link Text`, `[Amplitude] Link URL`. See [Track file downloads](#track-file-downloads) for more information. | +| `config.autocapture.attribution` | Optional. `boolean` | Enables/disables marketing attribution tracking. If `true`, Amplitude tracks marketing attribution events. Default value is `true`. | +| `config.autocapture.pageViews` | Optional. `boolean` | Enables/disables default page view tracking. If `true`, Amplitude tracks page view events on initialization. Default value is `true`.

Event properties tracked includes: `[Amplitude] Page Domain`, `[Amplitude] Page Location`, `[Amplitude] Page Path`, `[Amplitude] Page Title`, `[Amplitude] Page URL`. See [Track page views](#track-page-views) for more information. | +| `config.autocapture.sessions` | Optional. `boolean` | Enables/disables session tracking. If `true`, Amplitude tracks session start and session end events otherwise, Amplitude doesn't track session events. When this setting is `false`, Amplitude tracks `sessionId` only. See [Track sessions](#track-sessions) for more information. | +| `config.autocapture.formInteractions` | Optional. `boolean` | Enables/disables form interaction tracking. If `true`, Amplitude tracks form start and form submit events. Default value is `true`.

Event properties tracked includes: `[Amplitude] Form ID`, `[Amplitude] Form Name`, `[Amplitude] Form Destination`. See [Track form interactions](#track-form-interactions) for more information. | +| `config.autocapture.fileDownloads` | Optional. `boolean` | Enables/disables file download tracking. If `true`, Amplitude tracks file download events otherwise. Default value is `true`.

Event properties tracked includes: `[Amplitude] File Extension`, `[Amplitude] File Name`, `[Amplitude] Link ID`, `[Amplitude] Link Text`, `[Amplitude] Link URL`. See [Track file downloads](#track-file-downloads) for more information. | +| `config.autocapture.elementInteractions` | Optional. `boolean` | Enables/disables element interaction tracking. If `true`, Amplitude tracks interactions with all elements on the page. | {{/partial:collapse}} @@ -216,18 +177,19 @@ To disable default tracking, see the following code sample. If you do nothing, t ```ts // Disable individual default tracked events amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: { + autocapture: { attribution: false, pageViews: false, sessions: false, formInteractions: false, fileDownloads: false, + elementInteractions: false, }, }); // Disable all default tracked events amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: false, + autocapture: false, }); ``` @@ -340,11 +302,11 @@ Amplitude tracks the following as user properties: - `rdt_cid` {{/partial:collapse}} -Set `config.defaultTracking.attribution` to `false` to disable marketing attribution tracking. +Set `config.autocapture.attribution` to `false` to disable marketing attribution tracking. ```ts amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: { + autocapture: { attribution: false, //[tl! highlight] }, }); @@ -355,19 +317,19 @@ amplitude.init(AMPLITUDE_API_KEY, { {{partial:collapse name="Marketing attribution configuration"}} | Name | Value | Description | | -------------------------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `config.defaultTracking.attribution.excludeReferrers` | Optional. Array of `string` or `RegExp` | Sets rules to decide which referrers to exclude from tracking as traffic source. Use string values for exact matching and RegExp values for pattern matching against the referring domain. When this option isn't set, the SDK excludes the current domain (and its subdomains). If explicitly adding an external referrer to exclude, you must also add the current domain (and its subdomains) as more referrers to exclude. | -| `config.defaultTracking.attribution.initialEmptyValue` | Optional. `string` | Sets the value to represent undefined/no initial campaign parameter for first-touch attribution. The default value is `"EMPTY`. | -| `config.defaultTracking.attribution.resetSessionOnNewCampaign` | Optional. `boolean` | Configures Amplitude to start a new session if any campaign parameter changes. The default value is `false`. | +| `config.autocapture.attribution.excludeReferrers` | Optional. Array of `string` or `RegExp` | Sets rules to decide which referrers to exclude from tracking as traffic source. Use string values for exact matching and RegExp values for pattern matching against the referring domain. When this option isn't set, the SDK excludes the current domain (and its subdomains). If explicitly adding an external referrer to exclude, you must also add the current domain (and its subdomains) as more referrers to exclude. | +| `config.autocapture.attribution.initialEmptyValue` | Optional. `string` | Sets the value to represent undefined/no initial campaign parameter for first-touch attribution. The default value is `"EMPTY`. | +| `config.autocapture.attribution.resetSessionOnNewCampaign` | Optional. `boolean` | Configures Amplitude to start a new session if any campaign parameter changes. The default value is `false`. | {{/partial:collapse}} ##### Exclude referrers {{partial:admonition type="note" heading=""}} -All sub-configurations of `config.defaultTracking.attribution` take effect only on user properties and do **NOT** affect the event properties of the default page view events. +All sub-configurations of `config.autocapture.attribution` take effect only on user properties and do **NOT** affect the event properties of the default page view events. {{/partial:admonition}} -The default value of `config.defaultTracking.attribution.excludeReferrers` is the top level domain with cookie storage enabled. For example, if you initialize the SDK on `https://www.docs.developers.amplitude.com/`, the SDK first checks `amplitude.com`. If it doesn't allow cookie storage, then the SDK checks `developers.amplitude.com` and subsequent subdomains. If it allows cookie storage, then the SDK sets `excludeReferrers` to an RegExp object `/amplitude\.com$/` which matches and then exlucdes tracking referrers from all subdomains of `amplitude.com`, for example, `data.amplitude.com`, `analytics.amplitude.com` and etc. +The default value of `config.autocapture.attribution.excludeReferrers` is the top level domain with cookie storage enabled. For example, if you initialize the SDK on `https://www.docs.developers.amplitude.com/`, the SDK first checks `amplitude.com`. If it doesn't allow cookie storage, then the SDK checks `developers.amplitude.com` and subsequent subdomains. If it allows cookie storage, then the SDK sets `excludeReferrers` to an RegExp object `/amplitude\.com$/` which matches and then exlucdes tracking referrers from all subdomains of `amplitude.com`, for example, `data.amplitude.com`, `analytics.amplitude.com` and etc. In addition to excluding referrers from the default configuration, you can add other domains by setting the custom `excludeReferrers`. Custom `excludeReferrers` overrides the default values. For example, to also exclude referrers from `google.com`, set `excludeReferrers` to `[/amplitude\.com$/, 'google.com']`. @@ -376,7 +338,7 @@ Track complete web attribution, including self-referrals, for comprehensive insi ```ts amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: { + autocapture: { attribution: { // Override the default setting to exclude all subdomains excludeReferrers: [], @@ -391,7 +353,7 @@ For customers who want to exclude tracking campaign from any referrers across al ```ts amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: { + autocapture: { attribution: { excludeReferrers: [/your-domain\.com$/, 'www.test.com'], }, @@ -405,7 +367,7 @@ For customers who want to exclude tracking campaign from all referrers across al ```ts amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: { + autocapture: { attribution: { excludeReferrers: [/test\.com$/], }, @@ -418,11 +380,11 @@ amplitude.init(AMPLITUDE_API_KEY, { Amplitude tracks page view events by default. The default behavior sends a page view event on initialization. The event type for this event is `[Amplitude] Page Viewed`. -Set `config.defaultTracking.pageViews` to `false` to disable page view tracking. +Set `config.autocapture.pageViews` to `false` to disable page view tracking. ```ts amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: { + autocapture: { pageViews: false, //[tl! highlight] }, }); @@ -435,9 +397,9 @@ Use the advanced configuration to better control when the SDK sends page view ev {{partial:collapse name="Tracking page views options"}} | Name | Value | Description | | ------------------------------------------------------ | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config.defaultTracking.pageViews.trackOn` | Optional. `"attribution"` or `() => boolean` | Provides advanced control for when the SDK tracks page view events. Omit or set the value to `undefined`, and configure the SDK to track page view events to on initialization. Set the value to `"attribution"` and configure the SDK to track page view events to only when it tracks web attribution. Set the value to a function that returns a boolean (`true` or `false`) and configure the SDK to track page view events to based on your criteria. | -| `config.defaultTracking.pageViews.trackHistoryChanges` | Optional. `"pathOnly"` or `"all"` | Provides advanced control for single page application for when the SDK tracks page views. Omit or set the value to `"all"`, and configure the SDK to track page view events on any navigation change to the URL within your single page application. For example: navigating from `https://amplitude.com/#company` to `https://amplitude.com/#blog`. Set the value to `pathOnly`, and configure the SDK to track page view events on navigation change to the URL path only within your single page application. For example: navigating from `https://amplitude.com/company` to `https://amplitude.com/blog`. | -| `config.defaultTracking.pageViews.eventType` | Optional. `string` | Customize the event\_type for page view event. | +| `config.autocapture.pageViews.trackOn` | Optional. `"attribution"` or `() => boolean` | Provides advanced control for when the SDK tracks page view events. Omit or set the value to `undefined`, and configure the SDK to track page view events to on initialization. Set the value to `"attribution"` and configure the SDK to track page view events to only when it tracks web attribution. Set the value to a function that returns a boolean (`true` or `false`) and configure the SDK to track page view events to based on your criteria. | +| `config.autocapture.pageViews.trackHistoryChanges` | Optional. `"pathOnly"` or `"all"` | Provides advanced control for single page application for when the SDK tracks page views. Omit or set the value to `"all"`, and configure the SDK to track page view events on any navigation change to the URL within your single page application. For example: navigating from `https://amplitude.com/#company` to `https://amplitude.com/#blog`. Set the value to `pathOnly`, and configure the SDK to track page view events on navigation change to the URL path only within your single page application. For example: navigating from `https://amplitude.com/company` to `https://amplitude.com/blog`. | +| `config.autocapture.pageViews.eventType` | Optional. `string` | Customize the event\_type for page view event. | {{/partial:collapse}} @@ -445,7 +407,7 @@ For example, you can configure Amplitude to track page views only when the URL p ```ts amplitude.init(API_KEY, OPTIONAL_USER_ID, { - defaultTracking: { + autocapture: { pageViews: { //[tl! highlight:2] trackOn: () => { return window.location.pathname.includes('home'); @@ -459,7 +421,7 @@ Browser SDK tracks the following information in page view events. | Name | Description | Default Value | | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | -| `event_type` | `string`. The event type for page view event. Configurable through `defaultTracking.pageViews.eventType` or enrichment plugin. | `[Amplitude] Page Viewed` from version 1.9.1. | +| `event_type` | `string`. The event type for page view event. Configurable through `autocapture.pageViews.eventType` or enrichment plugin. | `[Amplitude] Page Viewed` from version 1.9.1. | | `event_properties.[Amplitude] Page Domain` | `string`. The page domain. | location.hostname or ''. | | `event_properties.[Amplitude] Page Location` | `string`. The page location. | location.href or ''. | | `event_properties.[Amplitude] Page Path` | `string`. The page path. | location.path or ''. | @@ -473,11 +435,11 @@ See [this example](https://github.com/amplitude/Amplitude-TypeScript/blob/main/e Amplitude tracks session events by default. A session is the period of time a user has your website open. See [How Amplitude defines sessions](https://help.amplitude.com/hc/en-us/articles/115002323627-Track-sessions-in-Amplitude#how-amplitude-defines-sessions) for more information. When a new session starts, Amplitude tracks a session start event and is the first event of the session. The event type for session start is `[Amplitude] Start Session`. When an existing session ends, Amplitude tracks a session end event, which is the last event of the session. The event type for session end is `[Amplitude] End Session`. -You can opt out of tracking session events by setting `config.defaultTracking.sessions` to `false`. Refer to the code sample below. +You can opt out of tracking session events by setting `config.autocapture.sessions` to `false`. Refer to the code sample below. ```ts amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: { + autocapture: { sessions: false, //[tl! highlight] }, }); @@ -496,11 +458,11 @@ Amplitude can track forms constructed with `
` tags and `` tags nest
``` -Set `config.defaultTracking.formInteractions` to `false` to disable form interaction tracking +Set `config.autocapture.formInteractions` to `false` to disable form interaction tracking ```ts amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: { + autocapture: { formInteractions: false, //[tl! highlight] }, }); @@ -512,16 +474,62 @@ Amplitude tracks file download events by default. The SDK tracks `[Amplitude] Fi `pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma` -Set `config.defaultTracking.fileDownloads` to `false` to disable file download tracking. +Set `config.autocapture.fileDownloads` to `false` to disable file download tracking. ```ts amplitude.init(AMPLITUDE_API_KEY, { - defaultTracking: { + autocapture: { fileDownloads: false, }, }); ``` +## Track an event + +Events represent how users interact with your application. For example, "Button Clicked" might be an action you want to track. + +```ts +// Track a basic event +amplitude.track('Button Clicked'); + +// Track events with optional properties +const eventProperties = { + buttonColor: 'primary', +}; +amplitude.track('Button Clicked', eventProperties); +``` + +You can also pass a `BaseEvent` object to `track`. For more information, see the [BaseEvent](https://amplitude.github.io/Amplitude-TypeScript/interfaces/_amplitude_analytics_browser.Types.BaseEvent.html) interface for all available fields. + +```ts +const event_properties = { + buttonColor: 'primary', +}; + +const event = { + event_type: "Button Clicked", + event_properties, + groups: { 'role': 'engineering' }, + group_properties: { 'groupPropertyKey': 'groupPropertyValue' } +}; + +amplitude.track(event); +``` + +## Track events to multiple projects + +By default, Amplitude SDKs send data to one Amplitude project. To send data to more than one project, add an instance of the Amplitude SDK for each project you want to receive data. Then, pass instance variables to wherever you want to call Amplitude. Each instance allows for independent `apiKey`, `userId`, `deviceId`, and `settings` values. + +```ts +const defaultInstance = amplitude.createInstance(); +defaultInstance.init(API_KEY_DEFAULT); + +const envInstance = amplitude.createInstance(); +envInstance.init(API_KEY_ENV, { + instanceName: 'env', +}); +``` + ## User properties User properties are details like device details, user preferences, or language to help you understand your users at the time they performed an action in your app. @@ -1178,7 +1186,7 @@ Tracking occurs when either of the following applies: | Rule | Example | | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| The current subdomain is not an excluded referrer. | The referrer does not originates from the same domain or the current subdomain is not match any referrer in `config.defaultTracking.attribution.excludeReferrers`. | +| The current subdomain is not an excluded referrer. | The referrer does not originates from the same domain or the current subdomain is not match any referrer in `config.autocapture.attribution.excludeReferrers`. | | No previous campaign. | A user's initial visit. | | There is an introduction of new UTM parameter or Click ID parameter. | If any utm parameters or Click ID parameters have been dropped during a session, we will unset it. | | The referrer domain changes to a new one. | Referrer domain changed from `a.test.com` to `b.test-new.com` | @@ -1188,8 +1196,8 @@ Amplitude doesn't track marketing attribution under any of the following conditi | Rule | Example | | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | The referrer originates from the same domain with default configuration. | The landing page is `a.test.com`, with the referrer set to `b.test.com`. | -| A specific referrer domain is explicitly excluded. | When setting `config.defaultTracking.attribution.excludeReferrers` = `[a.test.com]`, and the referrer domain is `a.test.com` for the current page. | -| The subdomain is specified or matches the regular expression in `config.defaultTracking.attribution.excludeReferrers`. | Configuration of excludeReferrers involves specific string arrays or a regular expression. | +| A specific referrer domain is explicitly excluded. | When setting `config.autocapture.attribution.excludeReferrers` = `[a.test.com]`, and the referrer domain is `a.test.com` for the current page. | +| The subdomain is specified or matches the regular expression in `config.autocapture.attribution.excludeReferrers`. | Configuration of excludeReferrers involves specific string arrays or a regular expression. | | The user engages in direct traffic within the same session. | During a session, a user clicks on a link without any campaign attribution parameters, including the absence of UTM and click id parameters from an email. | | SPA redirect without page reloading | During a session, a user clicks on a link without any campaign attribution parameters, including the absence of UTM and click id parameters from an email. | @@ -1202,7 +1210,7 @@ SPA typically don't experience a true page load after a visitor enters the site, ### Remote configuration -Beginning with version 2.10.0, the Amplitude Browser SDK supports remote config. By default, the SDK disables this feature. +Beginning with version 2.10.0, the Amplitude Browser SDK supports remote configuration. By default, the SDK disables this feature. To enable remote config, add `fetchRemoteConfig: true` to the `amplitude.init()` call as shown below. @@ -1212,6 +1220,10 @@ amplitude.init(AMPLITUDE_API_KEY, { }); ``` -When remote config is enabled, the SDK will first check if remote config has been fetched within the same session. If so, it will use the remote config stored in the indexedDB. Otherwise, it will fetch remote config from the remote config endpoint. Note that remote config will override local config. +When remote config is enabled, the SDK checks if remote configuration has been fetched within the same session. If so, it uses the remote configuration stored in the indexedDB. Otherwise, it fetches the remote configuration from the remote configuration endpoint. + +{{partial:admonition type="note" heading=""}} +Remote configuration supports Autocapture settings, and overrides settings you configure locally. +{{/partial:admonition}} -You can set remote config in the Amplitude app "Data -> Manage -> Settings -> Autocapture". It currently supports `config.autocapture` only. +In Amplitude, navigate to *Data > Manage > Settings > Autocapture* to add or update a remote configuration. From a52094ce2a49254114b7b84aaf082caca78c2d95 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 6 Aug 2024 13:47:15 -0700 Subject: [PATCH 30/43] Update migrate to browser 2 article --- .../en/migrate-from-browser-sdk-1-0-to-2-0.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/content/collections/browser_sdk/en/migrate-from-browser-sdk-1-0-to-2-0.md b/content/collections/browser_sdk/en/migrate-from-browser-sdk-1-0-to-2-0.md index 9ea2491d4..b1e0ea7a8 100644 --- a/content/collections/browser_sdk/en/migrate-from-browser-sdk-1-0-to-2-0.md +++ b/content/collections/browser_sdk/en/migrate-from-browser-sdk-1-0-to-2-0.md @@ -51,15 +51,15 @@ Ampli v2 is compatible with both Browser SDK 2.0 and Browser SDK 1.0. Follow thi } ``` -## Default events tracking +## Autocapture -Starting with Browser SDK 2.0, default tracking is enabled by default. Default tracking is implicit tracking performed by Amplitude on your behalf, and includes page views, sessions, file downloads, form interactions, and marketing attribution. +Starting with Browser SDK 2.10.0, Autocapture is enabled by default. Autocapture is implicit tracking performed by Amplitude on your behalf, and includes page views, sessions, file downloads, form and element interactions, and marketing attribution. -To opt out of default tracking, set `options.defaultTracking` to `false`. +To opt out of default tracking, set `options.autocapture` to `false`. ```ts amplitude.init(API_KEY, undefined, { - defaultTracking: false, + autocapture: false, }); ``` @@ -67,12 +67,13 @@ Additionally, you can pick and choose which events you want tracked by Amplitude ```ts amplitude.init(API_KEY, undefined, { - defaultTracking: { + autocapture: { attribution: true, pageViews: true, sessions: false, fileDownload: false, formInteractions: false, + elementInteractions: false }, }); ``` From a9cf976b78c1443bb2cdf211a88139f79fa543dc Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 6 Aug 2024 13:54:42 -0700 Subject: [PATCH 31/43] update getting started autocapture article --- .../collections/get-started/en/autocapture.md | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/content/collections/get-started/en/autocapture.md b/content/collections/get-started/en/autocapture.md index c2a11628a..660f651e8 100644 --- a/content/collections/get-started/en/autocapture.md +++ b/content/collections/get-started/en/autocapture.md @@ -14,50 +14,43 @@ Amplitude's Autocapture helps you gain insights as soon as you install the SDK. When you use them together, Amplitude's latest [Browser SDK](/docs/sdks/analytics/browser/browser-sdk-2) and [Autocapture plugin](/docs/sdks/analytics/browser/autocapture-plugin) captures default events, form field interactions, and marketing attribution information. ### Install the SDK and plugin -Autocapture requires the latest versions of the Amplitude Browser SDK ({{sdk_versions:browser}}) and the Autocapture plugin ({{sdk_versions:visual_labeling_plugin}}) +Autocapture requires the latest versions of the Amplitude Browser SDK ({{sdk_versions:browser}}). {{partial:tabs tabs="Script Loader, npm, yarn"}} {{partial:tab name="Script Loader"}} -```html - - -``` +{{partial:partials/code/snippet autocapture="true"}} {{/partial:tab}} {{partial:tab name="npm"}} ```bash npm install @amplitude/analytics-browser -npm install @amplitude/plugin-autocapture-browser ``` {{/partial:tab}} {{partial:tab name="yarn"}} ```bash yarn add @amplitude/analytics-browser -yarn add @amplitude/plugin-autocapture-browser ``` {{/partial:tab}} {{/partial:tabs}} -### Initialize the SDK and plugin +### Initialize the SDK -The Amplitude Browser SDK supports a [plugin architecture](/docs/sdks/sdk-plugins) that enables features like Autocapture. To enable the plugin, update your code with one of the following snippets, depending on your implementation. Both methods require that you define the Autocapture plugin, then call `add()` to enable it. +Autocapture ships with Browser SDK 2.10.0 and above. To enable it, set `config.autocapture.elementInteractions` to `true` when you initialize the SDK. {{partial:tabs tabs="Script loader, npm / yarn"}} {{partial:tab name="Script loader"}} -```html - -``` +{{partial:partials/code/snippet autocapture="true"}} {{/partial:tab}} {{partial:tab name="npm / yarn"}} ```js import * as amplitude from '@amplitude/analytics-browser'; import { autocapturePlugin } from '@amplitude/plugin-autocapture-browser'; -amplitude.init(AMPLITUDE_API_KEY); -amplitude.add(autocapturePlugin()); +amplitude.init('AMPLITUDE_API_KEY', { + autocapture: { + elementInteractions: true + } +}); + ``` {{/partial:tab}} {{/partial:tabs}} From d098cb251c2fc75c38711e1b99526a49f811710a Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 6 Aug 2024 14:24:25 -0700 Subject: [PATCH 32/43] one line of code, new account --- .../get-started/en/create-a-new-account.md | 45 ++++++++++++++++++ .../collections/get-started/en/create-org.md | 8 ++-- content/trees/collections/en/get-started.yaml | 2 + content/trees/navigation/en/get_started.yaml | 9 ++-- ...K0K8Rz1IHLfHYPbiUe3DZfnHnKN_xBqbVcUTA.yaml | 7 +++ .../get-started/.meta/data-flowing.png.yaml | 7 +++ .../output/img/get-started/data-flowing.png | Bin 0 -> 14863 bytes resources/views/layout.antlers.html | 1 + 8 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 content/collections/get-started/en/create-a-new-account.md create mode 100644 public/docs/output/img/funnel-analysis/.meta/MRXBP5ODtzqgEnLlw4KApeJtYs3yI4j_xqEglHuDTfone2Kke4CmuakZCtOC5zQ50CVxeA1qtZrrTR09CzLlukIBIM6_urw6YsnX-AmYIPEJKBh3vaK0K8Rz1IHLfHYPbiUe3DZfnHnKN_xBqbVcUTA.yaml create mode 100644 public/docs/output/img/get-started/.meta/data-flowing.png.yaml create mode 100644 public/docs/output/img/get-started/data-flowing.png diff --git a/content/collections/get-started/en/create-a-new-account.md b/content/collections/get-started/en/create-a-new-account.md new file mode 100644 index 000000000..ae13ba60c --- /dev/null +++ b/content/collections/get-started/en/create-a-new-account.md @@ -0,0 +1,45 @@ +--- +id: 0037796b-7b61-4125-bbc7-6d13c83e6e6a +blueprint: get-started +title: 'Create a new Account' +this_article_will_help_you: + - 'Create a new Amplitude Account and Organization' + - 'Configure the Amplitude snippet to include the features you want' +landing: false +exclude_from_sitemap: false +updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 +updated_at: 1722979409 +--- +Amplitude's onboarding enables you to get data into your new organization as quickly as possible. + +## The Amplitude snippet + +Once you sign up and activate your account, Amplitude prompts you to connect your first application with a single snippet. Enable [Session Replay](/docs/session-replay) and [Autocapture](/docs/data/autocapture) to enable those features automatically. + +{{partial:partials/code/snippet autocapture="true" session_replay="true"}} + +Amplitude inserts your API key in the snippet as necessary. Paste the snippet in the `head` tag of each page you want to track user behavior, create a feature flag, or build a cohort. + +This snippet installs and initializes the [Browser SDK](/docs/sdks/analytics/browser/browser-sdk-2) and any extra features you enable. + +After you install the snippet, browser your site to allow Amplitude to verify that data flows to your project. + +![](statamic://asset::help_center_conversions::get-started/data-flowing.png) + +When Amplitude verifies that it can receive events, click **Next** to create your first chart, and optionally save it as a dashboard. + + + +## Other ways to install + +Amplitude supports other [integrations](/docs/data/source-catalog), [SDKs](/docs/sdks/analytics), and [API](docs/apis/analytics/http-v2) to help you start sending data. + +For these methods, view the associated documentation for help getting started. + +## Send sample data + +Amplitude supports sending test data to get you started. Use any of the following methods: + +- CSV Upload +- Chrome extention +- Web bookmarklet \ No newline at end of file diff --git a/content/collections/get-started/en/create-org.md b/content/collections/get-started/en/create-org.md index afd7057e8..14ca4b3d0 100644 --- a/content/collections/get-started/en/create-org.md +++ b/content/collections/get-started/en/create-org.md @@ -12,14 +12,12 @@ exclude_from_sitemap: false this_article_will_help_you: - 'Create your first organization in Amplitude' --- -In Amplitude, all your analyses live within a larger **project**. Projects, in turn, are contained within **organizations**. For most companies, one organization is enough to effectively manage their Amplitude projects. The number of projects you’ll need depends on your company’s analytics practices and requirements, which is why there’s no limit on the number of projects you can create. - +In Amplitude, all your analyses live within a larger **project**. Projects, in turn, exist within **organizations**. For most companies, one organization is enough to effectively manage their Amplitude projects. The number of projects you’ll need depends on your company’s analytics practices and requirements, which is why there’s no limit on the number of projects you can create. {{partial:admonition type="note" heading="Note"}} You may want to take [this course](https://academy.amplitude.com/amplitude-analytics-admin-essentials) on administering Amplitude in Amplitude Academy. {{/partial:admonition}} - If you’re the first person in your company to register for an Amplitude account, you must create an organization as part of that process. Usually, it's best to use your company’s name for that organization. ## Create an organization @@ -34,10 +32,12 @@ Before you can create an organization, you must [create an Amplitude account](ht 3. Next, enter the organization’s name in the *Org URL* field. This creates an Amplitude directory for your organization and is used to identify your organization when you log in. 4. To make your organization discoverable for other team members to join automatically, check the box next to *Anyone with your domain can join*. You don't have to approve new members. 5. Click *Create* to create your organization. -6. Once Amplitude has finished creating your organization, navigate to *Settings → Access & SSO Settings*. Scroll down to the *Org Discovery* panel and specify whether your organization is an **open org** (new users can join without an invitation or explicit approval), or whether it's accessible to new users via **invite only** or through **admin approval**. The default setting is "invite only." +6. Once Amplitude has finished creating your organization, navigate to *Settings → Access & SSO Settings*. Scroll down to the *Org Discovery* panel and specify whether your organization is an **open org** (new users can join without an invitation or explicit approval), or whether it's accessible to new users through **invite only** or through **admin approval**. The default setting is "invite only." If you wish to change your organization name or URL, send a request from the [Amplitude Support page](https://support.amplitude.com) with your org ID, new organization name, and new organization URL. + + Check out [this article to learn about managing your organization](/docs/admin/account-management/manage-orgs-projects). Now that you’ve created your Amplitude organization, it’s time to [create your first project](/docs/get-started/create-project). \ No newline at end of file diff --git a/content/trees/collections/en/get-started.yaml b/content/trees/collections/en/get-started.yaml index 2f71454a7..7841c8f1d 100644 --- a/content/trees/collections/en/get-started.yaml +++ b/content/trees/collections/en/get-started.yaml @@ -9,3 +9,5 @@ tree: entry: b337d57f-f887-4596-9dc8-9397e301b7f4 - entry: 062d89f1-1e39-4f90-8490-1ee34c5647f9 + - + entry: 0037796b-7b61-4125-bbc7-6d13c83e6e6a diff --git a/content/trees/navigation/en/get_started.yaml b/content/trees/navigation/en/get_started.yaml index ded19064f..843e7b35f 100644 --- a/content/trees/navigation/en/get_started.yaml +++ b/content/trees/navigation/en/get_started.yaml @@ -6,6 +6,9 @@ tree: - id: 4914bd44-0aad-4f7c-8e97-d0b57d671ad9 entry: e4d9e0f6-a440-47d9-9f21-f1af62645bff + - + id: e20fe145-2a97-4f11-a02e-870e666c4477 + entry: 0037796b-7b61-4125-bbc7-6d13c83e6e6a - id: d1b99fe5-418d-4c69-a6dd-b0e40303e8d0 entry: 60e0ed22-81d6-4978-8751-cb7e4f6a24f1 @@ -34,6 +37,9 @@ tree: id: ae9efd21-4d93-4d22-b56b-8e23401628da title: 'Source Catalog' url: /docs/data/source-catalog + - + id: 67e31de9-d899-47a7-8e8e-52be22d8a5b2 + entry: 062d89f1-1e39-4f90-8490-1ee34c5647f9 - id: 60f7ce81-ea9b-4e5f-adc7-3e3801691c58 entry: 669876e4-a2ae-44d5-bfb2-5def51504a25 @@ -46,9 +52,6 @@ tree: - id: fb66467c-e050-4c9e-bdf6-e110f8abf58b entry: 95a8c851-e03e-4b3d-907b-d3381dd46957 - - - id: 67e31de9-d899-47a7-8e8e-52be22d8a5b2 - entry: 062d89f1-1e39-4f90-8490-1ee34c5647f9 - id: 8699ae75-d49f-4d84-9090-0bef3527444c title: 'Build a Chart' diff --git a/public/docs/output/img/funnel-analysis/.meta/MRXBP5ODtzqgEnLlw4KApeJtYs3yI4j_xqEglHuDTfone2Kke4CmuakZCtOC5zQ50CVxeA1qtZrrTR09CzLlukIBIM6_urw6YsnX-AmYIPEJKBh3vaK0K8Rz1IHLfHYPbiUe3DZfnHnKN_xBqbVcUTA.yaml b/public/docs/output/img/funnel-analysis/.meta/MRXBP5ODtzqgEnLlw4KApeJtYs3yI4j_xqEglHuDTfone2Kke4CmuakZCtOC5zQ50CVxeA1qtZrrTR09CzLlukIBIM6_urw6YsnX-AmYIPEJKBh3vaK0K8Rz1IHLfHYPbiUe3DZfnHnKN_xBqbVcUTA.yaml new file mode 100644 index 000000000..5027fff52 --- /dev/null +++ b/public/docs/output/img/funnel-analysis/.meta/MRXBP5ODtzqgEnLlw4KApeJtYs3yI4j_xqEglHuDTfone2Kke4CmuakZCtOC5zQ50CVxeA1qtZrrTR09CzLlukIBIM6_urw6YsnX-AmYIPEJKBh3vaK0K8Rz1IHLfHYPbiUe3DZfnHnKN_xBqbVcUTA.yaml @@ -0,0 +1,7 @@ +data: { } +size: 4366 +last_modified: 1718042818 +width: null +height: null +mime_type: image/png +duration: null diff --git a/public/docs/output/img/get-started/.meta/data-flowing.png.yaml b/public/docs/output/img/get-started/.meta/data-flowing.png.yaml new file mode 100644 index 000000000..79e08296f --- /dev/null +++ b/public/docs/output/img/get-started/.meta/data-flowing.png.yaml @@ -0,0 +1,7 @@ +data: { } +size: 14863 +last_modified: 1722979405 +width: 899 +height: 239 +mime_type: image/png +duration: null diff --git a/public/docs/output/img/get-started/data-flowing.png b/public/docs/output/img/get-started/data-flowing.png new file mode 100644 index 0000000000000000000000000000000000000000..1c67ab6f1bfead23bea43be28441feaa3d5a3bd3 GIT binary patch literal 14863 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 literal 0 HcmV?d00001 diff --git a/resources/views/layout.antlers.html b/resources/views/layout.antlers.html index 1d570239c..86b56fe3e 100644 --- a/resources/views/layout.antlers.html +++ b/resources/views/layout.antlers.html @@ -42,6 +42,7 @@ } {{/if}} +
From af28915f567f9d937834a3b0de7c0b8e9db1081b Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 6 Aug 2024 14:33:46 -0700 Subject: [PATCH 33/43] add note about session replay sample rate in snippet --- content/collections/get-started/en/create-a-new-account.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content/collections/get-started/en/create-a-new-account.md b/content/collections/get-started/en/create-a-new-account.md index ae13ba60c..124d4aa04 100644 --- a/content/collections/get-started/en/create-a-new-account.md +++ b/content/collections/get-started/en/create-a-new-account.md @@ -18,6 +18,10 @@ Once you sign up and activate your account, Amplitude prompts you to connect you {{partial:partials/code/snippet autocapture="true" session_replay="true"}} +{{partial:admonition type="note" heading="Session Replay sample rate"}} +When you add Session Replay to the snippet, Amplitude sets the Sample Rate to `1`. This ensures you can verify the implementation during testing. In production, Amplitude recommends you set this value lower to account for your monthly quota. For more information, see [Session Replay Plugin | Sampling rate](/docs/session-replay/session-replay-plugin#sampling-rate) +{{/partial:admonition}} + Amplitude inserts your API key in the snippet as necessary. Paste the snippet in the `head` tag of each page you want to track user behavior, create a feature flag, or build a cohort. This snippet installs and initializes the [Browser SDK](/docs/sdks/analytics/browser/browser-sdk-2) and any extra features you enable. @@ -28,8 +32,6 @@ After you install the snippet, browser your site to allow Amplitude to verify th When Amplitude verifies that it can receive events, click **Next** to create your first chart, and optionally save it as a dashboard. - - ## Other ways to install Amplitude supports other [integrations](/docs/data/source-catalog), [SDKs](/docs/sdks/analytics), and [API](docs/apis/analytics/http-v2) to help you start sending data. From b731b9727e72477708ce8e0b4f8641b63c16dc6b Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 6 Aug 2024 14:58:25 -0700 Subject: [PATCH 34/43] remove snippet from test --- resources/views/layout.antlers.html | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/views/layout.antlers.html b/resources/views/layout.antlers.html index 86b56fe3e..1d570239c 100644 --- a/resources/views/layout.antlers.html +++ b/resources/views/layout.antlers.html @@ -42,7 +42,6 @@ } {{/if}} -
From a5ede60c955620da232bbc0dee158973bd363839 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 6 Aug 2024 16:00:26 -0700 Subject: [PATCH 35/43] Visual Labeling update --- .../collections/data/en/visual-labeling.md | 61 ++++++++----------- 1 file changed, 24 insertions(+), 37 deletions(-) diff --git a/content/collections/data/en/visual-labeling.md b/content/collections/data/en/visual-labeling.md index 5d4782f76..306c231f6 100644 --- a/content/collections/data/en/visual-labeling.md +++ b/content/collections/data/en/visual-labeling.md @@ -10,55 +10,41 @@ exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 updated_at: 1718657270 --- -When you enable [the Autocapture plugin](https://www.docs.developers.amplitude.com/data/sdks/browser-2/autocapture/), you can begin to create **labeled events** by clicking specific elements on your site, using Amplitude Data's Visual Labeling feature. This way, non-technical Amplitude users can create these events without needing to understand the structure of the page. +When you [Autocapture plugin](/docs/get-started/autocapture), you can begin to create **labeled events** by clicking specific elements on your site, using Amplitude Data's Visual Labeling feature. This way, non-technical Amplitude users can create these events without needing to understand the structure of the page. -Labeled events are maintained separately from events you've created in other ways. If there are issues with data for labeled events, simply make adjustments from within the _Labeled Events_ tab, instead of involving your engineering team. - -This is **not** a tag management solution that allows you to manage or insert marketing tags on your site. Instead, Visual Labeling is designed to **reduce instrumentation barriers**, so you can accelerate your insights without waiting for assistance from an engineer. +Amplitude maintains labeled events separately from events you've created in other ways. If there are issues with data for labeled events, make adjustments from within the _Labeled Events_ tab, instead of involving your engineering team. ## Feature availability -This feature is available to users on Starter plans who onboarded on or after April 1st, 2024. See our [pricing page](https://amplitude.com/pricing) for more details. - -{{partial:admonition type='note'}} -Labeled events are limited to the specific interactions captured by the Autocapture plugin. As with other types of events, Amplitude Data will automatically associate user and group properties to these events, but no additional event properties will be captured. -{{/partial:admonition}} +This feature is available on all plans, and requires the following: -Visual Labeling is available for web applications and requires installation of the following: +* [Amplitude Browser SDK](/docs/sdks/analytics/browser/browser-sdk-2) 2.10.0 or higher +* The SDK's `config.autocapture.elementInteractions` option set to `true`. For more information, see [Browser SDK Configuration](/docs/sdks/analytics/browser/browser-sdk-2#configure-the-sdk). -- Amplitude Browser SDK -- Autocapture plugin ## Create a labeled event with Visual Labeling To use Visual Labeling to create new labeled events, follow these steps: -1. Open Amplitude Data and click *Events* in the left rail. -2. Select the *Labeled Events* tab. If someone in your organization has created labeled events before, they will appear here. Otherwise, this tab will be empty. -3. Click *+Create labeled event*. The *Open Event Tagger* modal will appear. -4. Enter the URL of the site or application you want to tag, then click *Start Tagging*. The app will open in a new tab. -5. In the app, click the element you want to tag. Amplitude Data will tag the element and return you to the Amplitude environment. -6. In the *Save Labeled Event* modal, enter the name and description of your labeled event. -7. You have two options for registering user activity with this element: when it is clicked, or when it is changed. Select the correct action from the *When this* drop-down menu. -8. To replace this element with a different one, click *Replace Element*. Amplitude Data will return you to step 4 of this procedure. -9. To edit the element’s properties manually, click *Edit Manually*. Here you can change the tag, text, selector, or page URL. - -{{partial:admonition type='note'}} -If you leave a field blank, Amplitude Data will interpret that as [any value]. For example, leaving the URL field blank results in the tag / text / selector combination you specified firing on any page. -{{/partial:admonition}} +1. Open Amplitude Data and click *Visual Labeling* in the left rail. The Launch Visual Labeling modal appears. +2. Enter the URL of the site or application you want to label, and click *Start Labeling*. Amplitude opens your website or app in a new tab, with the Visual Labeling toolbar at the top of the page. +3. Click an element you want to label, the Visual Labeling overlay appears. Click *Navigate* to navigate to a different part of site that you want to label. +4. In the Visual Labeling overlay, enter a name and description for your labeled event. Select if tracking should happen when a user clicks the element, or when it changes. Visual Labeling uses the `clicked` event by default. Refine the definition and select filters as needed. When you're done, click *Save*. +5. Amplitude saves the labeled event and displays a confirmation with an option to view the labeled event. +6. Repeat steps three through five for each event you want to label. +7. When you're done labeling, return to Amplitude. Here, you can manually update the tag, text, selector, and page URL of each labeled event. -10. If this is the only action you wish to include in your labeled event, click *Save*. Otherwise, proceed to the next step to add more actions. -11. To add another action to your labeled event, click *Select action…* and choose the appropriate action. -12. Enter the properties of the element you want to tag, or click *Switch to Visual Element Selection* and repeat this process. You can add as many actions as you want. -13. When you're done, click *Save*. The modal will close, and you will be returned to the *Labeled Events* tab. Your new event will be visible there. + {{partial:admonition type='note'}} + If you leave any fields blank, Amplitude interprets that as `[any value]`. For example, if you leave the URL field blank, the tracking for that event fires on any page. + {{/partial:admonition}} - -{{partial:admonition type='note'}} -You can only use default properties with a labeled event created via Visual Labeling. To define your own properties, track the event in your code instead. -{{/partial:admonition}} +8. If this is the only action you want to include in the labeled event, click Save. To add more actions: + 1. Click *Select action...* and choose the action to add. + 2. Enter the properties of the element you want to label, or click Switch to Visual Element Selection and repeat this process. You can add as many actions as you want. + 3. When you're done, click *Save*. The modal closes, and the Labeled Events tab loads, where your new events appear. ## Edit a labeled event -To edit a labeled event, click on it from within the *Labeled Events* tab. +To edit a labeled event, click it on the *Labeled Events* tab. In the event's fly-out tab, you can: @@ -67,8 +53,9 @@ In the event's fly-out tab, you can: ## Labeled events and event volume -Once you have enabled the Autocapture plugin, Amplitude will begin tracking click and page change events on your site. **These events do count** towards your event volume. Labeled events act as a **virtual** layer **on top** of these events, to help define a specific type of click and use it in an analysis. Therefore, **labeled events don't impact** your event volume. -For example, a well-instrumented site may see 10,000 events per day, and this plugin might add as many as 2,000 events per day. This site would therefore see a 20% increase in daily events. On the other hand, 1,000 events per day might be the norm for a similar site with only rudimentary instrumentation. Because this plugin will add the same number of events—2,000 per day—this site will see a 200% increase in daily events. +When you enable Autocapture, Amplitude begins tracking click and page change events on your site. These events count towards your total event volume. Labeled events act like a virtual layer on top of these events, and help define a specific type of click and use that click in an analysis. As a result, labeled events don't impact event volume beyond Autocapture. + +For example, a well-instrumented site may see 10,000 events per day, and Autocapture may add as many as 2,000 events per day. This means the site would see a 20% increase in daily events. A less-instrumented site may see only 1,000 instrumented events per day. The plugin adding another 2,000 events counts as a 200% increase. -In both cases, the increase in daily events comes from tracking the click and page change events on your site. Labeled events do not affect the event count either way. \ No newline at end of file +In both cases, the increase in daily events comes from tracking click and page change events. Labeled events don't impact the event count. \ No newline at end of file From 6a392e9c5950ce83473bb22a9526ad3798588447 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Wed, 7 Aug 2024 11:18:57 -0700 Subject: [PATCH 36/43] Remove old Autocapture plugin content --- .../browser_sdk/en/autocapture-plugin.md | 164 +----------------- content/trees/navigation/en/data.yaml | 26 +-- 2 files changed, 15 insertions(+), 175 deletions(-) diff --git a/content/collections/browser_sdk/en/autocapture-plugin.md b/content/collections/browser_sdk/en/autocapture-plugin.md index c1f4d7924..2f7301f7e 100644 --- a/content/collections/browser_sdk/en/autocapture-plugin.md +++ b/content/collections/browser_sdk/en/autocapture-plugin.md @@ -12,9 +12,9 @@ updated_at: 1718657468 --- {{partial:admonition type="warning" heading="Autocapture plugin is deprecated"}} -As of August 8, 2024, Amplitude's Autocapture plugin for the Browser SDK is deprecated. +Starting with Browser SDK version 2.10.0, Autocapture functionality is included with the SDK. -If you used the Autocapture plugin prior to August 8, Amplitude recommends that you remove the plugin from your instrumentation, and update Browser SDK to version 2.10.0 or above. Version 2.10.0 ships with Autocapture included. +For best results, Amplitued recommends that you upgrade to Browser SDK 2.10.0 or higher using the following instructions. {{/partial:admonition}} ## Update to the built-in Autocapture @@ -55,163 +55,3 @@ amplitude.init(AMPLITUDE_API_KEY, { //[tl! ++: 4] }); amplitude.add(autocapturePlugin()); //[tl! --] ``` - ---- - -Amplitude's Autocapture plugin extends the events and properties that Amplitude tracks by default, and enables Visual Labeling to enable you to define events based on elements on your site. For more information about Visual Labeling, see [Visual Labeling](/docs/data/visual-labeling). - -## Installation - -Autocapture requires the latest versions of the Amplitude Browser SDK ({{sdk_versions:browser}}) and the Autocapture plugin ({{sdk_versions:visual_labeling_plugin}}) - -{{partial:tabs tabs="Script Loader, npm, yarn"}} -{{partial:tab name="Script Loader"}} -```html - - -``` -{{/partial:tab}} -{{partial:tab name="npm"}} -```bash -npm install @amplitude/analytics-browser -npm install @amplitude/plugin-autocapture-browser -``` -{{/partial:tab}} -{{partial:tab name="yarn"}} -```bash -yarn add @amplitude/analytics-browser -yarn add @amplitude/plugin-autocapture-browser -``` -{{/partial:tab}} -{{/partial:tabs}} - -## Initialize the plugin - -The Amplitude Browser SDK supports a [plugin architecture](/docs/sdks/sdk-plugins) that enables features like Autocapture. To enable the plugin, update your code with one of the following snippets, depending on your implementation. Both methods require that you define the Autocapture plugin, then call `add()` to enable it. - -{{partial:tabs tabs="Script loader, npm / yarn"}} -{{partial:tab name="Script loader"}} -```html - -``` -{{/partial:tab}} -{{partial:tab name="npm / yarn"}} -```js -import * as amplitude from '@amplitude/analytics-browser'; -import { autocapturePlugin } from '@amplitude/plugin-autocapture-browser'; - -amplitude.init(AMPLITUDE_API_KEY); -amplitude.add(autocapturePlugin()); -``` -{{/partial:tab}} -{{/partial:tabs}} - -## Configuration - -The Autocapture plugin adds four settings that help you configure what the plugin tracks. - -|
Setting
| Default | Description | -| -------------------------- | ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `cssSelectorAllowlist` | `['a','button','input','select','textarea','label','[data-amp-default-track]','.amp-default-track']` | String[]. Accepts one or more CSS selectors that define which elements on the page to track. | -| `pageUrlAllowlist` | undefined | `(string\|RegExp)[]`. Defines the URL, URLs, or URL pattern on which Amplitude tracks default events | -| `shouldTrackEventResolver` | undefined | Function. Programatically determines if Amplitude should or shouldn't track an event. | -| `dataAttributePrefix` | `data-amp-track` | Allows the plugin to capture data attributes as an event property | - -```js -const plugin = autocapturePlugin({ - cssSelectorAllowlist: [ - '.amp-tracking', - '[amp-tracking]' - ], - pageUrlAllowlist: [ - 'https://amplitude.com', - new RegExp('https://amplitude.com/blog/*') - ], -}); -``` - -By default, if you don't use these settings, Amplitude tracks the default selectors on all page on which you enable the plugin. - -{{partial:admonition type="note" heading=""}} -When specify the CSS selectors to track, your selection overrides the default. To retain the default selectors import the `DEFAULT_CSS_SELECTOR_ALLOWLIST` and include it in your code. - -```js -import { DEFAULT_CSS_SELECTOR_ALLOWLIST } from '@amplitude/plugin-autocapture-browser'; - -const selectors = [ - ...DEFAULT_CSS_SELECTOR_ALLOWLIST, - '.class-of-a-thing-i-want-to-track', -]; -``` -{{/partial:admonition}} - -## New events - -When you enable the Autocapture plugin, Amplitude sends two events, from which you can create Labeled Events with Visual Labeling: - -- `[Amplitude] Element Clicked` -- `[Amplitude] Element Changed` - -These two events capture properties that describe the corresponding element and other context about the user's browser: - - -- `[Amplitude] Element ID` -- `[Amplitude] Element Class` -- `[Amplitude] Element Tag` -- `[Amplitude] Element Text` (Collected for `[Amplitude] Element Clicked`, only) -- `[Amplitude] Element Href` (Collected for `[Amplitude] Element Clicked`, only) -- `[Amplitude] Element Position Left` -- `[Amplitude] Element Position Top` -- `[Amplitude] Viewport Height` -- `[Amplitude] Viewport Width` -- `[Amplitude] Page URL` -- `[Amplitude] Page Title` -- `[Amplitude] Element Selector` -- `[Amplitude] Element Attributes` -- `[Amplitude] Element Aria Label` -- `[Amplitude] Element Parent Label` - - -## Disable Autocapture - -To disable Autocapture, remove the plugin from any pages that implement it, and set `defaultTracking: false` in the Amplitude initialization on that page. - -{{partial:tabs tabs="Script loader, npm / yarn"}} -{{partial:tab name="Script loader"}} -Remove the following lines of code: - -```html - - - - -``` -{{/partial:tab}} -{{partial:tab name="npm / yarn"}} -Remove the plugin: - -```bash -// npm -npm uninstall @amplitude/plugin-autocapture-browser - -// yarn -yarn remove @amplitude/plugin-autocapture-browser -``` - -Remove the initialization code: - -```javascript -// Remove the following lines of code -import { autocapturePlugin } from '@amplitude/plugin-autocapture-browser'; - -amplitude.add(autocapturePlugin()); -``` -{{/partial:tab}} -{{/partial:tabs}} diff --git a/content/trees/navigation/en/data.yaml b/content/trees/navigation/en/data.yaml index 286010bfa..2ea0230a9 100644 --- a/content/trees/navigation/en/data.yaml +++ b/content/trees/navigation/en/data.yaml @@ -27,19 +27,6 @@ tree: - id: eb30f600-7dc7-4768-834a-9d61e1090402 entry: 11423e67-aee4-4d24-9501-229b6065861b - - - id: 93c67f8d-a0ce-4d74-a32d-03e5e288ce41 - title: 'Warehouse-native Amplitude' - children: - - - id: 534bac6a-fcd1-49db-9df9-599a6e4017c1 - entry: 3d639f6c-44b5-4ece-b4a6-7af8b4277da0 - - - id: bc3a9d38-a36c-4bf8-8184-b974787aed81 - entry: e4734233-911d-4b24-bea6-570c05955b05 - - - id: f97e4b0d-0ce0-48f7-9c70-1370598c8216 - entry: 0aecc9dc-f80b-44f4-8ead-4ae0e4fd2603 - id: 5c207df6-c244-493a-ae56-ba8deaa66fd3 title: 'Plan your Data' @@ -149,6 +136,19 @@ tree: - id: bd47ee5c-f2c0-4a7b-8616-82d7b1b14ace entry: 59306913-18a3-4948-87c4-877316da591c + - + id: 93c67f8d-a0ce-4d74-a32d-03e5e288ce41 + title: 'Warehouse-native Amplitude' + children: + - + id: 534bac6a-fcd1-49db-9df9-599a6e4017c1 + entry: 3d639f6c-44b5-4ece-b4a6-7af8b4277da0 + - + id: bc3a9d38-a36c-4bf8-8184-b974787aed81 + entry: e4734233-911d-4b24-bea6-570c05955b05 + - + id: f97e4b0d-0ce0-48f7-9c70-1370598c8216 + entry: 0aecc9dc-f80b-44f4-8ead-4ae0e4fd2603 - id: 7318ab4d-f08a-4c62-8dc1-bd1c642934dc title: Audiences From 3e32c0939fd677c33695c947c2cf2b11bf6e7188 Mon Sep 17 00:00:00 2001 From: Nick Wu Date: Wed, 7 Aug 2024 13:10:30 -0700 Subject: [PATCH 37/43] update databricks docs with IP address ranges to whitelist --- content/collections/source-catalog/en/databricks.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/content/collections/source-catalog/en/databricks.md b/content/collections/source-catalog/en/databricks.md index 4a59b8763..21210e5f2 100644 --- a/content/collections/source-catalog/en/databricks.md +++ b/content/collections/source-catalog/en/databricks.md @@ -181,3 +181,14 @@ To verify the data coming into Amplitude: - View the Events page of your Tracking Plan - Create a Segmentation chart that filters on the event name you specify. - Go to the `Ingestion Jobs` tab in your source. You can view the status of the ingestion and debug using `ERROR LOG` if necessary. + +Depending on your company's network policy, you may need to add the following IP addresses to your allowlist to allow Amplitude's servers to access your Databricks instance: + +- Amplitude US IP addresses: + - 52.33.3.219 + - 35.162.216.242 + - 52.27.10.221 +- Amplitude EU IP addresses: + - 3.124.22.25 + - 18.157.59.125 + - 18.192.47.195 From e77e6e69f6eba9ed4359b947ad83109eeaffb643 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Wed, 7 Aug 2024 15:30:46 -0700 Subject: [PATCH 38/43] updates --- .../browser_sdk/en/autocapture-plugin.md | 4 +- .../browser_sdk/en/browser-sdk-2.md | 10 +-- content/collections/data/en/autocapture.md | 79 +++++++++++++++++++ .../collections/get-started/en/autocapture.md | 4 +- content/globals/en/sdk_versions.yaml | 1 + .../blueprints/globals/sdk_versions.yaml | 13 ++- .../views/partials/code/_snippet.antlers.html | 16 ++-- 7 files changed, 106 insertions(+), 21 deletions(-) diff --git a/content/collections/browser_sdk/en/autocapture-plugin.md b/content/collections/browser_sdk/en/autocapture-plugin.md index 2f7301f7e..7b836cd6b 100644 --- a/content/collections/browser_sdk/en/autocapture-plugin.md +++ b/content/collections/browser_sdk/en/autocapture-plugin.md @@ -12,9 +12,9 @@ updated_at: 1718657468 --- {{partial:admonition type="warning" heading="Autocapture plugin is deprecated"}} -Starting with Browser SDK version 2.10.0, Autocapture functionality is included with the SDK. +Starting with Browser SDK version 2.10.0, Amplitude includes [Autocapture](/docs/get-started/autocapture) functionality with the SDK. -For best results, Amplitued recommends that you upgrade to Browser SDK 2.10.0 or higher using the following instructions. +For best results, Amplitude recommends that you upgrade to Browser SDK 2.10.0 or higher using the following instructions. {{/partial:admonition}} ## Update to the built-in Autocapture diff --git a/content/collections/browser_sdk/en/browser-sdk-2.md b/content/collections/browser_sdk/en/browser-sdk-2.md index 16b69ae16..4578fb740 100644 --- a/content/collections/browser_sdk/en/browser-sdk-2.md +++ b/content/collections/browser_sdk/en/browser-sdk-2.md @@ -147,10 +147,6 @@ Control the level of logs the SDK prints to the console with the following `logL ## Autocapture -{{partial:admonition type="warning" heading="`autocapture` is deprecated"}} -As of Browser SDK version 2.10.0, `autocapture` is deprecated and replaced by `autocapture`. -{{/partial:admonition}} - Starting in SDK version 2.10.0, the Browser SDK can autocapture events when you enable it, and adds a configuration to control the collection of autocaptured events. Browser SDK can autocapture the following event types: - Attribution @@ -160,7 +156,7 @@ Starting in SDK version 2.10.0, the Browser SDK can autocapture events when you - File downloads - Element interactions -{{partial:collapse name="Default event tracking options"}} +{{partial:collapse name="Autocapture options"}} | Name | Value | Description | | ----------------------------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `config.autocapture.attribution` | Optional. `boolean` | Enables/disables marketing attribution tracking. If `true`, Amplitude tracks marketing attribution events. Default value is `true`. | @@ -172,7 +168,9 @@ Starting in SDK version 2.10.0, the Browser SDK can autocapture events when you {{/partial:collapse}} -To disable default tracking, see the following code sample. If you do nothing, the SDK tracks all default events. +### Disable Autocapture + +To disable Autocapture, see the following code sample. ```ts // Disable individual default tracked events diff --git a/content/collections/data/en/autocapture.md b/content/collections/data/en/autocapture.md index af3e3cd3b..4c8ed4d83 100644 --- a/content/collections/data/en/autocapture.md +++ b/content/collections/data/en/autocapture.md @@ -7,3 +7,82 @@ exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 updated_at: 1722883100 --- +Amplitude's Autocapture is the fastest way to capture information about your website or app with minimal setup. Once enabled, Autocapture captures user interactions on your site with no pre-planning or complex engineering work. It's a great way to get started and uncover insights quickly. + +## Availability + +Autocapture is available for all Amplitude plans. + +* On your website, a single [Browser SDK](/docs/sdks/analytics/browser/browser-sdk-2) snippet lets you capture sessions, page views, clicks, form interactions, file downloads, and other marketing attribution data. You can also use visual labeling to navigate your site and create new events from the click information. +* On iOS and Android, the [iOS Swift SDK](/docs/sdks/analytics/ios/ios-swift-sdk) and [Android-Kotlin SDK](/docs/sdks/analytics/android/android-kotlin-sdk) capture application installs and upgrades, sessions, page views, and more. + +## Autocapture and precision tracking + +Amplitude offers two primary ways to capture events: + +* Autocapture automatically collects a predefined set of events and properties in a standardized taxonomy using our SDKs. +* Precision tracking allows you to instrument events and properties specific to your business needs and desired analyses. + +With Autocapture, you get basic analytics with minimal engineering. From the moment you install the SDK, Amplitude collects data to gain insights into feature usage, funnel conversion rates, and even specific click analysis on the web. This solution is best to help you get running quickly. + +If you have follow-up questions about specific actions in your application that require additional context-specific metadata, or have some events (like a purchase event) that may be core to your business, Amplitude supports Precision tracking. Precise tracking in code allows you to send these events with a robust set of properties to perform even deeper analyses. + +With Amplitude, you don't need to choose. Both solutions go hand-in-hand, and you can use a combination of Autocapture and precision tracking data in your analyses. + +For example, if you’re in a scenario where you release a new feature and don't have the time to implement precision tracking. With Autocapture, you can proceed with the release knowing you have a safety net to get your baseline metrics and answer engagement questions. Once you have some insights and want to go deeper, you can work with your team to implement precisely tracked events and get the best of both worlds. + +## Optimize event volume + +Autocapture provides several configuration options to help you adjust your implementation to your needs. You can turn individual Autocapture events on and off as needed, and even tune those events further to optimize your event volume. + +The default configuration should provide the right balance of capturing events that matter while excluding ones that don't. This balance is most critical when capturing clicks. By default, Amplitude captures all clicks on interactable elements (for example, links, text fields, dropdowns, and other form elements). Amplitude also captures other clicks on elements that result in a change on the page (for example, a new visual element) or a navigation to a new page. This configuration excludes clicks on blank areas, a user highlighting text, and other similar actions. + +Amplitude recommends monitoring your event volume (in Settings > Plans & Billing) as you make changes to ensure it matches your expectations. You can change your configuration to capture clicks on specified elements (or elements with certain classes), track on specific pages, or turn click tracking off while still taking advantage of other Autocapture data (page views, sessions, etc.). + +## Your taxonomy with Autocapture + +Keeping your taxonomy clean and organized is essential to ensuring users can find what they need, so Autocapture captures data using a predefined set of event and property types. For example, the SDK captures all click interactions as two events: "Element Clicked" and "Element Changed." Each event also has a predefined set of properties. + +[Visual labeling](/docs/data/visual-labeling) allows other users on your to create events, so there are some additional considerations to make when thinking about your taxonomy: + +* Be sure you set up the correct permissions for each user. Users with a Member role or higher can create labeled events. +* Continue using your naming conventions and add descriptions for your labeled events, just as you would with other events. + +Some additional things to know about your labeled events: + +* Labeled events have a separate tab within Data > Events to help you manage them separately from your raw ingested events. Here, you can see who created the labeled events and when they created them. +* Labeled events have a different icon in the event dropdown so you and your users can distinguish them from other events. + +## Privacy and security + +For many organizations, data privacy, security, and PII are critical factors when setting up their tracking strategy. Your business needs, the purpose of your application, and the potential for legal exposure between jurisdictions can vary greatly, and there's no one-size-fits-all solution that can work in every situation. + +Amplitude's Autocapture feature provides flexible configuration options to adhere to your company's legal and security requirements. These settings prevent your product from sending that data in the first place, so it never makes it to Amplitude. + +### Autocapture protections + +You control what information Autocapture sends to Amplitude. For information about how to update the events that Autocapture sends to Amplitude, see [Browser SDK | Disable Autocapture](/docs/sdks/analytics/browser/browser-sdk-2#disable-autocapture). + +Autocapture's default settings include the following privacy and security considerations: + +* Autocapture only collects class names and the type attribute from user input fields, including `input`, `select`, and `textarea` elements, along with any HTML element with the `contenteditable="true"` attribute. Autocapture excludes any user-inputted text. The exception to these attribute collection rules is when an element has an explicit attribute added with the prefix `data-amp-track-`. This allows you to intentionally pass the data in these attributes back to Amplitude. +* Autocapture further restricts sensitive input fields, like passwords or form fields with the hidden attribute to capture class names only. Autocapture doesn't capture other details about these elements. +* Click tracking uses pattern matching to automatically remove any text that looks like a credit card or social security number. +* Autocapture removes value, event handlers, style, and react attribute. + +### Autocapture security options + +Some companies, like those in financial services, healthcare, and medical technologies, may deal with highly sensitive data. If your organization requires higher restrictions or safeguards, Autocapture provides the following options. + +#### Limit click tracking + +To support visual labeling, Autocapture captures interaction information about both the elements clicked or changed and information about the element's parents in the HTML structure. Depending on your site's structure, you can: + +* Change the elements allowed for click and change tracking. Configure the `cssSelectorAllowlist` and `actionClickAllowlist` options to change the list of elements that Autocapture can track. You can even remove all common HTML elements and restrict to elements with a specific class. +* Change the pages allowed for click and change tracking. You can configure the `pageUrlAllowlist` to limit the collection of these events to specific URLs (or URL patterns). + +#### Turn off Autocapture events + +Amplitude provides the flexibility to track any or all of more precisely with Data Management tools and workflows that give you complete control of your data. + +You can turn off any or all Autocapture events through your SDK configuration. diff --git a/content/collections/get-started/en/autocapture.md b/content/collections/get-started/en/autocapture.md index 660f651e8..762840150 100644 --- a/content/collections/get-started/en/autocapture.md +++ b/content/collections/get-started/en/autocapture.md @@ -1,7 +1,7 @@ --- id: 062d89f1-1e39-4f90-8490-1ee34c5647f9 blueprint: get-started -title: Autocapture +title: Use Autocapture to get fast insights landing: false exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 @@ -38,7 +38,7 @@ Autocapture ships with Browser SDK 2.10.0 and above. To enable it, set `config.a {{partial:tabs tabs="Script loader, npm / yarn"}} {{partial:tab name="Script loader"}} -{{partial:partials/code/snippet autocapture="true"}} +No extra initialization required. {{/partial:tab}} {{partial:tab name="npm / yarn"}} ```js diff --git a/content/globals/en/sdk_versions.yaml b/content/globals/en/sdk_versions.yaml index 862f13e7c..2504cc24b 100644 --- a/content/globals/en/sdk_versions.yaml +++ b/content/globals/en/sdk_versions.yaml @@ -1,4 +1,5 @@ browser: 2.10.0 +browser_sdk_sha: sha384-8fNco6Xiv+HOa+SIVGKVjByyY5LyircydGlHS9mXcHJpapcgF98L6UNOlauMTxJq visual_labeling_plugin: 1.0.0 session_replay_plugin: 1.4.0 session_replay_standalone: 1.6.0 diff --git a/resources/blueprints/globals/sdk_versions.yaml b/resources/blueprints/globals/sdk_versions.yaml index 96640f96d..003033759 100644 --- a/resources/blueprints/globals/sdk_versions.yaml +++ b/resources/blueprints/globals/sdk_versions.yaml @@ -13,12 +13,12 @@ tabs: width: 50 localizable: false - - handle: node + handle: browser_sdk_sha field: type: text - display: Node - width: 50 + display: 'Browser SDK SHA' localizable: false + width: 50 - handle: android field: @@ -26,6 +26,13 @@ tabs: display: Android width: 50 localizable: false + - + handle: node + field: + type: text + display: Node + width: 50 + localizable: false - handle: ios field: diff --git a/resources/views/partials/code/_snippet.antlers.html b/resources/views/partials/code/_snippet.antlers.html index 1f955ee53..a16e2fe52 100644 --- a/resources/views/partials/code/_snippet.antlers.html +++ b/resources/views/partials/code/_snippet.antlers.html @@ -1,7 +1,7 @@ {{if session_replay&&autocapture}} {{markdown}} -```html - +``` + +``` + +``` + +``` + From 1ef88b248f71c198d0d5a9e9c511c0e899840653 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Wed, 7 Aug 2024 15:56:51 -0700 Subject: [PATCH 39/43] Final edits --- content/collections/data/en/visual-labeling.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/content/collections/data/en/visual-labeling.md b/content/collections/data/en/visual-labeling.md index 306c231f6..2a6bf3e69 100644 --- a/content/collections/data/en/visual-labeling.md +++ b/content/collections/data/en/visual-labeling.md @@ -53,9 +53,22 @@ In the event's fly-out tab, you can: ## Labeled events and event volume - When you enable Autocapture, Amplitude begins tracking click and page change events on your site. These events count towards your total event volume. Labeled events act like a virtual layer on top of these events, and help define a specific type of click and use that click in an analysis. As a result, labeled events don't impact event volume beyond Autocapture. For example, a well-instrumented site may see 10,000 events per day, and Autocapture may add as many as 2,000 events per day. This means the site would see a 20% increase in daily events. A less-instrumented site may see only 1,000 instrumented events per day. The plugin adding another 2,000 events counts as a 200% increase. -In both cases, the increase in daily events comes from tracking click and page change events. Labeled events don't impact the event count. \ No newline at end of file +In both cases, the increase in daily events comes from tracking click and page change events. Labeled events don't impact the event count. + +## Limitations + +* **Event Streams**: Labeled events don't appear in the Live Event Stream, user lookup event stream, or Session Replay streams. You can view raw `Element clicked` and `Element changed` events. +* **Google Chrome extension**: The Amplitude Event Explorer Chrome extensions displays raw events sent from the browser only. + +## Troubleshooting + +**I don't see the visual labeling experience on my site** + +If you don't see the Visual Labeling tools on your site, check the following: + +* If you have pop-up or adblocking tools enabled, they can interfere with the Visual Labeling experience. Disable the adblocker and retry. +* If the URL you entered redirects to another URL, the Visual Labeling experience may not load. For security reasons, the domain of the page you're labeling needs to match the domain that you entered in Amplitude. \ No newline at end of file From 63fe63d360cee8c6bdafdd4a6a25de6dc841685e Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Wed, 7 Aug 2024 16:14:41 -0700 Subject: [PATCH 40/43] Landing pages --- content/collections/data/en/autocapture.md | 7 ++++--- content/collections/data/en/visual-labeling.md | 5 +++-- content/trees/collections/en/data.yaml | 1 - 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/content/collections/data/en/autocapture.md b/content/collections/data/en/autocapture.md index 4c8ed4d83..94be501b6 100644 --- a/content/collections/data/en/autocapture.md +++ b/content/collections/data/en/autocapture.md @@ -2,10 +2,11 @@ id: 1017e95b-5dd2-46fc-82b4-54e61d4fb755 blueprint: data title: Autocapture -landing: false +landing: true exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1722883100 +updated_at: 1723072396 +landing_blurb: 'Autocapture is the fastest way to capture information about your website or app with minimal setup.' --- Amplitude's Autocapture is the fastest way to capture information about your website or app with minimal setup. Once enabled, Autocapture captures user interactions on your site with no pre-planning or complex engineering work. It's a great way to get started and uncover insights quickly. @@ -85,4 +86,4 @@ To support visual labeling, Autocapture captures interaction information about b Amplitude provides the flexibility to track any or all of more precisely with Data Management tools and workflows that give you complete control of your data. -You can turn off any or all Autocapture events through your SDK configuration. +You can turn off any or all Autocapture events through your SDK configuration. \ No newline at end of file diff --git a/content/collections/data/en/visual-labeling.md b/content/collections/data/en/visual-labeling.md index 2a6bf3e69..53d6f2fcb 100644 --- a/content/collections/data/en/visual-labeling.md +++ b/content/collections/data/en/visual-labeling.md @@ -4,11 +4,12 @@ blueprint: data title: 'Visual Labeling' this_article_will_help_you: - 'Create and edit labeled events with no new code required' -landing: false +landing: true source: 'https://help.amplitude.com/hc/en-us/articles/24094812669979-Visual-Labeling-Quickly-create-no-code-events-from-your-site-s-existing-elements' exclude_from_sitemap: false updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 -updated_at: 1718657270 +updated_at: 1723072454 +landing_blurb: 'Enable non-technical Amplitude users to create events with Visual Labeling.' --- When you [Autocapture plugin](/docs/get-started/autocapture), you can begin to create **labeled events** by clicking specific elements on your site, using Amplitude Data's Visual Labeling feature. This way, non-technical Amplitude users can create these events without needing to understand the structure of the page. diff --git a/content/trees/collections/en/data.yaml b/content/trees/collections/en/data.yaml index f8c8a72c1..fbb84227d 100644 --- a/content/trees/collections/en/data.yaml +++ b/content/trees/collections/en/data.yaml @@ -21,4 +21,3 @@ tree: entry: a856a44d-9cc7-4964-bf6b-7c15e69b0f2c - entry: 1017e95b-5dd2-46fc-82b4-54e61d4fb755 - From c3f684e4aa1cdac5af9f2c3a5426c7aa8cd7c3f2 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Wed, 7 Aug 2024 16:33:58 -0700 Subject: [PATCH 41/43] Feedback from Kristine Ng --- content/collections/get-started/en/autocapture.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/collections/get-started/en/autocapture.md b/content/collections/get-started/en/autocapture.md index 762840150..ead441f75 100644 --- a/content/collections/get-started/en/autocapture.md +++ b/content/collections/get-started/en/autocapture.md @@ -11,9 +11,9 @@ Amplitude's Autocapture helps you gain insights as soon as you install the SDK. ## Autocapture for the web -When you use them together, Amplitude's latest [Browser SDK](/docs/sdks/analytics/browser/browser-sdk-2) and [Autocapture plugin](/docs/sdks/analytics/browser/autocapture-plugin) captures default events, form field interactions, and marketing attribution information. +Amplitude's Browser SDK 2.10.0 and above include Autocapture to help you capture events, interactions, and attribution on your site. -### Install the SDK and plugin +### Install the Browser SDK Autocapture requires the latest versions of the Amplitude Browser SDK ({{sdk_versions:browser}}). {{partial:tabs tabs="Script Loader, npm, yarn"}} @@ -92,7 +92,7 @@ Captures the following properties: Amplitude attaches [User Properties](/docs/get-started/user-property-definitions) to all default event, unless disabled. -### Visual labeling for web (alpha) +### Visual labeling for web Amplitude's Visual Labeling tool enables you to identify and select individual elements on a page that you want to track. For example, if you want to track the number of users who click a **Sign up**, button you can select it with Visual Labeling, and Amplitude creates an event that targets the specific element. From f97b55c04d7e249d1fe421c68debd1e86b01ec3c Mon Sep 17 00:00:00 2001 From: alanokada <903634+alanokada@users.noreply.github.com> Date: Wed, 7 Aug 2024 16:05:45 -1000 Subject: [PATCH 42/43] Update Autocapture doc based on feedback --- content/collections/data/en/autocapture.md | 43 +++++++++++----------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/content/collections/data/en/autocapture.md b/content/collections/data/en/autocapture.md index 94be501b6..4f355f5e2 100644 --- a/content/collections/data/en/autocapture.md +++ b/content/collections/data/en/autocapture.md @@ -8,13 +8,13 @@ updated_by: 0c3a318b-936a-4cbd-8fdf-771a90c297f0 updated_at: 1723072396 landing_blurb: 'Autocapture is the fastest way to capture information about your website or app with minimal setup.' --- -Amplitude's Autocapture is the fastest way to capture information about your website or app with minimal setup. Once enabled, Autocapture captures user interactions on your site with no pre-planning or complex engineering work. It's a great way to get started and uncover insights quickly. +Amplitude's Autocapture is the fastest way to capture information about your website or app with minimal setup. Once enabled, Autocapture captures user interactions on your digital products with a single code snippet. It's a great way to get started and uncover insights quickly. ## Availability Autocapture is available for all Amplitude plans. -* On your website, a single [Browser SDK](/docs/sdks/analytics/browser/browser-sdk-2) snippet lets you capture sessions, page views, clicks, form interactions, file downloads, and other marketing attribution data. You can also use visual labeling to navigate your site and create new events from the click information. +* On your website, a single [Browser SDK](/docs/sdks/analytics/browser/browser-sdk-2) snippet lets you capture sessions, page views, clicks, form interactions, file downloads, and marketing attribution data. You can also use visual labeling to navigate your site and create new events from the click information. * On iOS and Android, the [iOS Swift SDK](/docs/sdks/analytics/ios/ios-swift-sdk) and [Android-Kotlin SDK](/docs/sdks/analytics/android/android-kotlin-sdk) capture application installs and upgrades, sessions, page views, and more. ## Autocapture and precision tracking @@ -24,66 +24,67 @@ Amplitude offers two primary ways to capture events: * Autocapture automatically collects a predefined set of events and properties in a standardized taxonomy using our SDKs. * Precision tracking allows you to instrument events and properties specific to your business needs and desired analyses. -With Autocapture, you get basic analytics with minimal engineering. From the moment you install the SDK, Amplitude collects data to gain insights into feature usage, funnel conversion rates, and even specific click analysis on the web. This solution is best to help you get running quickly. +With Autocapture, you get out of the box analytics with minimal engineering. From the moment you install the SDK, Amplitude automatically collects data to gain insights into feature usage, funnel conversion rates, and even specific click analysis on the web. This solution is the best option to help you get up and running quickly. -If you have follow-up questions about specific actions in your application that require additional context-specific metadata, or have some events (like a purchase event) that may be core to your business, Amplitude supports Precision tracking. Precise tracking in code allows you to send these events with a robust set of properties to perform even deeper analyses. +When you want to drill deeper into specific actions in your application requiring additional metadata, or have some events (like a purchase event) that may be core to your business, Amplitude provides precision tracking. Precise tracking in code allows you to send these events with a robust set of properties to perform even deeper analyses. With Amplitude, you don't need to choose. Both solutions go hand-in-hand, and you can use a combination of Autocapture and precision tracking data in your analyses. -For example, if you’re in a scenario where you release a new feature and don't have the time to implement precision tracking. With Autocapture, you can proceed with the release knowing you have a safety net to get your baseline metrics and answer engagement questions. Once you have some insights and want to go deeper, you can work with your team to implement precisely tracked events and get the best of both worlds. +For example, if you’re in a scenario where you release a new feature and don't have the time to implement precision tracking. With Autocapture, you can now proceed with the release knowing you have a safety net to collect your baseline metrics and answer engagement questions. Once you have these insights and want to go deeper, you can work with your team to implement precisely tracked events and get the best of both worlds. -## Optimize event volume +## Optimize your event volume Autocapture provides several configuration options to help you adjust your implementation to your needs. You can turn individual Autocapture events on and off as needed, and even tune those events further to optimize your event volume. -The default configuration should provide the right balance of capturing events that matter while excluding ones that don't. This balance is most critical when capturing clicks. By default, Amplitude captures all clicks on interactable elements (for example, links, text fields, dropdowns, and other form elements). Amplitude also captures other clicks on elements that result in a change on the page (for example, a new visual element) or a navigation to a new page. This configuration excludes clicks on blank areas, a user highlighting text, and other similar actions. +The default configuration should provide the right balance of automatically capturing events that matter while excluding ones that don't. This balance is critical when capturing clicks. By default, Amplitude captures all clicks on interactable elements (for example, links, text fields, dropdowns, and other form elements). Amplitude also captures other clicks on elements that result in a change on the page (for example, a new visual element) or a navigation to a new page. This configuration excludes clicks on blank areas, a user highlighting text, and other similar actions to ensure you aren't paying for low-value user behaviors. Amplitude recommends monitoring your event volume (in Settings > Plans & Billing) as you make changes to ensure it matches your expectations. You can change your configuration to capture clicks on specified elements (or elements with certain classes), track on specific pages, or turn click tracking off while still taking advantage of other Autocapture data (page views, sessions, etc.). ## Your taxonomy with Autocapture -Keeping your taxonomy clean and organized is essential to ensuring users can find what they need, so Autocapture captures data using a predefined set of event and property types. For example, the SDK captures all click interactions as two events: "Element Clicked" and "Element Changed." Each event also has a predefined set of properties. +Keeping your taxonomy clean and organized is essential to ensuring users can find what they need, so Autocapture collects data using a predefined set of event and property types. For example, the SDK captures all click interactions as two events ("Element Clicked" and "Element Changed") with a predefined set of properties rather than a stream of noisy user interactions. -[Visual labeling](/docs/data/visual-labeling) allows other users on your to create events, so there are some additional considerations to make when thinking about your taxonomy: +[Visual labeling](/docs/data/visual-labeling) allows users within your organization to create events, so there are some additional considerations to make when thinking about your taxonomy: * Be sure you set up the correct permissions for each user. Users with a Member role or higher can create labeled events. -* Continue using your naming conventions and add descriptions for your labeled events, just as you would with other events. +* Align your naming convention with your existing taxonomy for labeled events. +* Add descriptions to your labeled events to help other users understand their purpose. Some additional things to know about your labeled events: -* Labeled events have a separate tab within Data > Events to help you manage them separately from your raw ingested events. Here, you can see who created the labeled events and when they created them. +* Labeled events have a separate tab within Data > Events to help you manage them separately from your raw ingested events. Here, you can see who created the labeled events and when they were created. * Labeled events have a different icon in the event dropdown so you and your users can distinguish them from other events. ## Privacy and security -For many organizations, data privacy, security, and PII are critical factors when setting up their tracking strategy. Your business needs, the purpose of your application, and the potential for legal exposure between jurisdictions can vary greatly, and there's no one-size-fits-all solution that can work in every situation. +For many organizations, data privacy, security, and PII are critical factors when setting up their data collection strategy. Your business needs, the purpose of your digital product(s), and the potential for legal exposure between jurisdictions can vary greatly, and there's no one-size-fits-all solution that will work in every situation. -Amplitude's Autocapture feature provides flexible configuration options to adhere to your company's legal and security requirements. These settings prevent your product from sending that data in the first place, so it never makes it to Amplitude. +Amplitude's Autocapture feature provides flexible configuration options to adhere to your company's legal and security requirements. These settings prevent data being sent to Amplitude. ### Autocapture protections You control what information Autocapture sends to Amplitude. For information about how to update the events that Autocapture sends to Amplitude, see [Browser SDK | Disable Autocapture](/docs/sdks/analytics/browser/browser-sdk-2#disable-autocapture). -Autocapture's default settings include the following privacy and security considerations: - -* Autocapture only collects class names and the type attribute from user input fields, including `input`, `select`, and `textarea` elements, along with any HTML element with the `contenteditable="true"` attribute. Autocapture excludes any user-inputted text. The exception to these attribute collection rules is when an element has an explicit attribute added with the prefix `data-amp-track-`. This allows you to intentionally pass the data in these attributes back to Amplitude. +Autocapture's default settings when capturing clicks and changes on page elements ("Element Clicked" and "Element Changed" events) also include the following privacy and security considerations: +* For sensitive elements—such as inputs, selects, textarea elements, and any HTML elements with contenteditable=”true” as an attribute—the SDK only collects class names and the type attribute. Any user-inputted text is also excluded. * Autocapture further restricts sensitive input fields, like passwords or form fields with the hidden attribute to capture class names only. Autocapture doesn't capture other details about these elements. -* Click tracking uses pattern matching to automatically remove any text that looks like a credit card or social security number. -* Autocapture removes value, event handlers, style, and react attribute. +* Autocapture captures the content (textContent) of the element clicked and its children. However, content of any sensitive child elements as outlined above will be excluded. We also use pattern matching to automatically remove any text content that looks like a credit card or social security number. +* The exception to these attribute collection rules is when an element has an explicit attribute added with the prefix “data-amp-track-”. This allows data in these attributes to be intentionally passed back to Amplitude. +* Autocapture automatically removes value, event handlers, style, and react attributes. ### Autocapture security options -Some companies, like those in financial services, healthcare, and medical technologies, may deal with highly sensitive data. If your organization requires higher restrictions or safeguards, Autocapture provides the following options. +Some companies, like those in financial services, healthcare, and medical technologies, often deal with highly sensitive data. If your organization requires higher restrictions or safeguards, Autocapture provides the following options. #### Limit click tracking To support visual labeling, Autocapture captures interaction information about both the elements clicked or changed and information about the element's parents in the HTML structure. Depending on your site's structure, you can: * Change the elements allowed for click and change tracking. Configure the `cssSelectorAllowlist` and `actionClickAllowlist` options to change the list of elements that Autocapture can track. You can even remove all common HTML elements and restrict to elements with a specific class. -* Change the pages allowed for click and change tracking. You can configure the `pageUrlAllowlist` to limit the collection of these events to specific URLs (or URL patterns). +* Restrict the pages allowed for click and change tracking. You can configure the `pageUrlAllowlist` to limit the collection of these events to specific URLs (or URL patterns). #### Turn off Autocapture events Amplitude provides the flexibility to track any or all of more precisely with Data Management tools and workflows that give you complete control of your data. -You can turn off any or all Autocapture events through your SDK configuration. \ No newline at end of file +You can [turn off any or all Autocapture events](/docs/sdks/analytics/browser/browser-sdk-2#disable-autocapture) through your SDK configuration. From e714e62e83bc09a31835968e688762f27246dd6d Mon Sep 17 00:00:00 2001 From: alanokada <903634+alanokada@users.noreply.github.com> Date: Wed, 7 Aug 2024 16:14:39 -1000 Subject: [PATCH 43/43] Update visual labeling instructions --- content/collections/data/en/visual-labeling.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/content/collections/data/en/visual-labeling.md b/content/collections/data/en/visual-labeling.md index 53d6f2fcb..a65343d19 100644 --- a/content/collections/data/en/visual-labeling.md +++ b/content/collections/data/en/visual-labeling.md @@ -38,10 +38,7 @@ To use Visual Labeling to create new labeled events, follow these steps: If you leave any fields blank, Amplitude interprets that as `[any value]`. For example, if you leave the URL field blank, the tracking for that event fires on any page. {{/partial:admonition}} -8. If this is the only action you want to include in the labeled event, click Save. To add more actions: - 1. Click *Select action...* and choose the action to add. - 2. Enter the properties of the element you want to label, or click Switch to Visual Element Selection and repeat this process. You can add as many actions as you want. - 3. When you're done, click *Save*. The modal closes, and the Labeled Events tab loads, where your new events appear. +8. You can select another element to continue labeling or click "Back to Amplitude" if you're done. ## Edit a labeled event @@ -72,4 +69,4 @@ In both cases, the increase in daily events comes from tracking click and page c If you don't see the Visual Labeling tools on your site, check the following: * If you have pop-up or adblocking tools enabled, they can interfere with the Visual Labeling experience. Disable the adblocker and retry. -* If the URL you entered redirects to another URL, the Visual Labeling experience may not load. For security reasons, the domain of the page you're labeling needs to match the domain that you entered in Amplitude. \ No newline at end of file +* If the URL you entered redirects to another URL, the Visual Labeling experience may not load. For security reasons, the domain of the page you're labeling needs to match the domain that you entered in Amplitude.