From bb6885bcb56891f38141fac3c2dc9e5b55ef5f2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 06:25:16 +0000 Subject: [PATCH 01/18] deps: bump cycjimmy/semantic-release-action in the all-actions group Bumps the all-actions group with 1 update: [cycjimmy/semantic-release-action](https://github.com/cycjimmy/semantic-release-action). Updates `cycjimmy/semantic-release-action` from 4.2.1 to 4.2.2 - [Release notes](https://github.com/cycjimmy/semantic-release-action/releases) - [Changelog](https://github.com/cycjimmy/semantic-release-action/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/cycjimmy/semantic-release-action/compare/v4.2.1...v4.2.2) --- updated-dependencies: - dependency-name: cycjimmy/semantic-release-action dependency-version: 4.2.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9f11bc85..fa630424 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,7 @@ jobs: run: npm ci - name: Create Tag - uses: cycjimmy/semantic-release-action@v4.2.1 + uses: cycjimmy/semantic-release-action@v4.2.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 765b93e3654cdca063bbd59b96cffcbea8259e6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CAreef?= <“areefsyed96@gmail.com”> Date: Mon, 7 Jul 2025 15:00:44 -0400 Subject: [PATCH 02/18] fix: automatically switch from filter to detail view when property selected --- src/app/find-properties/[[...opa_id]]/page.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/app/find-properties/[[...opa_id]]/page.tsx b/src/app/find-properties/[[...opa_id]]/page.tsx index 7c29d68f..fceca2e1 100644 --- a/src/app/find-properties/[[...opa_id]]/page.tsx +++ b/src/app/find-properties/[[...opa_id]]/page.tsx @@ -128,6 +128,12 @@ const MapPage = ({ params }: MapPageProps) => { history.replaceState(null, '', `/find-properties/${opa_id}`); }, [selectedProperty]); + useEffect(() => { + if (selectedProperty && currentView === 'filter') { + setCurrentView('detail'); + } + }, [selectedProperty, currentView]); + const updateCurrentView = (view: BarClickOptions) => { setCurrentView(view === currentView ? 'detail' : view); if ( From 4d05471cedc4a1675f1009e2b1f15eb052750d06 Mon Sep 17 00:00:00 2001 From: Collum Freedman Date: Tue, 8 Jul 2025 11:05:26 -0400 Subject: [PATCH 03/18] change wording of docstrings and update metadata collection decorator --- data/src/data_utils/access_process.py | 2 +- data/src/data_utils/city_owned_properties.py | 10 ++-- data/src/data_utils/community_gardens.py | 8 ++-- data/src/data_utils/conservatorship.py | 8 ++-- data/src/data_utils/contig_neighbors.py | 10 ++-- data/src/data_utils/council_dists.py | 10 ++-- data/src/data_utils/delinquencies.py | 8 ++-- data/src/data_utils/dev_probability.py | 8 ++-- data/src/data_utils/drug_crimes.py | 8 ++-- data/src/data_utils/gun_crimes.py | 8 ++-- data/src/data_utils/imm_dang_buildings.py | 10 ++-- data/src/data_utils/kde.py | 8 ++-- data/src/data_utils/li_complaints.py | 8 ++-- data/src/data_utils/li_violations.py | 8 ++-- data/src/data_utils/nbhoods.py | 8 ++-- data/src/data_utils/negligent_devs.py | 8 ++-- data/src/data_utils/owner_type.py | 8 ++-- data/src/data_utils/park_priority.py | 2 +- data/src/data_utils/phs_properties.py | 12 ++--- data/src/data_utils/ppr_properties.py | 14 +++--- data/src/data_utils/priority_level.py | 6 +-- data/src/data_utils/pwd_parcels.py | 16 +++---- data/src/data_utils/rco_geoms.py | 8 ++-- data/src/data_utils/tactical_urbanism.py | 8 ++-- data/src/data_utils/tree_canopy.py | 8 ++-- data/src/data_utils/unsafe_buildings.py | 10 ++-- data/src/data_utils/vacant_properties.py | 10 ++-- data/src/metadata/metadata_utils.py | 50 +++++++++----------- data/src/test/data_utils/test_data_utils.py | 4 +- data/src/test/test_metadata_utils.py | 26 +++++----- data/src/validation/base.py | 10 ++-- 31 files changed, 160 insertions(+), 162 deletions(-) diff --git a/data/src/data_utils/access_process.py b/data/src/data_utils/access_process.py index cebaec0f..b535fc87 100644 --- a/data/src/data_utils/access_process.py +++ b/data/src/data_utils/access_process.py @@ -30,7 +30,7 @@ def access_process( access_process (str): The access process for each property based on city ownership and market value. Will be NA for non-vacant properties. - Primary Feature Layer Columns Referenced: + Columns Referenced: city_owner_agency, market_value, vacant Side Effects: diff --git a/data/src/data_utils/city_owned_properties.py b/data/src/data_utils/city_owned_properties.py index 666dcbf9..bb01bc24 100644 --- a/data/src/data_utils/city_owned_properties.py +++ b/data/src/data_utils/city_owned_properties.py @@ -5,8 +5,8 @@ from src.validation.base import ValidationResult, validate_output from src.validation.city_owned_properties import ( - CityOwnedPropertiesOutputValidator, CityOwnedPropertiesInputValidator, + CityOwnedPropertiesOutputValidator, ) from ..classes.loaders import EsriLoader @@ -21,23 +21,23 @@ def city_owned_properties( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Processes city-owned property data by joining it with the primary feature layer, + Processes city-owned property data by joining it with the input dataframe, renaming columns, and updating access information for properties based on ownership. All instances where the "city_owner_agency" is "PLB" are changed to "Land Bank (PHDC)". Args: - primary_featurelayer (FeatureLayer): The primary feature layer to which city-owned + input_gdf (GeoDataFrame): The GeoDataFrame to which city-owned property data will be joined. Returns: - FeatureLayer: The updated primary feature layer with processed city ownership + GeoDataFrame: The updated GeoDataFrame with processed city ownership information. Columns added: city_owner_agency (str): The agency that owns the city property. side_yard_eligible (bool): Indicates if the property is eligible for the side yard program. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, owner_1, owner2 Tagline: diff --git a/data/src/data_utils/community_gardens.py b/data/src/data_utils/community_gardens.py index 61ad1b30..23d4e347 100644 --- a/data/src/data_utils/community_gardens.py +++ b/data/src/data_utils/community_gardens.py @@ -19,15 +19,15 @@ def community_gardens( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Updates the 'vacant' column in the primary feature layer to ensure community gardens + Updates the 'vacant' column in the input dataframe to ensure community gardens are marked as not vacant. This protects known community gardens from being categorized as vacant, preventing potential predatory development. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The input GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with the 'vacant' column updated to False + GeoDataFrame: The input GeoDataFrame with the 'vacant' column updated to False for parcels containing community gardens. Tagline: @@ -36,7 +36,7 @@ def community_gardens( Columns updated: vacant: Updated to False for parcels containing community gardens. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, vacant Source: diff --git a/data/src/data_utils/conservatorship.py b/data/src/data_utils/conservatorship.py index 947112af..05e36c2d 100644 --- a/data/src/data_utils/conservatorship.py +++ b/data/src/data_utils/conservatorship.py @@ -19,22 +19,22 @@ def conservatorship( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Determines conservatorship eligibility for properties in a feature layer. + Determines conservatorship eligibility for properties in a GeoDataFrame. Args: - primary_featurelayer (FeatureLayer): A feature layer containing property data in a GeoDataFrame (`gdf`). + input_gdf (GeoDataFrame): A GeoDataFrame containing property data in a GeoDataFrame (`gdf`). Columns Added: conservatorship (bool): Indicates whether each property qualifies for conservatorship (True or False). - Primary Feature Layer Columns Referenced: + Columns Referenced: city_owner_agency, sheriff_sale, market_value, all_violations_past_year, sale_date Tagline: Identify conservatorship-eligible properties Returns: - FeatureLayer: The input feature layer with an added "conservatorship" column indicating + GeoDataFrame: The input GeoDataFrame with an added "conservatorship" column indicating whether each property qualifies for conservatorship (True or False). """ conservatorships = [] diff --git a/data/src/data_utils/contig_neighbors.py b/data/src/data_utils/contig_neighbors.py index 9ae6b268..ee3869e3 100644 --- a/data/src/data_utils/contig_neighbors.py +++ b/data/src/data_utils/contig_neighbors.py @@ -17,13 +17,13 @@ def contig_neighbors( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Calculates the number of contiguous vacant neighbors for each property in a feature layer. + Calculates the number of contiguous vacant neighbors for each property in a GeoDataFrame. Args: - primary_featurelayer (FeatureLayer): A feature layer containing property data in a GeoDataFrame (`gdf`). + input_gdf: A input GeoDataFrame containing property data in a GeoDataFrame (`gdf`). Returns: - FeatureLayer: The input feature layer with an added "n_contiguous" column indicating + GeoDataFrame: The input GeoDataFrame with an added "n_contiguous" column indicating the number of contiguous vacant neighbors for each property. Tagline: @@ -32,7 +32,7 @@ def contig_neighbors( Columns Added: n_contiguous (int): The number of contiguous vacant neighbors for each property. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, vacant """ print(f"[DEBUG] contig_neighbors: Starting with {len(input_gdf)} properties") @@ -192,7 +192,7 @@ def contig_neighbors( f"[DEBUG] contig_neighbors: vacant_parcels opa_ids in input_gdf: {len(matching_opa_ids)} / {len(vacant_opa_ids)}" ) - # Merge the results back to the primary feature layer + # Merge the results back to the input GeoDataFrame input_gdf = opa_join(input_gdf, vacant_parcels[["opa_id", "n_contiguous"]]) # Debug: Check what's in input_gdf after join diff --git a/data/src/data_utils/council_dists.py b/data/src/data_utils/council_dists.py index 80dad4d8..57f9e0ae 100644 --- a/data/src/data_utils/council_dists.py +++ b/data/src/data_utils/council_dists.py @@ -21,14 +21,14 @@ def council_dists( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Associates properties in the primary feature layer with council districts + Associates properties in the input GeoDataFrame with council districts using a spatial join. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with properties spatially joined + GeoDataFrame: The input GeoDataFrame with properties spatially joined to council districts, ensuring no duplicate entries. Tagline: @@ -37,7 +37,7 @@ def council_dists( Columns added: district (str): The council district associated with the property. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, geometry """ @@ -74,7 +74,7 @@ def council_dists( merged_gdf = spatial_join(input_gdf, council_dists, predicate="within") - # Drop duplicates in the primary feature layer + # Drop duplicates in the input GeoDataFrame merged_gdf.drop_duplicates(inplace=True) # Debug: Check for duplicate OPA IDs and show what's causing them diff --git a/data/src/data_utils/delinquencies.py b/data/src/data_utils/delinquencies.py index 87c16cab..0c807856 100644 --- a/data/src/data_utils/delinquencies.py +++ b/data/src/data_utils/delinquencies.py @@ -16,14 +16,14 @@ def delinquencies( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Adds property tax delinquency information to the primary feature layer by + Adds property tax delinquency information to the input GeoDataFrame by joining with a tax delinquencies dataset. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with added columns for tax delinquency + GeoDataFrame: The input GeoDataFrame with added columns for tax delinquency information, including total due, actionable status, payment agreements, and more. Tagline: @@ -41,7 +41,7 @@ def delinquencies( sheriff_sale (bool): Indicates if the property is at risk of sheriff sale. total_assessment (float): Total property assessment. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id """ diff --git a/data/src/data_utils/dev_probability.py b/data/src/data_utils/dev_probability.py index 2bc69764..69728ffa 100644 --- a/data/src/data_utils/dev_probability.py +++ b/data/src/data_utils/dev_probability.py @@ -21,13 +21,13 @@ def dev_probability( """ Calculates development probability based on permit counts and assigns development ranks to census block groups. The results are joined to the - primary feature layer. + input GeoDataFrame. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with added spatial join data for + GeoDataFrame: The input GeoDataFrame with added spatial join data for development probability and ranks. Tagline: @@ -37,7 +37,7 @@ def dev_probability( permit_count (int): The number of permits issued in the census block group. dev_rank (str): The development rank of the census block group. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, geometry Source: diff --git a/data/src/data_utils/drug_crimes.py b/data/src/data_utils/drug_crimes.py index ffe1b2db..f92256af 100644 --- a/data/src/data_utils/drug_crimes.py +++ b/data/src/data_utils/drug_crimes.py @@ -14,13 +14,13 @@ def drug_crimes( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Applies kernel density estimation (KDE) analysis for drug crimes to the primary feature layer. + Applies kernel density estimation (KDE) analysis for drug crimes to the input GeoDataFrame. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with KDE analysis results for drug crimes. + GeoDataFrame: The input GeoDataFrame with KDE analysis results for drug crimes. Tagline: Density analysis for drug crimes @@ -31,7 +31,7 @@ def drug_crimes( drug_crimes_density_label (str): Categorized density level. drug_crimes_density_percentile (float): Percentile rank of density. - Primary Feature Layer Columns Referenced: + Columns Referenced: geometry Source: diff --git a/data/src/data_utils/gun_crimes.py b/data/src/data_utils/gun_crimes.py index e41f5d2d..3e830631 100644 --- a/data/src/data_utils/gun_crimes.py +++ b/data/src/data_utils/gun_crimes.py @@ -14,13 +14,13 @@ def gun_crimes( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Applies kernel density estimation (KDE) analysis for gun crimes to the primary feature layer. + Applies kernel density estimation (KDE) analysis for gun crimes to the input GeoDataFrame. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with KDE analysis results for gun crimes. + GeoDataFrame: The input GeoDataFrame with KDE analysis results for gun crimes. Tagline: Analyzes gun crime density @@ -31,7 +31,7 @@ def gun_crimes( gun_crimes_density_label (str): Categorized density level. gun_crimes_density_percentile (float): Percentile rank of density. - Primary Feature Layer Columns Referenced: + Columns Referenced: geometry Source: diff --git a/data/src/data_utils/imm_dang_buildings.py b/data/src/data_utils/imm_dang_buildings.py index 1de0cc78..166d3056 100644 --- a/data/src/data_utils/imm_dang_buildings.py +++ b/data/src/data_utils/imm_dang_buildings.py @@ -18,14 +18,14 @@ def imm_dang_buildings( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Adds information about imminently dangerous buildings to the primary feature layer + Adds information about imminently dangerous buildings to the input GeoDataFrame by joining with a dataset of dangerous buildings. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with an added "imm_dang_building" column, + GeoDataFrame: The input GeoDataFrame with an added "imm_dang_building" column, indicating whether each property is categorized as imminently dangerous ("Y" or "N"). Tagline: @@ -34,7 +34,7 @@ def imm_dang_buildings( Columns Added: imm_dang_building (bool): Indicates whether each property is categorized as imminently dangerous (True or False). - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id Source: @@ -110,7 +110,7 @@ def imm_dang_buildings( f"Deduplicated imminently dangerous buildings: {before_dedup} -> {after_dedup} records (removed {before_dedup - after_dedup} duplicates)" ) - # Join imminently dangerous buildings data with primary feature layer + # Join imminently dangerous buildings data with input GeoDataFrame merged_gdf = opa_join( input_gdf, imm_dang_buildings, diff --git a/data/src/data_utils/kde.py b/data/src/data_utils/kde.py index c35915b1..3c1ddf8d 100644 --- a/data/src/data_utils/kde.py +++ b/data/src/data_utils/kde.py @@ -138,7 +138,7 @@ def generic_kde( Returns: Tuple[str, np.ndarray]: The raster filename and the array of input points. """ - performance_logger.info(f"Initializing FeatureLayer for {name}") + performance_logger.info(f"Initializing GeoDataFrame for {name}") # Profile data loading with profile_section("Data Loading"): @@ -250,18 +250,18 @@ def apply_kde_to_input( batch_size: int = batch_size, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Applies KDE to the primary feature layer and adds columns for density, z-score, + Applies KDE to the input GeoDataFrame and adds columns for density, z-score, percentile, and percentile as a string. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. name (str): Name of the KDE feature. query (str): SQL query to fetch data for KDE. resolution (int): Resolution for the KDE raster grid. batch_size (int): Batch size for processing grid points. Returns: - FeatureLayer: The input feature layer with added KDE-related columns. + GeoDataFrame: The input GeoDataFrame with added KDE-related columns. """ raster_filename, crime_coords, input_validation = generic_kde( name, query, resolution, batch_size diff --git a/data/src/data_utils/li_complaints.py b/data/src/data_utils/li_complaints.py index 1d9244cd..2429eea2 100644 --- a/data/src/data_utils/li_complaints.py +++ b/data/src/data_utils/li_complaints.py @@ -14,13 +14,13 @@ def li_complaints( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Applies kernel density estimation (KDE) analysis for L&I complaints to the primary feature layer. + Applies kernel density estimation (KDE) analysis for L&I complaints to the input GeoDataFrame. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with KDE analysis results for L&I complaints, + GeoDataFrame: The input GeoDataFrame with KDE analysis results for L&I complaints, including density and derived metrics. Tagline: @@ -32,7 +32,7 @@ def li_complaints( l_and_i_complaints_density_label (str): Categorized density level. l_and_i_complaints_density_percentile (float): Percentile rank of density. - Primary Feature Layer Columns Referenced: + Columns Referenced: geometry Source: diff --git a/data/src/data_utils/li_violations.py b/data/src/data_utils/li_violations.py index 2fc8b8de..d5abf9cf 100644 --- a/data/src/data_utils/li_violations.py +++ b/data/src/data_utils/li_violations.py @@ -19,14 +19,14 @@ def li_violations( Process L&I (Licenses and Inspections) data for violations. This function filters and processes L&I violations data, - joining it with the primary feature layer based on spatial relationships + joining it with the input GeoDataFrame based on spatial relationships and OPA (Office of Property Assessment) identifiers. Args: - primary_featurelayer (FeatureLayer): The primary feature layer to join L&I data to. + input_gdf (GeoDataFrame): The input GeoDataFrame to join L&I data to. Returns: - FeatureLayer: The primary feature layer updated with L&I data. + GeoDataFrame: The input GeoDataFrame updated with L&I data. Tagline: Counts L&I violations @@ -38,7 +38,7 @@ def li_violations( Source: https://phl.carto.com/api/v2/sql - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id """ keywords: List[str] = [ diff --git a/data/src/data_utils/nbhoods.py b/data/src/data_utils/nbhoods.py index 894f0ed1..28b26c07 100644 --- a/data/src/data_utils/nbhoods.py +++ b/data/src/data_utils/nbhoods.py @@ -13,14 +13,14 @@ @validate_output(NeighborhoodsOutputValidator) def nbhoods(input_gdf: gpd.GeoDataFrame) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Adds neighborhood information to the primary feature layer by performing a spatial join + Adds neighborhood information to the input GeoDataFrame by performing a spatial join with a neighborhoods dataset. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with an added "neighborhood" column, + GeoDataFrame: The input GeoDataFrame with an added "neighborhood" column, containing the name of the neighborhood for each property. Tagline: @@ -29,7 +29,7 @@ def nbhoods(input_gdf: gpd.GeoDataFrame) -> Tuple[gpd.GeoDataFrame, ValidationRe Columns added: neighborhood (str): The name of the neighborhood associated with the property. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, geometry Source: diff --git a/data/src/data_utils/negligent_devs.py b/data/src/data_utils/negligent_devs.py index 2c26d2f6..f45c8928 100644 --- a/data/src/data_utils/negligent_devs.py +++ b/data/src/data_utils/negligent_devs.py @@ -13,10 +13,10 @@ def negligent_devs( """ Identifies negligent developers based on the number of vacant properties owned and calculates the average number of L&I violations per distinct owner. - Flags negligent developers in the primary feature layer. + Flags negligent developers in the input GeoDataFrame. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Columns Added: negligent_dev (bool): non-city owned entities owning 5+ vacant properties @@ -26,14 +26,14 @@ def negligent_devs( per year for that developer (not limited to open violations or open properties) - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, vacant, city_owner_agency, standardized_mailing_address, all_violations_past_year Tagline: Identify negligent developers Returns: - FeatureLayer: The input feature layer with additional columns for total properties + GeoDataFrame: The input GeoDataFrame with additional columns for total properties owned, vacant properties owned, average violations per property, and a "negligent_dev" flag. """ # Count total properties and vacant properties by standardized_mailing_address diff --git a/data/src/data_utils/owner_type.py b/data/src/data_utils/owner_type.py index ba97597a..ea127ae5 100644 --- a/data/src/data_utils/owner_type.py +++ b/data/src/data_utils/owner_type.py @@ -12,7 +12,7 @@ def owner_type( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Determines the ownership type for each property in the primary feature layer based on + Determines the ownership type for each property in the input GeoDataFrame based on the 'owner_1', 'owner_2', 'city_owner_agency', and 'standardized_mailing_address' columns. The ownership type is set as: - "Public" if 'city_owner_agency' is not NA or if the mailing address matches specific @@ -24,10 +24,10 @@ def owner_type( - "Individual" if none of the above conditions are met. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property ownership data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property ownership data. Returns: - FeatureLayer: The updated feature layer with the 'owner_type' column added. + GeoDataFrame: The updated GeoDataFrame with the 'owner_type' column added. Tagline: Assigns ownership types @@ -36,7 +36,7 @@ def owner_type( owner_type (str): The ownership type of the property: Public, Nonprofit/Civic, Business (LLC), or Individual. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, owner_1, owner_2, city_owner_agency, standardized_mailing_address """ owner_types = [] diff --git a/data/src/data_utils/park_priority.py b/data/src/data_utils/park_priority.py index 76a45061..04972a86 100644 --- a/data/src/data_utils/park_priority.py +++ b/data/src/data_utils/park_priority.py @@ -139,7 +139,7 @@ def park_priority( Columns Added: park_priority (float): The park priority score from TPL's analysis. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, geometry Source: diff --git a/data/src/data_utils/phs_properties.py b/data/src/data_utils/phs_properties.py index f141484b..6aab1441 100644 --- a/data/src/data_utils/phs_properties.py +++ b/data/src/data_utils/phs_properties.py @@ -15,15 +15,15 @@ def phs_properties( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Perform a spatial join between the primary feature layer and the PHS properties layer, - then update the primary feature layer with a new column 'phs_care_program' indicating + Perform a spatial join between the input GeoDataFrame and the PHS properties layer, + then update the input GeoDataFrame with a new column 'phs_care_program' indicating if the property is part of the PHS care program. Args: - merged_gdf (FeatureLayer): The primary feature layer to join with the PHS properties layer. + merged_gdf (GeoDataFrame): The input GeoDataFrame to join with the PHS properties layer. Returns: - FeatureLayer: The updated primary feature layer with the 'phs_care_program' column. + GeoDataFrame: The updated input GeoDataFrame with the 'phs_care_program' column. Tagline: Identifies PHS Care properties @@ -31,7 +31,7 @@ def phs_properties( Columns added: phs_care_program (str): The PHS care program associated with the property. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, geometry """ @@ -63,7 +63,7 @@ def phs_properties( ) print(f"PHS properties after deduplication: {len(phs_properties)} records") - # Perform spatial join between primary feature layer and PHS properties + # Perform spatial join between input GeoDataFrame and PHS properties merged_gdf = spatial_join(input_gdf, phs_properties) print(f"After spatial join: {len(merged_gdf)} records") diff --git a/data/src/data_utils/ppr_properties.py b/data/src/data_utils/ppr_properties.py index 27ee9529..5ef2200e 100644 --- a/data/src/data_utils/ppr_properties.py +++ b/data/src/data_utils/ppr_properties.py @@ -17,15 +17,15 @@ def ppr_properties( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Updates the 'vacant' column in the primary feature layer to ensure PPR properties + Updates the 'vacant' column in the input GeoDataFrame to ensure PPR properties are marked as not vacant. This prevents PPR properties from being miscategorized as vacant. Args: - primary_featurelayer (FeatureLayer): The primary feature layer to update. + input_gdf (GeoDataFrame): The input GeoDataFrame to update. Returns: - FeatureLayer: The updated primary feature layer. + GeoDataFrame: The updated input GeoDataFrame. Columns Updated: vacant: Updated to False for PPR properties. @@ -41,7 +41,7 @@ def ppr_properties( will fall back to loading the data from a GeoJSON URL https://opendata.arcgis.com/datasets/d52445160ab14380a673e5849203eb64_0.geojson - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, geometry, vacant, public_name """ fallback_url = "https://opendata.arcgis.com/datasets/d52445160ab14380a673e5849203eb64_0.geojson" @@ -76,7 +76,7 @@ def ppr_properties( ) ppr_properties, input_validation = loader.load_or_fetch() - # Perform a spatial join with the primary feature layer + # Perform a spatial join with the input GeoDataFrame merged_gdf = spatial_join(input_gdf, ppr_properties) # Remove duplicate OPA IDs in the main dataset after spatial join @@ -89,10 +89,10 @@ def ppr_properties( ) print(f"Main dataset after deduplication: {len(merged_gdf)} records") - # Ensure the 'vacant' column exists in the primary feature layer + # Ensure the 'vacant' column exists in the input GeoDataFrame if "vacant" not in merged_gdf.columns: raise ValueError( - "The 'vacant' column is missing in the primary feature layer. Ensure it exists before running this function." + "The 'vacant' column is missing in the input GeoDataFrame. Ensure it exists before running this function." ) # Create a mask for rows where PPR properties are identified diff --git a/data/src/data_utils/priority_level.py b/data/src/data_utils/priority_level.py index 9852e85b..8884393a 100644 --- a/data/src/data_utils/priority_level.py +++ b/data/src/data_utils/priority_level.py @@ -16,10 +16,10 @@ def priority_level( violations, tree canopy gaps, and PHS Landcare status. Args: - dataset (FeatureLayer): A feature layer containing property data. + dataset (GeoDataFrame): A GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with an added "priority_level" column, + GeoDataFrame: The input GeoDataFrame with an added "priority_level" column, indicating the priority for each property as "Low", "Medium", or "High". Columns Added: @@ -31,7 +31,7 @@ def priority_level( Source: gun_crimes_density_zscore, all_violations_past_year, l_and_i_complaints_density_zscore, - tree_canopy_gap, phs_care_program columns in the primary feature layer. + tree_canopy_gap, phs_care_program columns in the input GeoDataFrame. """ priority_levels = [] for idx, row in dataset.iterrows(): diff --git a/data/src/data_utils/pwd_parcels.py b/data/src/data_utils/pwd_parcels.py index 3b4940c9..45096490 100644 --- a/data/src/data_utils/pwd_parcels.py +++ b/data/src/data_utils/pwd_parcels.py @@ -27,11 +27,11 @@ def merge_pwd_parcels_gdf( primary_gdf: gpd.GeoDataFrame, pwd_parcels_gdf: gpd.GeoDataFrame ) -> gpd.GeoDataFrame: """ - Merge geometries from PWD parcels into the primary feature layer. + Merge geometries from PWD parcels into the input GeoDataFrame. Identifies condominium units by checking for "CONDO" in building_code_description. Args: - primary_gdf (GeoDataFrame): The primary feature layer + primary_gdf (GeoDataFrame): The input GeoDataFrame pwd_parcels_gdf (GeoDataFrame): The PWD parcels GeoDataFrame Returns: @@ -52,9 +52,9 @@ def merge_pwd_parcels_gdf( primary_gdf.loc[condo_building_mask, "is_condo_unit"] = True # Join geometries from PWD parcels for non-condo units only - # Temporarily drop geometry from the primary feature layer + # Temporarily drop geometry from the input GeoDataFrame - # Filter PWD parcels to just the opa_ids in primary + # Filter PWD parcels to just the opa_ids in input opa_ids_in_primary = primary_gdf["opa_id"].unique() pwd_subset = pwd_parcels_gdf[pwd_parcels_gdf["opa_id"].isin(opa_ids_in_primary)] @@ -87,15 +87,15 @@ def pwd_parcels( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Updates the primary feature layer by replacing its geometry column with validated + Updates the input GeoDataFrame by replacing its geometry column with validated geometries from PWD parcels data. Retains point geometry for rows with no polygon geometry available. Identifies and flags condominium units. Args: - primary_featurelayer (FeatureLayer): The primary feature layer to update. + input_gdf (GeoDataFrame): The input GeoDataFrame to update. Returns: - FeatureLayer: The updated primary feature layer with geometries replaced + GeoDataFrame: The updated input GeoDataFrame with geometries replaced by those from PWD parcels or retained from the original layer if no match. Columns Added: @@ -109,7 +109,7 @@ def pwd_parcels( geometry: The geometry column is updated with validated geometries from PWD parcels. Condo units retain their original point geometries. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, geometry Tagline: diff --git a/data/src/data_utils/rco_geoms.py b/data/src/data_utils/rco_geoms.py index 0327841c..57b57551 100644 --- a/data/src/data_utils/rco_geoms.py +++ b/data/src/data_utils/rco_geoms.py @@ -19,14 +19,14 @@ @validate_output(RCOGeomsOutputValidator) def rco_geoms(input_gdf: gpd.GeoDataFrame) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Adds Registered Community Organization (RCO) information to the primary feature layer + Adds Registered Community Organization (RCO) information to the input GeoDataFrame by performing a spatial join and aggregating RCO data. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with added RCO-related columns, + GeoDataFrame: The input GeoDataFrame with added RCO-related columns, including aggregated RCO information and names. Tagline: @@ -42,7 +42,7 @@ def rco_geoms(input_gdf: gpd.GeoDataFrame) -> Tuple[gpd.GeoDataFrame, Validation Notes: Modifies various columns. Fillna and infer_objects is applied to most columns. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, geometry """ loader = EsriLoader(name="RCOs", esri_urls=RCOS_LAYERS_TO_LOAD) diff --git a/data/src/data_utils/tactical_urbanism.py b/data/src/data_utils/tactical_urbanism.py index 364eb5c6..b9538093 100644 --- a/data/src/data_utils/tactical_urbanism.py +++ b/data/src/data_utils/tactical_urbanism.py @@ -11,25 +11,25 @@ def tactical_urbanism( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Assigns a 'tactical_urbanism' value to each row in the primary feature layer based on specific conditions. + Assigns a 'tactical_urbanism' value to each row in the input GeoDataFrame based on specific conditions. Tactical urbanism is marked as True if the property is a parcel of type 'Land', and does not have any unsafe or immediately dangerous buildings. Otherwise, it is False. Args: - primary_featurelayer: A FeatureLayer object containing a GeoDataFrame (`gdf`) as an attribute. + primary_featurelayer: A GeoDataFrame object containing a GeoDataFrame (`gdf`) as an attribute. Columns Added: tactical_urbanism (bool): Indicates whether each property qualifies for tactical urbanism (True or False). - Primary Feature Layer Columns Referenced: + Columns Referenced: parcel_type, unsafe_building, imm_dang_building Tagline: Identify tactical urbanism-eligible properties Returns: - The input FeatureLayer with a new column 'tactical_urbanism' added to its GeoDataFrame. + The input GeoDataFrame with a new column 'tactical_urbanism' added to its GeoDataFrame. """ tactical_urbanism_values = [] diff --git a/data/src/data_utils/tree_canopy.py b/data/src/data_utils/tree_canopy.py index 40ca661a..cc118d54 100644 --- a/data/src/data_utils/tree_canopy.py +++ b/data/src/data_utils/tree_canopy.py @@ -21,14 +21,14 @@ def tree_canopy( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Adds tree canopy gap information to the primary feature layer by downloading, + Adds tree canopy gap information to the input GeoDataFrame by downloading, processing, and spatially joining tree canopy data for Philadelphia County. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with an added "tree_canopy_gap" column + GeoDataFrame: The input GeoDataFrame with an added "tree_canopy_gap" column indicating the tree canopy gap for each property. Tagline: @@ -37,7 +37,7 @@ def tree_canopy( Columns added: tree_canopy_gap (float): The amount of tree canopy lacking. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id, geometry Source: diff --git a/data/src/data_utils/unsafe_buildings.py b/data/src/data_utils/unsafe_buildings.py index b52a7a71..06ccf295 100644 --- a/data/src/data_utils/unsafe_buildings.py +++ b/data/src/data_utils/unsafe_buildings.py @@ -18,14 +18,14 @@ def unsafe_buildings( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Adds unsafe building information to the primary feature layer by joining with a dataset + Adds unsafe building information to the input GeoDataFrame by joining with a dataset of unsafe buildings. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with an added "unsafe_building" column, + GeoDataFrame: The input GeoDataFrame with an added "unsafe_building" column, indicating whether each property is categorized as an unsafe building ("Y" or "N"). Tagline: @@ -34,7 +34,7 @@ def unsafe_buildings( Columns Added: unsafe_building (bool): Indicates whether each property is categorized as an unsafe building (True or False). - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id Source: @@ -101,7 +101,7 @@ def unsafe_buildings( f"Deduplicated unsafe buildings: {before_dedup} -> {after_dedup} records (removed {before_dedup - after_dedup} duplicates)" ) - # Join unsafe buildings data with primary feature layer + # Join unsafe buildings data with input GeoDataFrame merged_gdf = opa_join(input_gdf, unsafe_buildings) # Fill missing values with False for non-unsafe buildings and convert to boolean diff --git a/data/src/data_utils/vacant_properties.py b/data/src/data_utils/vacant_properties.py index bb6e210e..f1a2b483 100644 --- a/data/src/data_utils/vacant_properties.py +++ b/data/src/data_utils/vacant_properties.py @@ -100,14 +100,14 @@ def vacant_properties( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ - Adds a "vacant" column to the primary feature layer based on vacant property data from + Adds a "vacant" column to the input GeoDataFrame based on vacant property data from ESRI layers and backup data from local geoparquet files if necessary. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The GeoDataFrame containing property data. Returns: - FeatureLayer: The input feature layer with an added "vacant" column. + GeoDataFrame: The input GeoDataFrame with an added "vacant" column. Tagline: Identify vacant properties. @@ -115,7 +115,7 @@ def vacant_properties( Columns Added: vacant (bool): Indicates whether the property is vacant. - Primary Feature Layer Columns Referenced: + Columns Referenced: opa_id Known Issues: @@ -208,7 +208,7 @@ def vacant_properties( # Final check for null percentages check_null_percentage(df) - # Add "vacant" column to primary feature layer + # Add "vacant" column to input GeoDataFrame input_gdf["vacant"] = input_gdf["opa_id"].isin(df["opa_id"]) # Drop parcel_type column after processing diff --git a/data/src/metadata/metadata_utils.py b/data/src/metadata/metadata_utils.py index b94e2591..f123bb4b 100644 --- a/data/src/metadata/metadata_utils.py +++ b/data/src/metadata/metadata_utils.py @@ -4,6 +4,7 @@ import sys import time from datetime import datetime, timezone +from typing import Any, List import geopandas as gpd @@ -21,12 +22,12 @@ "columns updated", "source", "known issues", - "primary feature layer columns referenced", + "columns referenced", ] METADATA_FIELD_TYPES = { "columns added": "columns", # with types "columns updated": "columns", # without types - "primary feature layer columns referenced": "column_names", + "columns referenced": "column_names", } @@ -158,7 +159,9 @@ def parse_docstring(docstring): return result -def detect_added_columns(df_before, df_after): +def detect_added_columns( + df_before: gpd.GeoDataFrame, df_after: gpd.GeoDataFrame +) -> set[str]: """ Detects columns that have been added in df_after compared to df_before. Handles cases where df_before is None or empty. @@ -168,13 +171,14 @@ def detect_added_columns(df_before, df_after): return set(df_after.columns) - set(df_before.columns) -def provide_metadata(): +def provide_metadata(current_metadata: List[dict[str, Any]]): """ Decorator to collect metadata from ETL functions. - The collected metadata is stored in the`collected_metadata` attribute of the FeatureLayer object. + The collected metadata is stored in the an inputted `current_metadata` object that is passed into + each decorator attached to a data service. - Apply this decorator by adding `@provide_metadata()` above the function definition. + Apply this decorator by adding `@provide_metadata(current_metadata)` above the function definition. The metadata collects info from the docstring in the following format: @@ -197,7 +201,7 @@ def provide_metadata(): Columns updated: column_name: Description of how this column was changed. - Primary Feature Layer Columns Referenced: + Columns referenced: column_name (data_type): Description of how this column is referenced. Source: @@ -211,31 +215,21 @@ def provide_metadata(): def decorator(func): @functools.wraps(func) - def wrapper(primary_featurelayer=None): + def wrapper(gdf: gpd.GeoDataFrame): # Run the function and collect metadata # including start time, end time, and duration - if ( - primary_featurelayer is None - or not hasattr(primary_featurelayer, "gdf") - or primary_featurelayer.gdf is None - ): - gdf_before = gpd.GeoDataFrame() - current_metadata = [] - else: - gdf_before = primary_featurelayer.gdf.copy() - current_metadata = primary_featurelayer.collected_metadata + start_gdf = gdf if not gdf.empty else gpd.GeoDataFrame() + start_time_str = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S") start_time = time.time() - if primary_featurelayer is None: - primary_featurelayer = func() - else: - primary_featurelayer = func(primary_featurelayer) + + end_gdf, validation = func(gdf) + end_time = time.time() end_time_str = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S") try: - gdf_after = primary_featurelayer.gdf.copy() - detected_columns_added = detect_added_columns(gdf_before, gdf_after) + detected_columns_added = detect_added_columns(start_gdf, end_gdf) func_name = func.__name__ doc_meta = parse_docstring(func.__doc__) @@ -260,7 +254,8 @@ def wrapper(primary_featurelayer=None): f"Listed in docstring: {names_of_columns_added}" ) - primary_featurelayer.collected_metadata = current_metadata + [metadata] + current_metadata.append(metadata) + except Exception as e: print("Failed to collect metadata for", func.__name__) print(type(e), e) @@ -269,9 +264,10 @@ def wrapper(primary_featurelayer=None): "name": func.__name__, "description": "Failed to collect metadata", } - primary_featurelayer.collected_metadata = current_metadata + [metadata] - return primary_featurelayer + current_metadata.append(metadata) + + return end_gdf, validation return wrapper diff --git a/data/src/test/data_utils/test_data_utils.py b/data/src/test/data_utils/test_data_utils.py index 9eae8c71..b786e591 100644 --- a/data/src/test/data_utils/test_data_utils.py +++ b/data/src/test/data_utils/test_data_utils.py @@ -23,7 +23,7 @@ class TestDataUtils(unittest.TestCase): """ - Test methods for data utils feature layer classes + Test methods for data utils GeoDataFrame classes """ @classmethod @@ -408,7 +408,7 @@ def test_vacant_properties(self): def test_pwd_parcels_merge(self): """ This tests that the merge_pwd_parcels_gdf function correctly retains - existing point geometries in the primary GeoDataFrame when no better + existing point geometries in the input GeoDataFrame when no better geometry is available in the PWD parcels GeoDataFrame. """ diff --git a/data/src/test/test_metadata_utils.py b/data/src/test/test_metadata_utils.py index 7e4bd3c1..ec7ef82a 100644 --- a/data/src/test/test_metadata_utils.py +++ b/data/src/test/test_metadata_utils.py @@ -22,7 +22,7 @@ def stub_update_vacant_community(primary_featurelayer): as vacant, preventing potential predatory development. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The feature layer containing property data. Returns: FeatureLayer: The input feature layer with the 'vacant' column updated to False @@ -34,7 +34,7 @@ def stub_update_vacant_community(primary_featurelayer): Columns updated: vacant: Updated to False for parcels containing community gardens. - Primary Feature Layer Columns Referenced: + Columns Referenced: vacant, ipa_id """ pass @@ -45,7 +45,7 @@ def stub_kde_analysis(primary_featurelayer): Applies kernel density estimation (KDE) analysis for drug crimes to the primary feature layer. Args: - primary_featurelayer (FeatureLayer): The feature layer containing property data. + input_gdf (GeoDataFrame): The feature layer containing property data. Returns: FeatureLayer: The input feature layer with KDE analysis results for drug crimes. @@ -95,7 +95,7 @@ def stub_update_vacant_ppr(primary_featurelayer): are marked as not vacant. This prevents PPR properties from being miscategorized as vacant. Args: - primary_featurelayer (FeatureLayer): The primary feature layer to update. + input_gdf (GeoDataFrame): The primary feature layer to update. Returns: FeatureLayer: The updated primary feature layer. @@ -122,7 +122,7 @@ def stub_columns_added_variation(primary_featurelayer): Function with a docstring that uses 'Columns Added:' key variation. Args: - primary_featurelayer (FeatureLayer): The feature layer. + input_gdf (GeoDataFrame): The feature layer. Returns: FeatureLayer: The updated feature layer. @@ -142,7 +142,7 @@ def stub_only_args_and_returns(primary_featurelayer): Function with only args and returns sections. Args: - primary_featurelayer (FeatureLayer): The feature layer. + input_gdf (GeoDataFrame): The feature layer. Returns: FeatureLayer: The updated feature layer. @@ -157,7 +157,7 @@ def sample_add_columns(primary_featurelayer): Adds columns to the primary feature layer. Args: - primary_featurelayer (FeatureLayer): The feature layer to update. + input_gdf (GeoDataFrame): The feature layer to update. Returns: FeatureLayer: The updated primary feature layer. @@ -252,7 +252,7 @@ def test_parse_docstring(self): "columns added": [], "source": "", "known issues": "", - "primary feature layer columns referenced": ["vacant", "ipa_id"], + "Columns Referenced": ["vacant", "ipa_id"], }, ), ( @@ -265,7 +265,7 @@ def test_parse_docstring(self): "columns added": [], "columns updated": [], "known issues": "", - "primary feature layer columns referenced": [], + "Columns Referenced": [], }, ), ( @@ -279,7 +279,7 @@ def test_parse_docstring(self): "columns added": "list_of_12", "columns updated": [], "known issues": "", - "primary feature layer columns referenced": [], + "Columns Referenced": [], }, ), ( @@ -302,7 +302,7 @@ def test_parse_docstring(self): "known issues": ( "If the Ersi REST URL is not available the function" # NOTE: because the next line has a colon, only the first line is captured ), - "primary feature layer columns referenced": [], + "Columns Referenced": [], }, ), ( @@ -326,7 +326,7 @@ def test_parse_docstring(self): "columns updated": [], "source": "", "known issues": "", - "primary feature layer columns referenced": [], + "Columns Referenced": [], }, ), ( @@ -339,7 +339,7 @@ def test_parse_docstring(self): "columns updated": [], "source": "", "known issues": "", - "primary feature layer columns referenced": [], + "Columns Referenced": [], }, ), ] diff --git a/data/src/validation/base.py b/data/src/validation/base.py index 4969403f..057b9c6e 100644 --- a/data/src/validation/base.py +++ b/data/src/validation/base.py @@ -3,7 +3,7 @@ import time from abc import ABC, abstractmethod from dataclasses import dataclass -from typing import Callable, List, Optional +from typing import Callable, List, Optional, Tuple import geopandas as gpd import pandas as pd @@ -680,11 +680,13 @@ def _validate_application_specific(self, gdf: gpd.GeoDataFrame, errors: list): def validate_output( - validator_cls: BaseValidator, + validator_cls: type[BaseValidator], ): - def decorator(func: Callable[[gpd.GeoDataFrame], gpd.GeoDataFrame]): + def decorator( + func: Callable[[gpd.GeoDataFrame], Tuple[gpd.GeoDataFrame, ValidationResult]], + ): @functools.wraps(func) - def wrapper(gdf: gpd.GeoDataFrame = None, *args, **kwargs): + def wrapper(gdf: gpd.GeoDataFrame, *args, **kwargs): decorator_start = time.time() # Create validator From 6e51784505ae1d31ae33b2e3a54ee49b14261a40 Mon Sep 17 00:00:00 2001 From: Collum Freedman Date: Tue, 8 Jul 2025 11:42:05 -0400 Subject: [PATCH 04/18] attach metadata decorators to respective data services --- data/src/data_utils/access_process.py | 4 +++- data/src/data_utils/city_owned_properties.py | 4 +++- data/src/data_utils/community_gardens.py | 4 +++- data/src/data_utils/conservatorship.py | 4 +++- data/src/data_utils/contig_neighbors.py | 4 +++- data/src/data_utils/council_dists.py | 4 +++- data/src/data_utils/delinquencies.py | 4 +++- data/src/data_utils/dev_probability.py | 4 +++- data/src/data_utils/drug_crimes.py | 4 +++- data/src/data_utils/gun_crimes.py | 4 +++- data/src/data_utils/imm_dang_buildings.py | 4 +++- data/src/data_utils/li_complaints.py | 4 +++- data/src/data_utils/li_violations.py | 4 +++- data/src/data_utils/nbhoods.py | 4 +++- data/src/data_utils/negligent_devs.py | 4 +++- data/src/data_utils/opa_properties.py | 2 ++ data/src/data_utils/owner_type.py | 4 +++- data/src/data_utils/park_priority.py | 4 +++- data/src/data_utils/phs_properties.py | 4 +++- data/src/data_utils/ppr_properties.py | 4 +++- data/src/data_utils/priority_level.py | 2 ++ data/src/data_utils/pwd_parcels.py | 4 +++- data/src/data_utils/rco_geoms.py | 4 +++- data/src/data_utils/tactical_urbanism.py | 4 +++- data/src/data_utils/tree_canopy.py | 4 +++- data/src/data_utils/unsafe_buildings.py | 4 +++- data/src/data_utils/vacant_properties.py | 4 +++- data/src/metadata/metadata_utils.py | 3 +++ data/src/test/test_metadata_utils.py | 14 +++++++------- 29 files changed, 89 insertions(+), 32 deletions(-) diff --git a/data/src/data_utils/access_process.py b/data/src/data_utils/access_process.py index b535fc87..e86633a2 100644 --- a/data/src/data_utils/access_process.py +++ b/data/src/data_utils/access_process.py @@ -3,11 +3,13 @@ import geopandas as gpd import pandas as pd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.access_process import AccessProcessOutputValidator from src.validation.base import ValidationResult, validate_output @validate_output(AccessProcessOutputValidator) +@provide_metadata(current_metadata=current_metadata) def access_process( dataset: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -30,7 +32,7 @@ def access_process( access_process (str): The access process for each property based on city ownership and market value. Will be NA for non-vacant properties. - Columns Referenced: + Columns referenced: city_owner_agency, market_value, vacant Side Effects: diff --git a/data/src/data_utils/city_owned_properties.py b/data/src/data_utils/city_owned_properties.py index bb01bc24..c671fe67 100644 --- a/data/src/data_utils/city_owned_properties.py +++ b/data/src/data_utils/city_owned_properties.py @@ -3,6 +3,7 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.city_owned_properties import ( CityOwnedPropertiesInputValidator, @@ -17,6 +18,7 @@ @validate_output(CityOwnedPropertiesOutputValidator) +@provide_metadata(current_metadata=current_metadata) def city_owned_properties( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -37,7 +39,7 @@ def city_owned_properties( city_owner_agency (str): The agency that owns the city property. side_yard_eligible (bool): Indicates if the property is eligible for the side yard program. - Columns Referenced: + Columns referenced: opa_id, owner_1, owner2 Tagline: diff --git a/data/src/data_utils/community_gardens.py b/data/src/data_utils/community_gardens.py index 23d4e347..ecf276d4 100644 --- a/data/src/data_utils/community_gardens.py +++ b/data/src/data_utils/community_gardens.py @@ -3,6 +3,7 @@ import geopandas as gpd from src.constants.city_limits import PHL_GEOMETRY +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.community_gardens import ( CommunityGardensInputValidator, @@ -15,6 +16,7 @@ @validate_output(CommunityGardensOutputValidator) +@provide_metadata(current_metadata=current_metadata) def community_gardens( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -36,7 +38,7 @@ def community_gardens( Columns updated: vacant: Updated to False for parcels containing community gardens. - Columns Referenced: + Columns referenced: opa_id, vacant Source: diff --git a/data/src/data_utils/conservatorship.py b/data/src/data_utils/conservatorship.py index 05e36c2d..ef70fad4 100644 --- a/data/src/data_utils/conservatorship.py +++ b/data/src/data_utils/conservatorship.py @@ -5,6 +5,7 @@ import pytz from dateutil.parser import parse +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.conservatorship import ConservatorshipOutputValidator @@ -15,6 +16,7 @@ @validate_output(ConservatorshipOutputValidator) +@provide_metadata(current_metadata=current_metadata) def conservatorship( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -27,7 +29,7 @@ def conservatorship( Columns Added: conservatorship (bool): Indicates whether each property qualifies for conservatorship (True or False). - Columns Referenced: + Columns referenced: city_owner_agency, sheriff_sale, market_value, all_violations_past_year, sale_date Tagline: diff --git a/data/src/data_utils/contig_neighbors.py b/data/src/data_utils/contig_neighbors.py index ee3869e3..c08ee0a7 100644 --- a/data/src/data_utils/contig_neighbors.py +++ b/data/src/data_utils/contig_neighbors.py @@ -6,6 +6,7 @@ import numpy as np from libpysal.weights import Queen +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.contig_neighbors import ContigNeighborsOutputValidator @@ -13,6 +14,7 @@ @validate_output(ContigNeighborsOutputValidator) +@provide_metadata(current_metadata=current_metadata) def contig_neighbors( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -32,7 +34,7 @@ def contig_neighbors( Columns Added: n_contiguous (int): The number of contiguous vacant neighbors for each property. - Columns Referenced: + Columns referenced: opa_id, vacant """ print(f"[DEBUG] contig_neighbors: Starting with {len(input_gdf)} properties") diff --git a/data/src/data_utils/council_dists.py b/data/src/data_utils/council_dists.py index 57f9e0ae..4b28dc0d 100644 --- a/data/src/data_utils/council_dists.py +++ b/data/src/data_utils/council_dists.py @@ -3,6 +3,7 @@ import geopandas as gpd import pandas as pd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.council_dists import ( CouncilDistrictsInputValidator, @@ -17,6 +18,7 @@ @validate_output(CouncilDistrictsOutputValidator) +@provide_metadata(current_metadata=current_metadata) def council_dists( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -37,7 +39,7 @@ def council_dists( Columns added: district (str): The council district associated with the property. - Columns Referenced: + Columns referenced: opa_id, geometry """ diff --git a/data/src/data_utils/delinquencies.py b/data/src/data_utils/delinquencies.py index 0c807856..ce504301 100644 --- a/data/src/data_utils/delinquencies.py +++ b/data/src/data_utils/delinquencies.py @@ -3,6 +3,7 @@ import geopandas as gpd import pandas as pd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.delinquencies import DelinquenciesOutputValidator @@ -12,6 +13,7 @@ @validate_output(DelinquenciesOutputValidator) +@provide_metadata(current_metadata=current_metadata) def delinquencies( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -41,7 +43,7 @@ def delinquencies( sheriff_sale (bool): Indicates if the property is at risk of sheriff sale. total_assessment (float): Total property assessment. - Columns Referenced: + Columns referenced: opa_id """ diff --git a/data/src/data_utils/dev_probability.py b/data/src/data_utils/dev_probability.py index 69728ffa..cbab69cd 100644 --- a/data/src/data_utils/dev_probability.py +++ b/data/src/data_utils/dev_probability.py @@ -6,6 +6,7 @@ import requests from src.config.config import USE_CRS +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.dev_probability import DevProbabilityOutputValidator @@ -15,6 +16,7 @@ @validate_output(DevProbabilityOutputValidator) +@provide_metadata(current_metadata=current_metadata) def dev_probability( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -37,7 +39,7 @@ def dev_probability( permit_count (int): The number of permits issued in the census block group. dev_rank (str): The development rank of the census block group. - Columns Referenced: + Columns referenced: opa_id, geometry Source: diff --git a/data/src/data_utils/drug_crimes.py b/data/src/data_utils/drug_crimes.py index f92256af..ba0b9396 100644 --- a/data/src/data_utils/drug_crimes.py +++ b/data/src/data_utils/drug_crimes.py @@ -3,6 +3,7 @@ import geopandas as gpd from src.data_utils.kde import apply_kde_to_input +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.drug_crimes import DrugCrimesOutputValidator @@ -10,6 +11,7 @@ @validate_output(DrugCrimesOutputValidator) +@provide_metadata(current_metadata=current_metadata) def drug_crimes( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -31,7 +33,7 @@ def drug_crimes( drug_crimes_density_label (str): Categorized density level. drug_crimes_density_percentile (float): Percentile rank of density. - Columns Referenced: + Columns referenced: geometry Source: diff --git a/data/src/data_utils/gun_crimes.py b/data/src/data_utils/gun_crimes.py index 3e830631..13841b15 100644 --- a/data/src/data_utils/gun_crimes.py +++ b/data/src/data_utils/gun_crimes.py @@ -3,6 +3,7 @@ import geopandas as gpd from src.data_utils.kde import apply_kde_to_input +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.gun_crimes import GunCrimesOutputValidator @@ -10,6 +11,7 @@ @validate_output(GunCrimesOutputValidator) +@provide_metadata(current_metadata=current_metadata) def gun_crimes( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -31,7 +33,7 @@ def gun_crimes( gun_crimes_density_label (str): Categorized density level. gun_crimes_density_percentile (float): Percentile rank of density. - Columns Referenced: + Columns referenced: geometry Source: diff --git a/data/src/data_utils/imm_dang_buildings.py b/data/src/data_utils/imm_dang_buildings.py index 166d3056..fc4ffd43 100644 --- a/data/src/data_utils/imm_dang_buildings.py +++ b/data/src/data_utils/imm_dang_buildings.py @@ -3,6 +3,7 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.imm_dang_buildings import ImmDangerOutputValidator @@ -14,6 +15,7 @@ @validate_output(ImmDangerOutputValidator) +@provide_metadata(current_metadata=current_metadata) def imm_dang_buildings( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -34,7 +36,7 @@ def imm_dang_buildings( Columns Added: imm_dang_building (bool): Indicates whether each property is categorized as imminently dangerous (True or False). - Columns Referenced: + Columns referenced: opa_id Source: diff --git a/data/src/data_utils/li_complaints.py b/data/src/data_utils/li_complaints.py index 2429eea2..54fa007c 100644 --- a/data/src/data_utils/li_complaints.py +++ b/data/src/data_utils/li_complaints.py @@ -2,6 +2,7 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.li_complaints import LIComplaintsOutputValidator @@ -10,6 +11,7 @@ @validate_output(LIComplaintsOutputValidator) +@provide_metadata(current_metadata=current_metadata) def li_complaints( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -32,7 +34,7 @@ def li_complaints( l_and_i_complaints_density_label (str): Categorized density level. l_and_i_complaints_density_percentile (float): Percentile rank of density. - Columns Referenced: + Columns referenced: geometry Source: diff --git a/data/src/data_utils/li_violations.py b/data/src/data_utils/li_violations.py index d5abf9cf..6d664ba0 100644 --- a/data/src/data_utils/li_violations.py +++ b/data/src/data_utils/li_violations.py @@ -3,6 +3,7 @@ import geopandas as gpd import pandas as pd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.li_violations import LIViolationsOutputValidator @@ -12,6 +13,7 @@ @validate_output(LIViolationsOutputValidator) +@provide_metadata(current_metadata=current_metadata) def li_violations( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -38,7 +40,7 @@ def li_violations( Source: https://phl.carto.com/api/v2/sql - Columns Referenced: + Columns referenced: opa_id """ keywords: List[str] = [ diff --git a/data/src/data_utils/nbhoods.py b/data/src/data_utils/nbhoods.py index 28b26c07..be241738 100644 --- a/data/src/data_utils/nbhoods.py +++ b/data/src/data_utils/nbhoods.py @@ -2,6 +2,7 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.nbhoods import NeighborhoodsOutputValidator @@ -11,6 +12,7 @@ @validate_output(NeighborhoodsOutputValidator) +@provide_metadata(current_metadata=current_metadata) def nbhoods(input_gdf: gpd.GeoDataFrame) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ Adds neighborhood information to the input GeoDataFrame by performing a spatial join @@ -29,7 +31,7 @@ def nbhoods(input_gdf: gpd.GeoDataFrame) -> Tuple[gpd.GeoDataFrame, ValidationRe Columns added: neighborhood (str): The name of the neighborhood associated with the property. - Columns Referenced: + Columns referenced: opa_id, geometry Source: diff --git a/data/src/data_utils/negligent_devs.py b/data/src/data_utils/negligent_devs.py index f45c8928..6a4910e0 100644 --- a/data/src/data_utils/negligent_devs.py +++ b/data/src/data_utils/negligent_devs.py @@ -2,11 +2,13 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.negligent_devs import NegligentDevsOutputValidator @validate_output(NegligentDevsOutputValidator) +@provide_metadata(current_metadata=current_metadata) def negligent_devs( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -26,7 +28,7 @@ def negligent_devs( per year for that developer (not limited to open violations or open properties) - Columns Referenced: + Columns referenced: opa_id, vacant, city_owner_agency, standardized_mailing_address, all_violations_past_year Tagline: diff --git a/data/src/data_utils/opa_properties.py b/data/src/data_utils/opa_properties.py index e50e6a6f..6cca87d9 100644 --- a/data/src/data_utils/opa_properties.py +++ b/data/src/data_utils/opa_properties.py @@ -7,6 +7,7 @@ from src.classes.loaders import CartoLoader from src.config.config import get_logger +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.opa_properties import OPAPropertiesOutputValidator @@ -139,6 +140,7 @@ def create_standardized_mailing_address_vectorized(gdf: gpd.GeoDataFrame) -> pd. @validate_output(OPAPropertiesOutputValidator) +@provide_metadata(current_metadata=current_metadata) def opa_properties( gdf: gpd.GeoDataFrame = None, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: diff --git a/data/src/data_utils/owner_type.py b/data/src/data_utils/owner_type.py index ea127ae5..f73387f3 100644 --- a/data/src/data_utils/owner_type.py +++ b/data/src/data_utils/owner_type.py @@ -3,11 +3,13 @@ import geopandas as gpd import pandas as pd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.owner_type import OwnerTypeOutputValidator @validate_output(OwnerTypeOutputValidator) +@provide_metadata(current_metadata=current_metadata) def owner_type( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -36,7 +38,7 @@ def owner_type( owner_type (str): The ownership type of the property: Public, Nonprofit/Civic, Business (LLC), or Individual. - Columns Referenced: + Columns referenced: opa_id, owner_1, owner_2, city_owner_agency, standardized_mailing_address """ owner_types = [] diff --git a/data/src/data_utils/park_priority.py b/data/src/data_utils/park_priority.py index 04972a86..9c1d4e52 100644 --- a/data/src/data_utils/park_priority.py +++ b/data/src/data_utils/park_priority.py @@ -3,6 +3,7 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.park_priority import ParkPriorityOutputValidator @@ -116,6 +117,7 @@ def _park_priority_logic( @validate_output(ParkPriorityOutputValidator) +@provide_metadata(current_metadata=current_metadata) def park_priority( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -139,7 +141,7 @@ def park_priority( Columns Added: park_priority (float): The park priority score from TPL's analysis. - Columns Referenced: + Columns referenced: opa_id, geometry Source: diff --git a/data/src/data_utils/phs_properties.py b/data/src/data_utils/phs_properties.py index 6aab1441..4facf88a 100644 --- a/data/src/data_utils/phs_properties.py +++ b/data/src/data_utils/phs_properties.py @@ -2,6 +2,7 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.phs_properties import PHSPropertiesOutputValidator @@ -11,6 +12,7 @@ @validate_output(PHSPropertiesOutputValidator) +@provide_metadata(current_metadata=current_metadata) def phs_properties( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -31,7 +33,7 @@ def phs_properties( Columns added: phs_care_program (str): The PHS care program associated with the property. - Columns Referenced: + Columns referenced: opa_id, geometry """ diff --git a/data/src/data_utils/ppr_properties.py b/data/src/data_utils/ppr_properties.py index 5ef2200e..5a4d4c85 100644 --- a/data/src/data_utils/ppr_properties.py +++ b/data/src/data_utils/ppr_properties.py @@ -4,6 +4,7 @@ import geopandas as gpd import requests +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.ppr_properties import PPRPropertiesOutputValidator @@ -13,6 +14,7 @@ @validate_output(PPRPropertiesOutputValidator) +@provide_metadata(current_metadata=current_metadata) def ppr_properties( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -41,7 +43,7 @@ def ppr_properties( will fall back to loading the data from a GeoJSON URL https://opendata.arcgis.com/datasets/d52445160ab14380a673e5849203eb64_0.geojson - Columns Referenced: + Columns referenced: opa_id, geometry, vacant, public_name """ fallback_url = "https://opendata.arcgis.com/datasets/d52445160ab14380a673e5849203eb64_0.geojson" diff --git a/data/src/data_utils/priority_level.py b/data/src/data_utils/priority_level.py index 8884393a..9f386a9b 100644 --- a/data/src/data_utils/priority_level.py +++ b/data/src/data_utils/priority_level.py @@ -3,11 +3,13 @@ import geopandas as gpd import pandas as pd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.priority_level import PriorityLevelOutputValidator @validate_output(PriorityLevelOutputValidator) +@provide_metadata(current_metadata=current_metadata) def priority_level( dataset: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: diff --git a/data/src/data_utils/pwd_parcels.py b/data/src/data_utils/pwd_parcels.py index 45096490..603ae2fc 100644 --- a/data/src/data_utils/pwd_parcels.py +++ b/data/src/data_utils/pwd_parcels.py @@ -2,6 +2,7 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.pwd_parcels import PWDParcelsOutputValidator @@ -83,6 +84,7 @@ def merge_pwd_parcels_gdf( @validate_output(PWDParcelsOutputValidator) +@provide_metadata(current_metadata=current_metadata) def pwd_parcels( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -109,7 +111,7 @@ def pwd_parcels( geometry: The geometry column is updated with validated geometries from PWD parcels. Condo units retain their original point geometries. - Columns Referenced: + Columns referenced: opa_id, geometry Tagline: diff --git a/data/src/data_utils/rco_geoms.py b/data/src/data_utils/rco_geoms.py index 57b57551..66dfa0df 100644 --- a/data/src/data_utils/rco_geoms.py +++ b/data/src/data_utils/rco_geoms.py @@ -4,6 +4,7 @@ import geopandas as gpd import pandas as pd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.rco_geoms import RCOGeomsOutputValidator @@ -17,6 +18,7 @@ @validate_output(RCOGeomsOutputValidator) +@provide_metadata(current_metadata=current_metadata) def rco_geoms(input_gdf: gpd.GeoDataFrame) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ Adds Registered Community Organization (RCO) information to the input GeoDataFrame @@ -42,7 +44,7 @@ def rco_geoms(input_gdf: gpd.GeoDataFrame) -> Tuple[gpd.GeoDataFrame, Validation Notes: Modifies various columns. Fillna and infer_objects is applied to most columns. - Columns Referenced: + Columns referenced: opa_id, geometry """ loader = EsriLoader(name="RCOs", esri_urls=RCOS_LAYERS_TO_LOAD) diff --git a/data/src/data_utils/tactical_urbanism.py b/data/src/data_utils/tactical_urbanism.py index b9538093..2a236bd1 100644 --- a/data/src/data_utils/tactical_urbanism.py +++ b/data/src/data_utils/tactical_urbanism.py @@ -2,11 +2,13 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.tactical_urbanism import TacticalUrbanismOutputValidator @validate_output(TacticalUrbanismOutputValidator) +@provide_metadata(current_metadata=current_metadata) def tactical_urbanism( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -22,7 +24,7 @@ def tactical_urbanism( Columns Added: tactical_urbanism (bool): Indicates whether each property qualifies for tactical urbanism (True or False). - Columns Referenced: + Columns referenced: parcel_type, unsafe_building, imm_dang_building Tagline: diff --git a/data/src/data_utils/tree_canopy.py b/data/src/data_utils/tree_canopy.py index cc118d54..adbaac07 100644 --- a/data/src/data_utils/tree_canopy.py +++ b/data/src/data_utils/tree_canopy.py @@ -7,6 +7,7 @@ import requests from src.classes.file_manager import FileManager, LoadType +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.tree_canopy import TreeCanopyOutputValidator @@ -17,6 +18,7 @@ @validate_output(TreeCanopyOutputValidator) +@provide_metadata(current_metadata=current_metadata) def tree_canopy( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -37,7 +39,7 @@ def tree_canopy( Columns added: tree_canopy_gap (float): The amount of tree canopy lacking. - Columns Referenced: + Columns referenced: opa_id, geometry Source: diff --git a/data/src/data_utils/unsafe_buildings.py b/data/src/data_utils/unsafe_buildings.py index 06ccf295..58f38f02 100644 --- a/data/src/data_utils/unsafe_buildings.py +++ b/data/src/data_utils/unsafe_buildings.py @@ -3,6 +3,7 @@ import geopandas as gpd +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.unsafe_buildings import UnsafeBuildingsOutputValidator @@ -14,6 +15,7 @@ @validate_output(UnsafeBuildingsOutputValidator) +@provide_metadata(current_metadata=current_metadata) def unsafe_buildings( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -34,7 +36,7 @@ def unsafe_buildings( Columns Added: unsafe_building (bool): Indicates whether each property is categorized as an unsafe building (True or False). - Columns Referenced: + Columns referenced: opa_id Source: diff --git a/data/src/data_utils/vacant_properties.py b/data/src/data_utils/vacant_properties.py index f1a2b483..4f6b00db 100644 --- a/data/src/data_utils/vacant_properties.py +++ b/data/src/data_utils/vacant_properties.py @@ -6,6 +6,7 @@ import pandas as pd from src.config.config import ROOT_DIRECTORY +from src.metadata.metadata_utils import current_metadata, provide_metadata from src.validation.base import ValidationResult, validate_output from src.validation.vacant_properties import VacantPropertiesOutputValidator @@ -96,6 +97,7 @@ def check_null_percentage(df: pd.DataFrame, threshold: float = 0.05) -> None: @validate_output(VacantPropertiesOutputValidator) +@provide_metadata(current_metadata=current_metadata) def vacant_properties( input_gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: @@ -115,7 +117,7 @@ def vacant_properties( Columns Added: vacant (bool): Indicates whether the property is vacant. - Columns Referenced: + Columns referenced: opa_id Known Issues: diff --git a/data/src/metadata/metadata_utils.py b/data/src/metadata/metadata_utils.py index f123bb4b..4fac0bb8 100644 --- a/data/src/metadata/metadata_utils.py +++ b/data/src/metadata/metadata_utils.py @@ -272,3 +272,6 @@ def wrapper(gdf: gpd.GeoDataFrame): return wrapper return decorator + + +current_metadata: List[dict] = [] diff --git a/data/src/test/test_metadata_utils.py b/data/src/test/test_metadata_utils.py index ec7ef82a..83007dfb 100644 --- a/data/src/test/test_metadata_utils.py +++ b/data/src/test/test_metadata_utils.py @@ -34,7 +34,7 @@ def stub_update_vacant_community(primary_featurelayer): Columns updated: vacant: Updated to False for parcels containing community gardens. - Columns Referenced: + Columns referenced: vacant, ipa_id """ pass @@ -252,7 +252,7 @@ def test_parse_docstring(self): "columns added": [], "source": "", "known issues": "", - "Columns Referenced": ["vacant", "ipa_id"], + "Columns referenced": ["vacant", "ipa_id"], }, ), ( @@ -265,7 +265,7 @@ def test_parse_docstring(self): "columns added": [], "columns updated": [], "known issues": "", - "Columns Referenced": [], + "Columns referenced": [], }, ), ( @@ -279,7 +279,7 @@ def test_parse_docstring(self): "columns added": "list_of_12", "columns updated": [], "known issues": "", - "Columns Referenced": [], + "Columns referenced": [], }, ), ( @@ -302,7 +302,7 @@ def test_parse_docstring(self): "known issues": ( "If the Ersi REST URL is not available the function" # NOTE: because the next line has a colon, only the first line is captured ), - "Columns Referenced": [], + "Columns referenced": [], }, ), ( @@ -326,7 +326,7 @@ def test_parse_docstring(self): "columns updated": [], "source": "", "known issues": "", - "Columns Referenced": [], + "Columns referenced": [], }, ), ( @@ -339,7 +339,7 @@ def test_parse_docstring(self): "columns updated": [], "source": "", "known issues": "", - "Columns Referenced": [], + "Columns referenced": [], }, ), ] From 7ecbeb52380a062923119158ad1bd1586758a6d2 Mon Sep 17 00:00:00 2001 From: gabecano4308 Date: Tue, 8 Jul 2025 12:39:38 -0400 Subject: [PATCH 05/18] feat(FilterView): added input validators, including row count checks --- data/src/classes/loaders.py | 2 ++ data/src/data_utils/community_gardens.py | 1 + data/src/data_utils/imm_dang_buildings.py | 6 +++++- data/src/data_utils/li_violations.py | 6 +++++- data/src/data_utils/phs_properties.py | 10 ++++++++-- data/src/data_utils/ppr_properties.py | 6 +++++- data/src/data_utils/pwd_parcels.py | 6 +++++- data/src/data_utils/rco_geoms.py | 6 ++++-- data/src/data_utils/unsafe_buildings.py | 6 +++++- data/src/data_utils/vacant_properties.py | 6 +++++- data/src/validation/base.py | 20 ++++++++++++++++++++ data/src/validation/city_owned_properties.py | 13 +++++-------- data/src/validation/community_gardens.py | 19 +++++++++++++++---- data/src/validation/council_dists.py | 2 +- data/src/validation/imm_dang_buildings.py | 16 ++++++++++++++-- data/src/validation/li_violations.py | 18 ++++++++++++++++-- data/src/validation/phs_properties.py | 17 +++++++++++++++-- data/src/validation/ppr_properties.py | 16 ++++++++++++++-- data/src/validation/pwd_parcels.py | 16 ++++++++++++++-- data/src/validation/rco_geoms.py | 20 ++++++++++++++++++-- data/src/validation/unsafe_buildings.py | 16 ++++++++++++++-- data/src/validation/vacant_properties.py | 17 ++++++++++++++++- 22 files changed, 207 insertions(+), 38 deletions(-) diff --git a/data/src/classes/loaders.py b/data/src/classes/loaders.py index d7d42d64..caa8026a 100644 --- a/data/src/classes/loaders.py +++ b/data/src/classes/loaders.py @@ -386,6 +386,8 @@ def load_or_fetch(self) -> Tuple[gpd.GeoDataFrame, ValidationResult]: cache_logger.info("Loading fresh data now...") gdf = self._load_fresh_data() + print(gdf.info()) + # Validation validation_start = time.time() validation_result = ( diff --git a/data/src/data_utils/community_gardens.py b/data/src/data_utils/community_gardens.py index 61ad1b30..4f0b6d31 100644 --- a/data/src/data_utils/community_gardens.py +++ b/data/src/data_utils/community_gardens.py @@ -47,6 +47,7 @@ def community_gardens( name="Community Gardens", esri_urls=COMMUNITY_GARDENS_TO_LOAD, cols=["site_name"], + validator=CommunityGardensInputValidator(), ) community_gardens, input_validation = loader.load_or_fetch() diff --git a/data/src/data_utils/imm_dang_buildings.py b/data/src/data_utils/imm_dang_buildings.py index 1de0cc78..2b36d6c1 100644 --- a/data/src/data_utils/imm_dang_buildings.py +++ b/data/src/data_utils/imm_dang_buildings.py @@ -4,7 +4,10 @@ import geopandas as gpd from src.validation.base import ValidationResult, validate_output -from src.validation.imm_dang_buildings import ImmDangerOutputValidator +from src.validation.imm_dang_buildings import ( + ImmDangerInputValidator, + ImmDangerOutputValidator, +) from ..classes.loaders import CartoLoader from ..constants.services import IMMINENT_DANGER_BUILDINGS_QUERY @@ -45,6 +48,7 @@ def imm_dang_buildings( name="Imminently Dangerous Buildings", carto_queries=IMMINENT_DANGER_BUILDINGS_QUERY, opa_col="opa_account_num", + validator=ImmDangerInputValidator(), ) imm_dang_buildings, input_validation = loader.load_or_fetch() diff --git a/data/src/data_utils/li_violations.py b/data/src/data_utils/li_violations.py index 2fc8b8de..e50a0810 100644 --- a/data/src/data_utils/li_violations.py +++ b/data/src/data_utils/li_violations.py @@ -4,7 +4,10 @@ import pandas as pd from src.validation.base import ValidationResult, validate_output -from src.validation.li_violations import LIViolationsOutputValidator +from src.validation.li_violations import ( + LIViolationsOutputValidator, + LIViolationsInputValidator, +) from ..classes.loaders import CartoLoader from ..constants.services import VIOLATIONS_SQL_QUERY @@ -59,6 +62,7 @@ def li_violations( name="LI Violations", carto_queries=VIOLATIONS_SQL_QUERY, opa_col="opa_account_num", + validator=LIViolationsInputValidator(), ) l_and_i_violations, input_validation = loader.load_or_fetch() diff --git a/data/src/data_utils/phs_properties.py b/data/src/data_utils/phs_properties.py index f141484b..850dc71a 100644 --- a/data/src/data_utils/phs_properties.py +++ b/data/src/data_utils/phs_properties.py @@ -3,7 +3,10 @@ import geopandas as gpd from src.validation.base import ValidationResult, validate_output -from src.validation.phs_properties import PHSPropertiesOutputValidator +from src.validation.phs_properties import ( + PHSPropertiesInputValidator, + PHSPropertiesOutputValidator, +) from ..classes.loaders import EsriLoader from ..constants.services import PHS_LAYERS_TO_LOAD @@ -42,7 +45,10 @@ def phs_properties( print(input_gdf.head()) loader = EsriLoader( - name="PHS Properties", esri_urls=PHS_LAYERS_TO_LOAD, cols=["program"] + name="PHS Properties", + esri_urls=PHS_LAYERS_TO_LOAD, + cols=["program"], + validator=PHSPropertiesInputValidator(), ) phs_properties, input_validation = loader.load_or_fetch() diff --git a/data/src/data_utils/ppr_properties.py b/data/src/data_utils/ppr_properties.py index 27ee9529..5cb3dacb 100644 --- a/data/src/data_utils/ppr_properties.py +++ b/data/src/data_utils/ppr_properties.py @@ -5,7 +5,10 @@ import requests from src.validation.base import ValidationResult, validate_output -from src.validation.ppr_properties import PPRPropertiesOutputValidator +from src.validation.ppr_properties import ( + PPRPropertiesInputValidator, + PPRPropertiesOutputValidator, +) from ..classes.loaders import EsriLoader, GdfLoader from ..constants.services import PPR_PROPERTIES_TO_LOAD @@ -73,6 +76,7 @@ def ppr_properties( input=io.BytesIO(response.content), name="PPR Properties", cols=["public_name"], + validator=PPRPropertiesInputValidator(), ) ppr_properties, input_validation = loader.load_or_fetch() diff --git a/data/src/data_utils/pwd_parcels.py b/data/src/data_utils/pwd_parcels.py index 3b4940c9..79520216 100644 --- a/data/src/data_utils/pwd_parcels.py +++ b/data/src/data_utils/pwd_parcels.py @@ -3,7 +3,10 @@ import geopandas as gpd from src.validation.base import ValidationResult, validate_output -from src.validation.pwd_parcels import PWDParcelsOutputValidator +from src.validation.pwd_parcels import ( + PWDParcelsInputValidator, + PWDParcelsOutputValidator, +) from ..classes.loaders import CartoLoader from ..constants.services import PWD_PARCELS_QUERY @@ -122,6 +125,7 @@ def pwd_parcels( name="PWD Parcels", carto_queries=PWD_PARCELS_QUERY, opa_col="brt_id", + validator=PWDParcelsInputValidator(), ) pwd_parcels, input_validation = loader.load_or_fetch() diff --git a/data/src/data_utils/rco_geoms.py b/data/src/data_utils/rco_geoms.py index 0327841c..6ac9fc89 100644 --- a/data/src/data_utils/rco_geoms.py +++ b/data/src/data_utils/rco_geoms.py @@ -5,7 +5,7 @@ import pandas as pd from src.validation.base import ValidationResult, validate_output -from src.validation.rco_geoms import RCOGeomsOutputValidator +from src.validation.rco_geoms import RCOGeomsOutputValidator, RCOGeomsInputValidator from ..classes.loaders import EsriLoader from ..constants.services import RCOS_LAYERS_TO_LOAD @@ -45,7 +45,9 @@ def rco_geoms(input_gdf: gpd.GeoDataFrame) -> Tuple[gpd.GeoDataFrame, Validation Primary Feature Layer Columns Referenced: opa_id, geometry """ - loader = EsriLoader(name="RCOs", esri_urls=RCOS_LAYERS_TO_LOAD) + loader = EsriLoader( + name="RCOs", esri_urls=RCOS_LAYERS_TO_LOAD, validator=RCOGeomsInputValidator() + ) rco_geoms, input_validation = loader.load_or_fetch() logger.debug(f"RCO data loaded: {len(rco_geoms)} RCO records") diff --git a/data/src/data_utils/unsafe_buildings.py b/data/src/data_utils/unsafe_buildings.py index b52a7a71..a954fb6a 100644 --- a/data/src/data_utils/unsafe_buildings.py +++ b/data/src/data_utils/unsafe_buildings.py @@ -4,7 +4,10 @@ import geopandas as gpd from src.validation.base import ValidationResult, validate_output -from src.validation.unsafe_buildings import UnsafeBuildingsOutputValidator +from src.validation.unsafe_buildings import ( + UnsafeBuildingsOutputValidator, + UnsafeBuildingsInputValidator, +) from ..classes.loaders import CartoLoader from ..constants.services import UNSAFE_BUILDINGS_QUERY @@ -44,6 +47,7 @@ def unsafe_buildings( name="Unsafe Buildings", carto_queries=UNSAFE_BUILDINGS_QUERY, opa_col="opa_account_num", + validator=UnsafeBuildingsInputValidator(), ) unsafe_buildings, input_validation = loader.load_or_fetch() diff --git a/data/src/data_utils/vacant_properties.py b/data/src/data_utils/vacant_properties.py index bb6e210e..3dde5dbb 100644 --- a/data/src/data_utils/vacant_properties.py +++ b/data/src/data_utils/vacant_properties.py @@ -7,7 +7,10 @@ from src.config.config import ROOT_DIRECTORY from src.validation.base import ValidationResult, validate_output -from src.validation.vacant_properties import VacantPropertiesOutputValidator +from src.validation.vacant_properties import ( + VacantPropertiesInputValidator, + VacantPropertiesOutputValidator, +) from ..classes.loaders import EsriLoader, google_cloud_bucket from ..constants.services import VACANT_PROPS_LAYERS_TO_LOAD @@ -126,6 +129,7 @@ def vacant_properties( name="Vacant Properties", esri_urls=VACANT_PROPS_LAYERS_TO_LOAD, cols=["opa_id", "parcel_type"], + validator=VacantPropertiesInputValidator(), ) vacant_properties, input_validation = loader.load_or_fetch() diff --git a/data/src/validation/base.py b/data/src/validation/base.py index 4969403f..97390d2a 100644 --- a/data/src/validation/base.py +++ b/data/src/validation/base.py @@ -752,6 +752,26 @@ def null_percentage_check(null_percent: float) -> Check: ) +def row_count_check(reference_count: int, tolerance: float = 0.1) -> Check: + """ + Create a check that validates if the DataFrame's row count is within a specified tolerance range. + + Args: + reference_count: The expected number of rows + tolerance: The allowed deviation as a percentage (default 10%) + + Returns: + Check: A pandera Check object that validates row count + """ + lower_bound = reference_count * (1 - tolerance) + upper_bound = reference_count * (1 + tolerance) + + return Check( + lambda df: df.shape[0] >= lower_bound and df.shape[0] <= upper_bound, + error=f"DataFrame size must be between {int(lower_bound)} and {int(upper_bound)} rows (±{tolerance * 100}% from {reference_count}).", + ) + + @dataclass class DistributionParams: min_value: Optional[int | float] = None diff --git a/data/src/validation/city_owned_properties.py b/data/src/validation/city_owned_properties.py index b3d9629f..81ed5eb7 100644 --- a/data/src/validation/city_owned_properties.py +++ b/data/src/validation/city_owned_properties.py @@ -1,7 +1,7 @@ import geopandas as gpd import pandera.pandas as pa -from .base import BaseValidator +from .base import BaseValidator, row_count_check # Define the City Owned Properties DataFrame Schema CityOwnedPropertiesSchema = pa.DataFrameSchema( @@ -29,11 +29,8 @@ coerce=True, ) -# Expecting ~7,796 records returned (within ±20% tolerance). -# This is checked in CityOwnedPropertiesInputSchema -expected = 7796 -lower = int(expected * 0.8) -upper = int(expected * 1.2) +# Reference count for city owned properties +CITY_OWNED_REFERENCE_COUNT = 7796 CityOwnedPropertiesInputSchema = pa.DataFrameSchema( columns={ @@ -44,8 +41,8 @@ ), "geometry": pa.Column("geometry"), }, - checks=pa.Check(lambda df: lower <= df.shape[0] <= upper), - strict=True, + checks=row_count_check(CITY_OWNED_REFERENCE_COUNT, tolerance=0.1), + strict=False, ) diff --git a/data/src/validation/community_gardens.py b/data/src/validation/community_gardens.py index 7da86e7a..166f804b 100644 --- a/data/src/validation/community_gardens.py +++ b/data/src/validation/community_gardens.py @@ -1,9 +1,7 @@ import geopandas as gpd import pandera.pandas as pa -from .base import ( - BaseValidator, -) +from .base import BaseValidator, row_count_check # Define the Community Gardens DataFrame Schema CommunityGardensSchema = pa.DataFrameSchema( @@ -23,11 +21,24 @@ coerce=True, ) +# Reference count for community gardens +COMMUNITY_GARDENS_REFERENCE_COUNT = 205 + +CommunityGardensInputSchema = pa.DataFrameSchema( + columns={ + "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "geometry": pa.Column("geometry"), + "site_name": pa.Column(str, nullable=True), + }, + checks=row_count_check(COMMUNITY_GARDENS_REFERENCE_COUNT, tolerance=0.1), + strict=False, +) + class CommunityGardensInputValidator(BaseValidator): """Validator for community gardens service input.""" - schema = None # No schema validation for input + schema = CommunityGardensInputSchema def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/council_dists.py b/data/src/validation/council_dists.py index a43a236f..d61fdf99 100644 --- a/data/src/validation/council_dists.py +++ b/data/src/validation/council_dists.py @@ -39,7 +39,7 @@ lambda df: set(df["district"].dropna().unique()) == {str(i) for i in range(1, 11)} ), - strict=True, + strict=False, ) diff --git a/data/src/validation/imm_dang_buildings.py b/data/src/validation/imm_dang_buildings.py index 8ff952e8..f323f83c 100644 --- a/data/src/validation/imm_dang_buildings.py +++ b/data/src/validation/imm_dang_buildings.py @@ -2,7 +2,7 @@ import pandera.pandas as pa from pandera import Check -from .base import BaseValidator +from .base import BaseValidator, row_count_check # Define the Imminently Dangerous Buildings DataFrame Schema ImmDangerBuildingsSchema = pa.DataFrameSchema( @@ -31,11 +31,23 @@ strict=False, ) +# Reference count for imminently dangerous buildings +IMM_DANGER_BUILDINGS_REFERENCE_COUNT = 186 + +ImmDangerBuildingsInputSchema = pa.DataFrameSchema( + columns={ + "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "geometry": pa.Column("geometry"), + }, + checks=row_count_check(IMM_DANGER_BUILDINGS_REFERENCE_COUNT, tolerance=0.1), + strict=False, +) + class ImmDangerInputValidator(BaseValidator): """Validator for imminent danger buildings service input.""" - schema = None + schema = ImmDangerBuildingsInputSchema def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/li_violations.py b/data/src/validation/li_violations.py index 494c7534..c4445fd3 100644 --- a/data/src/validation/li_violations.py +++ b/data/src/validation/li_violations.py @@ -1,7 +1,7 @@ import geopandas as gpd import pandera.pandas as pa -from .base import BaseValidator, DistributionParams, distribution_check +from .base import BaseValidator, DistributionParams, distribution_check, row_count_check # Define the LI Violations DataFrame Schema LIViolationsSchema = pa.DataFrameSchema( @@ -31,11 +31,25 @@ coerce=False, ) +LIViolationsReferenceCount = 54401 + +LIViolationsInputSchema = pa.DataFrameSchema( + columns={ + "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "geometry": pa.Column("geometry"), + "violationcodetitle": pa.Column(str), + "violationnumber": pa.Column(str), + "violationstatus": pa.Column(str), + }, + checks=row_count_check(LIViolationsReferenceCount, tolerance=0.1), + strict=False, +) + class LIViolationsInputValidator(BaseValidator): """Validator for LI violations service input.""" - schema = None + schema = LIViolationsInputSchema def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/phs_properties.py b/data/src/validation/phs_properties.py index ec1e1106..a5e1e837 100644 --- a/data/src/validation/phs_properties.py +++ b/data/src/validation/phs_properties.py @@ -1,7 +1,7 @@ import geopandas as gpd import pandera.pandas as pa -from .base import BaseValidator +from .base import BaseValidator, row_count_check # Define the PHS Properties DataFrame Schema PHSPropertiesSchema = pa.DataFrameSchema( @@ -25,11 +25,24 @@ coerce=True, ) +# Reference count for city owned properties +PHS_REFERENCE_COUNT = 7796 + +PHSPropertiesInputSchema = pa.DataFrameSchema( + columns={ + "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "geometry": pa.Column("geometry"), + "program": pa.Column(str, nullable=True), + }, + checks=row_count_check(PHS_REFERENCE_COUNT, tolerance=0.1), + strict=False, +) + class PHSPropertiesInputValidator(BaseValidator): """Validator for PHS properties service input.""" - schema = None # No schema validation for input + schema = PHSPropertiesInputSchema def _custom_validation(self, gdf: gpd.GeoDataFrame): pass diff --git a/data/src/validation/ppr_properties.py b/data/src/validation/ppr_properties.py index 8e1f5778..f1180b2c 100644 --- a/data/src/validation/ppr_properties.py +++ b/data/src/validation/ppr_properties.py @@ -3,17 +3,29 @@ import geopandas as gpd import pandera.pandas as pa -from .base import BaseValidator +from .base import BaseValidator, row_count_check # Set up logging logging.basicConfig(level=logging.DEBUG) logger = logging.getLogger(__name__) +PPR_REFERENCE_COUNT = 507 + +PPRPropertiesInputSchema = pa.DataFrameSchema( + columns={ + "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "geometry": pa.Column("geometry"), + "public_name": pa.Column(str, nullable=True), + }, + checks=row_count_check(PPR_REFERENCE_COUNT, tolerance=0.1), + strict=False, +) + class PPRPropertiesInputValidator(BaseValidator): """Validator for PPR properties service input.""" - schema = None + schema = PPRPropertiesInputSchema def _custom_validation(self, gdf: gpd.GeoDataFrame): pass diff --git a/data/src/validation/pwd_parcels.py b/data/src/validation/pwd_parcels.py index 1375d3ea..fe627ef5 100644 --- a/data/src/validation/pwd_parcels.py +++ b/data/src/validation/pwd_parcels.py @@ -1,7 +1,7 @@ import geopandas as gpd import pandera.pandas as pa -from .base import BaseValidator +from .base import BaseValidator, row_count_check # Define the PWD Parcels DataFrame Schema PWDParcelsSchema = pa.DataFrameSchema( @@ -32,11 +32,23 @@ coerce=False, ) +# Reference count for PWD parcels +PWD_PARCELS_REFERENCE_COUNT = 547351 + +PWDParcelsInputSchema = pa.DataFrameSchema( + columns={ + "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "geometry": pa.Column("geometry"), + }, + checks=row_count_check(PWD_PARCELS_REFERENCE_COUNT, tolerance=0.05), + strict=False, +) + class PWDParcelsInputValidator(BaseValidator): """Validator for PWD parcels service input.""" - schema = None # No schema validation for input + schema = PWDParcelsInputSchema def _custom_validation(self, gdf: gpd.GeoDataFrame): pass diff --git a/data/src/validation/rco_geoms.py b/data/src/validation/rco_geoms.py index 416aae81..47187b1e 100644 --- a/data/src/validation/rco_geoms.py +++ b/data/src/validation/rco_geoms.py @@ -1,7 +1,7 @@ import geopandas as gpd import pandera.pandas as pa -from .base import BaseValidator +from .base import BaseValidator, row_count_check # Define the RCO Geoms DataFrame Schema RCOGeomsSchema = pa.DataFrameSchema( @@ -23,11 +23,27 @@ coerce=False, ) +# Reference count for RCO geoms +RCO_GEOMS_REFERENCE_COUNT = 257 + +RCOGeomsInputSchema = pa.DataFrameSchema( + columns={ + "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "geometry": pa.Column("geometry"), + "organization_name": pa.Column(str), + "organization_address": pa.Column(str), + "primary_email": pa.Column(str), + "primary_phone": pa.Column(str), + }, + checks=row_count_check(RCO_GEOMS_REFERENCE_COUNT, tolerance=0.1), + strict=False, +) + class RCOGeomsInputValidator(BaseValidator): """Validator for rco geoms service input.""" - schema = None # No schema validation for input + schema = RCOGeomsInputSchema def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/unsafe_buildings.py b/data/src/validation/unsafe_buildings.py index c4e432f3..71569e98 100644 --- a/data/src/validation/unsafe_buildings.py +++ b/data/src/validation/unsafe_buildings.py @@ -2,7 +2,7 @@ import pandera.pandas as pa from pandera import Check -from .base import BaseValidator +from .base import BaseValidator, row_count_check # Define the Unsafe Buildings DataFrame Schema UnsafeBuildingsSchema = pa.DataFrameSchema( @@ -31,11 +31,23 @@ strict=False, ) +# Reference count for unsafe buildings +UNSAFE_BUILDINGS_REFERENCE_COUNT = 3520 + +UnsafeBuildingsInputSchema = pa.DataFrameSchema( + columns={ + "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "geometry": pa.Column("geometry"), + }, + checks=row_count_check(UNSAFE_BUILDINGS_REFERENCE_COUNT, tolerance=0.1), + strict=False, +) + class UnsafeBuildingsInputValidator(BaseValidator): """Validator for unsafe buildings service input.""" - schema = None + schema = UnsafeBuildingsInputSchema def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/vacant_properties.py b/data/src/validation/vacant_properties.py index 32e94432..b8c0d8d3 100644 --- a/data/src/validation/vacant_properties.py +++ b/data/src/validation/vacant_properties.py @@ -30,11 +30,26 @@ coerce=True, ) +VacantPropertiesInputSchema = pa.DataFrameSchema( + columns={ + "opa_id": pa.Column( + str, + nullable=True, + ), + "parcel_type": pa.Column( + str, + nullable=True, + ), + "geometry": pa.Column("geometry"), + }, + strict=False, +) + class VacantPropertiesInputValidator(BaseValidator): """Validator for vacant properties service input.""" - schema = None # No schema validation for input + schema = VacantPropertiesInputSchema def _custom_validation(self, gdf: gpd.GeoDataFrame): pass From 03aa3518c252c77c8d0d5a5229cc6f3dd0315737 Mon Sep 17 00:00:00 2001 From: gabecano4308 Date: Tue, 8 Jul 2025 12:47:09 -0400 Subject: [PATCH 06/18] feat(FilterView): removed print statement --- data/src/classes/loaders.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/data/src/classes/loaders.py b/data/src/classes/loaders.py index caa8026a..d7d42d64 100644 --- a/data/src/classes/loaders.py +++ b/data/src/classes/loaders.py @@ -386,8 +386,6 @@ def load_or_fetch(self) -> Tuple[gpd.GeoDataFrame, ValidationResult]: cache_logger.info("Loading fresh data now...") gdf = self._load_fresh_data() - print(gdf.info()) - # Validation validation_start = time.time() validation_result = ( From 382da655f4c81b57a6f47529f8e8a5e2d3407072 Mon Sep 17 00:00:00 2001 From: gabecano4308 Date: Tue, 8 Jul 2025 13:08:50 -0400 Subject: [PATCH 07/18] feat(InputVal): changed opa_id vals to string --- data/src/validation/community_gardens.py | 2 +- data/src/validation/imm_dang_buildings.py | 2 +- data/src/validation/li_violations.py | 2 +- data/src/validation/phs_properties.py | 2 +- data/src/validation/ppr_properties.py | 4 ++-- data/src/validation/pwd_parcels.py | 2 +- data/src/validation/rco_geoms.py | 2 +- data/src/validation/unsafe_buildings.py | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/data/src/validation/community_gardens.py b/data/src/validation/community_gardens.py index 166f804b..47335d3b 100644 --- a/data/src/validation/community_gardens.py +++ b/data/src/validation/community_gardens.py @@ -26,7 +26,7 @@ CommunityGardensInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), "site_name": pa.Column(str, nullable=True), }, diff --git a/data/src/validation/imm_dang_buildings.py b/data/src/validation/imm_dang_buildings.py index f323f83c..d23de383 100644 --- a/data/src/validation/imm_dang_buildings.py +++ b/data/src/validation/imm_dang_buildings.py @@ -36,7 +36,7 @@ ImmDangerBuildingsInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), }, checks=row_count_check(IMM_DANGER_BUILDINGS_REFERENCE_COUNT, tolerance=0.1), diff --git a/data/src/validation/li_violations.py b/data/src/validation/li_violations.py index c4445fd3..a7f0f4ce 100644 --- a/data/src/validation/li_violations.py +++ b/data/src/validation/li_violations.py @@ -35,7 +35,7 @@ LIViolationsInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), "violationcodetitle": pa.Column(str), "violationnumber": pa.Column(str), diff --git a/data/src/validation/phs_properties.py b/data/src/validation/phs_properties.py index a5e1e837..08fa1447 100644 --- a/data/src/validation/phs_properties.py +++ b/data/src/validation/phs_properties.py @@ -30,7 +30,7 @@ PHSPropertiesInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), "program": pa.Column(str, nullable=True), }, diff --git a/data/src/validation/ppr_properties.py b/data/src/validation/ppr_properties.py index f1180b2c..b4345a3b 100644 --- a/data/src/validation/ppr_properties.py +++ b/data/src/validation/ppr_properties.py @@ -11,11 +11,11 @@ PPR_REFERENCE_COUNT = 507 +# Input schema for PPR properties PPRPropertiesInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), - "public_name": pa.Column(str, nullable=True), }, checks=row_count_check(PPR_REFERENCE_COUNT, tolerance=0.1), strict=False, diff --git a/data/src/validation/pwd_parcels.py b/data/src/validation/pwd_parcels.py index fe627ef5..8f681b07 100644 --- a/data/src/validation/pwd_parcels.py +++ b/data/src/validation/pwd_parcels.py @@ -37,7 +37,7 @@ PWDParcelsInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), }, checks=row_count_check(PWD_PARCELS_REFERENCE_COUNT, tolerance=0.05), diff --git a/data/src/validation/rco_geoms.py b/data/src/validation/rco_geoms.py index 47187b1e..566748a0 100644 --- a/data/src/validation/rco_geoms.py +++ b/data/src/validation/rco_geoms.py @@ -28,7 +28,7 @@ RCOGeomsInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), "organization_name": pa.Column(str), "organization_address": pa.Column(str), diff --git a/data/src/validation/unsafe_buildings.py b/data/src/validation/unsafe_buildings.py index 71569e98..f332cfdc 100644 --- a/data/src/validation/unsafe_buildings.py +++ b/data/src/validation/unsafe_buildings.py @@ -36,7 +36,7 @@ UnsafeBuildingsInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.Int, checks=pa.Check(lambda s: s.dropna() != "")), + "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), }, checks=row_count_check(UNSAFE_BUILDINGS_REFERENCE_COUNT, tolerance=0.1), From 2139bf7abf3a0bff70aaecdc2c5f41ccfe040166 Mon Sep 17 00:00:00 2001 From: gabecano4308 Date: Tue, 8 Jul 2025 13:27:30 -0400 Subject: [PATCH 08/18] feat(InputVal): added check_stats param to custom_validation fcn --- data/src/validation/city_owned_properties.py | 7 ++----- data/src/validation/contig_neighbors.py | 2 +- data/src/validation/delinquencies.py | 2 +- data/src/validation/dev_probability.py | 4 ++-- data/src/validation/dor_parcels.py | 2 +- data/src/validation/nbhoods.py | 2 +- data/src/validation/phs_properties.py | 2 +- data/src/validation/ppr_properties.py | 2 +- data/src/validation/priority_level.py | 2 +- data/src/validation/pwd_parcels.py | 2 +- data/src/validation/vacant_properties.py | 2 +- 11 files changed, 13 insertions(+), 16 deletions(-) diff --git a/data/src/validation/city_owned_properties.py b/data/src/validation/city_owned_properties.py index 81ed5eb7..22e14c1b 100644 --- a/data/src/validation/city_owned_properties.py +++ b/data/src/validation/city_owned_properties.py @@ -47,14 +47,11 @@ class CityOwnedPropertiesInputValidator(BaseValidator): - """ - Validator for the city-owned properties dataset input. - schema and _custom_validation() are used by validate() in the parent class. - """ + """Validator for city owned properties service input.""" schema = CityOwnedPropertiesInputSchema - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/contig_neighbors.py b/data/src/validation/contig_neighbors.py index 34c1eb8d..be0b06c0 100644 --- a/data/src/validation/contig_neighbors.py +++ b/data/src/validation/contig_neighbors.py @@ -9,7 +9,7 @@ class ContigNeighborsInputValidator(BaseValidator): schema = None - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/delinquencies.py b/data/src/validation/delinquencies.py index c4a1369c..a8fa2aeb 100644 --- a/data/src/validation/delinquencies.py +++ b/data/src/validation/delinquencies.py @@ -11,7 +11,7 @@ class DelinquenciesInputValidator(BaseValidator): schema = None - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/dev_probability.py b/data/src/validation/dev_probability.py index 5b0242cf..c4b67371 100644 --- a/data/src/validation/dev_probability.py +++ b/data/src/validation/dev_probability.py @@ -7,11 +7,11 @@ class DevProbabilityInputValidator(BaseValidator): - """Validator for dev probability service input from census block groups.""" + """Validator for development probability service input.""" schema = None - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/dor_parcels.py b/data/src/validation/dor_parcels.py index 04e50b31..650d1cfd 100644 --- a/data/src/validation/dor_parcels.py +++ b/data/src/validation/dor_parcels.py @@ -8,7 +8,7 @@ class DorParcelsInputValidator(BaseValidator): schema = None - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/nbhoods.py b/data/src/validation/nbhoods.py index f6e896da..a4a0b4b6 100644 --- a/data/src/validation/nbhoods.py +++ b/data/src/validation/nbhoods.py @@ -27,7 +27,7 @@ class NeighborhoodsInputValidator(BaseValidator): schema = None # No schema validation for input - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/phs_properties.py b/data/src/validation/phs_properties.py index 08fa1447..b5598560 100644 --- a/data/src/validation/phs_properties.py +++ b/data/src/validation/phs_properties.py @@ -44,7 +44,7 @@ class PHSPropertiesInputValidator(BaseValidator): schema = PHSPropertiesInputSchema - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/ppr_properties.py b/data/src/validation/ppr_properties.py index b4345a3b..6c296da0 100644 --- a/data/src/validation/ppr_properties.py +++ b/data/src/validation/ppr_properties.py @@ -27,7 +27,7 @@ class PPRPropertiesInputValidator(BaseValidator): schema = PPRPropertiesInputSchema - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/priority_level.py b/data/src/validation/priority_level.py index e1456468..084787bd 100644 --- a/data/src/validation/priority_level.py +++ b/data/src/validation/priority_level.py @@ -10,7 +10,7 @@ class PriorityLevelInputValidator(BaseValidator): schema = None - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/pwd_parcels.py b/data/src/validation/pwd_parcels.py index 8f681b07..b6748c47 100644 --- a/data/src/validation/pwd_parcels.py +++ b/data/src/validation/pwd_parcels.py @@ -50,7 +50,7 @@ class PWDParcelsInputValidator(BaseValidator): schema = PWDParcelsInputSchema - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass diff --git a/data/src/validation/vacant_properties.py b/data/src/validation/vacant_properties.py index b8c0d8d3..1f49d2b2 100644 --- a/data/src/validation/vacant_properties.py +++ b/data/src/validation/vacant_properties.py @@ -51,7 +51,7 @@ class VacantPropertiesInputValidator(BaseValidator): schema = VacantPropertiesInputSchema - def _custom_validation(self, gdf: gpd.GeoDataFrame): + def _custom_validation(self, gdf: gpd.GeoDataFrame, check_stats: bool = True): pass From fe7db9a3416709c646953e0c6236a229c556144d Mon Sep 17 00:00:00 2001 From: gabecano4308 Date: Tue, 8 Jul 2025 13:52:11 -0400 Subject: [PATCH 09/18] feat(InputVal): removed opa_id for rco --- data/src/validation/rco_geoms.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/data/src/validation/rco_geoms.py b/data/src/validation/rco_geoms.py index 566748a0..a3f2ced4 100644 --- a/data/src/validation/rco_geoms.py +++ b/data/src/validation/rco_geoms.py @@ -28,12 +28,11 @@ RCOGeomsInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), - "organization_name": pa.Column(str), - "organization_address": pa.Column(str), - "primary_email": pa.Column(str), - "primary_phone": pa.Column(str), + "organization_name": pa.Column(str, nullable=True), + "organization_address": pa.Column(str, nullable=True), + "primary_email": pa.Column(str, nullable=True), + "primary_phone": pa.Column(str, nullable=True), }, checks=row_count_check(RCO_GEOMS_REFERENCE_COUNT, tolerance=0.1), strict=False, From 0e0f424874f917fe8adbd519a282b258e7c13c7d Mon Sep 17 00:00:00 2001 From: gabecano4308 Date: Tue, 8 Jul 2025 14:55:29 -0400 Subject: [PATCH 10/18] feat(InputVal): removed opa_id --- data/src/validation/community_gardens.py | 1 - data/src/validation/phs_properties.py | 1 - 2 files changed, 2 deletions(-) diff --git a/data/src/validation/community_gardens.py b/data/src/validation/community_gardens.py index 47335d3b..3a170b53 100644 --- a/data/src/validation/community_gardens.py +++ b/data/src/validation/community_gardens.py @@ -26,7 +26,6 @@ CommunityGardensInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), "site_name": pa.Column(str, nullable=True), }, diff --git a/data/src/validation/phs_properties.py b/data/src/validation/phs_properties.py index b5598560..05f233e2 100644 --- a/data/src/validation/phs_properties.py +++ b/data/src/validation/phs_properties.py @@ -30,7 +30,6 @@ PHSPropertiesInputSchema = pa.DataFrameSchema( columns={ - "opa_id": pa.Column(pa.String, checks=pa.Check(lambda s: s.dropna() != "")), "geometry": pa.Column("geometry"), "program": pa.Column(str, nullable=True), }, From 95d7e4a211d7834ea5debcd6061304500f9e7abf Mon Sep 17 00:00:00 2001 From: Collum Freedman Date: Tue, 8 Jul 2025 15:55:42 -0400 Subject: [PATCH 11/18] get metadata to save correctly in csv in temp directory --- data/src/config/config.py | 2 +- data/src/data_utils/opa_properties.py | 2 +- data/src/main.py | 20 ++++++++++---------- data/src/test/test_metadata_utils.py | 2 -- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/data/src/config/config.py b/data/src/config/config.py index 61abf9e0..0c843306 100644 --- a/data/src/config/config.py +++ b/data/src/config/config.py @@ -3,7 +3,7 @@ from contextlib import contextmanager from pathlib import Path -FORCE_RELOAD = True +FORCE_RELOAD = False """ During the data load, whether to query the various GIS API services for the data to load. If True, will query the API services and report on data differences. If false will read the cached data.""" diff --git a/data/src/data_utils/opa_properties.py b/data/src/data_utils/opa_properties.py index 6cca87d9..3ba48c7b 100644 --- a/data/src/data_utils/opa_properties.py +++ b/data/src/data_utils/opa_properties.py @@ -142,7 +142,7 @@ def create_standardized_mailing_address_vectorized(gdf: gpd.GeoDataFrame) -> pd. @validate_output(OPAPropertiesOutputValidator) @provide_metadata(current_metadata=current_metadata) def opa_properties( - gdf: gpd.GeoDataFrame = None, + gdf: gpd.GeoDataFrame, ) -> Tuple[gpd.GeoDataFrame, ValidationResult]: """ Loads and processes OPA property data, standardizing addresses and cleaning geometries. diff --git a/data/src/main.py b/data/src/main.py index f04a150f..5baefe0f 100644 --- a/data/src/main.py +++ b/data/src/main.py @@ -3,6 +3,7 @@ import sys import traceback +import geopandas as gpd import pandas as pd from src.classes.data_diff import DiffReport @@ -42,6 +43,7 @@ unsafe_buildings, vacant_properties, ) +from src.metadata.metadata_utils import current_metadata file_manager = FileManager() token = os.getenv("CAGP_SLACK_API_TOKEN") @@ -97,7 +99,7 @@ def main(): pipeline_errors = {} pipeline_logger.info("Loading OPA properties dataset.") - dataset, opa_validation = opa_properties() + dataset, opa_validation = opa_properties(gdf=gpd.GeoDataFrame()) pipeline_logger.info("OPA properties loaded.") # Check for missing zoning values after OPA properties @@ -166,15 +168,13 @@ def main(): # Save metadata try: - # Initialize collected_metadata if it doesn't exist (since services return GeoDataFrame, not FeatureLayer) - if not hasattr(dataset, "collected_metadata"): - dataset.collected_metadata = [] - - if dataset.collected_metadata: - # Create tmp directory if it doesn't exist - os.makedirs("tmp", exist_ok=True) - metadata_df = pd.DataFrame(dataset.collected_metadata) - metadata_df.to_csv("tmp/metadata.csv", index=False) + if current_metadata: + metadata_df = pd.DataFrame(current_metadata) + metadata_file_path = file_manager.get_file_path( + "metadata.csv", load_type=LoadType.TEMP + ) + print(metadata_file_path) + pd.DataFrame(metadata_df).to_csv(metadata_file_path, index=False) else: print("No collected_metadata found in dataset - skipping metadata save") except Exception as e: diff --git a/data/src/test/test_metadata_utils.py b/data/src/test/test_metadata_utils.py index 83007dfb..12115b2c 100644 --- a/data/src/test/test_metadata_utils.py +++ b/data/src/test/test_metadata_utils.py @@ -9,7 +9,6 @@ get_sections_from_docstring, normalize_whitespace, parse_docstring, - provide_metadata, ) # Stub functions with actual docstrings used for parsing tests @@ -150,7 +149,6 @@ def stub_only_args_and_returns(primary_featurelayer): pass -@provide_metadata() @pytest.mark.skip def sample_add_columns(primary_featurelayer): """ From f55309d6692c6e60e12a0dda0cb002ed87ec1f88 Mon Sep 17 00:00:00 2001 From: Collum Freedman Date: Tue, 8 Jul 2025 16:05:48 -0400 Subject: [PATCH 12/18] get tests running and checking formatting --- data/src/test/test_metadata_utils.py | 12 ++++++------ data/test_service.py | 3 +++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/data/src/test/test_metadata_utils.py b/data/src/test/test_metadata_utils.py index 12115b2c..a41556a0 100644 --- a/data/src/test/test_metadata_utils.py +++ b/data/src/test/test_metadata_utils.py @@ -250,7 +250,7 @@ def test_parse_docstring(self): "columns added": [], "source": "", "known issues": "", - "Columns referenced": ["vacant", "ipa_id"], + "columns referenced": ["vacant", "ipa_id"], }, ), ( @@ -263,7 +263,7 @@ def test_parse_docstring(self): "columns added": [], "columns updated": [], "known issues": "", - "Columns referenced": [], + "columns referenced": [], }, ), ( @@ -277,7 +277,7 @@ def test_parse_docstring(self): "columns added": "list_of_12", "columns updated": [], "known issues": "", - "Columns referenced": [], + "columns referenced": [], }, ), ( @@ -300,7 +300,7 @@ def test_parse_docstring(self): "known issues": ( "If the Ersi REST URL is not available the function" # NOTE: because the next line has a colon, only the first line is captured ), - "Columns referenced": [], + "columns referenced": [], }, ), ( @@ -324,7 +324,7 @@ def test_parse_docstring(self): "columns updated": [], "source": "", "known issues": "", - "Columns referenced": [], + "columns referenced": [], }, ), ( @@ -337,7 +337,7 @@ def test_parse_docstring(self): "columns updated": [], "source": "", "known issues": "", - "Columns referenced": [], + "columns referenced": [], }, ), ] diff --git a/data/test_service.py b/data/test_service.py index a6bebd63..af69ace3 100644 --- a/data/test_service.py +++ b/data/test_service.py @@ -7,6 +7,8 @@ import sys +import pytest + from src.classes.loaders import BaseLoader from src.config.config import enable_statistical_summaries @@ -153,6 +155,7 @@ def run_dependencies(dataset, dependencies): return dataset +@pytest.mark.skip def test_service(service_name: str): """Test a specific service with the base OPA properties dataset.""" From 50f337dc2cf9a6aa6164e36246da665ac52ec4e1 Mon Sep 17 00:00:00 2001 From: nlebovits Date: Wed, 9 Jul 2025 14:18:09 -0300 Subject: [PATCH 13/18] chore: update disclaimer to reflect shutdown --- package-lock.json | 5817 ++++++++++-------------- package.json | 2 +- src/app/(content-pages)/page.tsx | 2 + src/components/DataDisclaimerModal.tsx | 43 +- 4 files changed, 2394 insertions(+), 3470 deletions(-) diff --git a/package-lock.json b/package-lock.json index 998fd8a5..24899cff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "react-dom": "18.3.1", "react-icons": "^5.5.0", "react-map-gl": "^8.0.1", - "sharp": "^0.33.4", + "sharp": "^0.33.5", "tailwindcss": "^3.4.6", "typescript": "5.8.2" }, @@ -66,7 +66,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -75,121 +74,32 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, "engines": { "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==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "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==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/runtime": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", - "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "engines": { "node": ">=6.9.0" } @@ -205,9 +115,9 @@ } }, "node_modules/@csstools/cascade-layer-name-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz", - "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", + "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", "dev": true, "funding": [ { @@ -219,13 +129,12 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/color-helpers": { @@ -243,15 +152,14 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" } }, "node_modules/@csstools/css-calc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.2.tgz", - "integrity": "sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", "dev": true, "funding": [ { @@ -263,19 +171,18 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-color-parser": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz", - "integrity": "sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", + "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", "dev": true, "funding": [ { @@ -287,23 +194,22 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "dependencies": { "@csstools/color-helpers": "^5.0.2", - "@csstools/css-calc": "^2.1.2" + "@csstools/css-calc": "^2.1.4" }, "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", "dev": true, "funding": [ { @@ -315,18 +221,17 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", "dev": true, "funding": [ { @@ -338,15 +243,14 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", - "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", "dev": true, "funding": [ { @@ -358,19 +262,18 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/postcss-cascade-layers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", - "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz", + "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==", "dev": true, "funding": [ { @@ -382,7 +285,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0" @@ -395,9 +297,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.8.tgz", - "integrity": "sha512-9dUvP2qpZI6PlGQ/sob+95B3u5u7nkYt9yhZFCC7G9HBRHBxj+QxS/wUlwaMGYW0waf+NIierI8aoDTssEdRYw==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.10.tgz", + "integrity": "sha512-4dY0NBu7NVIpzxZRgh/Q/0GPSz/jLSw0i/u3LTUor0BkQcz/fNhN10mSWBDsL0p9nDb0Ky1PD6/dcGbhACuFTQ==", "dev": true, "funding": [ { @@ -409,12 +311,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -425,9 +326,38 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.8.tgz", - "integrity": "sha512-yuZpgWUzqZWQhEqfvtJufhl28DgO9sBwSbXbf/59gejNuvZcoUTRGQZhzhwF4ccqb53YAGB+u92z9+eSKoB4YA==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.10.tgz", + "integrity": "sha512-P0lIbQW9I4ShE7uBgZRib/lMTf9XMjJkFl/d6w4EMNHu2qvQ6zljJGEcBkw/NsBtq/6q3WrmgxSS8kHtPMkK4Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.0.tgz", + "integrity": "sha512-Z5WhouTyD74dPFPrVE7KydgNS9VvnjB8qcdes9ARpCOItb4jTnm7cHp4FhxCRUoyhabD0WVv43wbkJ4p8hLAlQ==", "dev": true, "funding": [ { @@ -439,12 +369,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -455,9 +384,9 @@ } }, "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", - "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.6.tgz", + "integrity": "sha512-eRjLbOjblXq+byyaedQRSrAejKGNAFued+LcbzT+LCL78fabxHkxYjBbxkroONxHHYu2qxhFK2dBStTLPG3jpQ==", "dev": true, "funding": [ { @@ -469,11 +398,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -484,9 +412,9 @@ } }, "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.7.tgz", - "integrity": "sha512-XTb6Mw0v2qXtQYRW9d9duAjDnoTbBpsngD7sRNLmYDjvwU2ebpIHplyxgOeo6jp/Kr52gkLi5VaK5RDCqzMzZQ==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", + "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", "dev": true, "funding": [ { @@ -498,11 +426,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -526,7 +453,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -539,9 +465,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.8.tgz", - "integrity": "sha512-/K8u9ZyGMGPjmwCSIjgaOLKfic2RIGdFHHes84XW5LnmrvdhOTVxo255NppHi3ROEvoHPW7MplMJgjZK5Q+TxA==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.10.tgz", + "integrity": "sha512-QDGqhJlvFnDlaPAfCYPsnwVA6ze+8hhrwevYWlnUeSjkkZfBpcCO42SaUD8jiLlq7niouyLgvup5lh+f1qessg==", "dev": true, "funding": [ { @@ -553,11 +479,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -567,9 +492,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.8.tgz", - "integrity": "sha512-CoHQ/0UXrvxLovu0ZeW6c3/20hjJ/QRg6lyXm3dZLY/JgvRU6bdbQZF/Du30A4TvowfcgvIHQmP1bNXUxgDrAw==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.10.tgz", + "integrity": "sha512-HHPauB2k7Oits02tKFUeVFEU2ox/H3OQVrP3fSOKDxvloOikSal+3dzlyTZmYsb9FlY9p5EUpBtz0//XBmy+aw==", "dev": true, "funding": [ { @@ -581,12 +506,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -597,9 +521,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.8.tgz", - "integrity": "sha512-LpFKjX6hblpeqyych1cKmk+3FJZ19QmaJtqincySoMkbkG/w2tfbnO5oE6mlnCTXcGUJ0rCEuRHvTqKK0nHYUQ==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.10.tgz", + "integrity": "sha512-nOKKfp14SWcdEQ++S9/4TgRKchooLZL0TUFdun3nI4KPwCjETmhjta1QT4ICQcGVWQTvrsgMM/aLB5We+kMHhQ==", "dev": true, "funding": [ { @@ -611,12 +535,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -627,9 +550,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", - "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.2.tgz", + "integrity": "sha512-lrK2jjyZwh7DbxaNnIUjkeDmU8Y6KyzRBk91ZkI5h8nb1ykEfZrtIVArdIjX4DHMIBGpdHrgP0n4qXDr7OHaKA==", "dev": true, "funding": [ { @@ -641,9 +564,8 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -669,7 +591,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" }, @@ -678,9 +599,9 @@ } }, "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz", - "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz", + "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==", "dev": true, "funding": [ { @@ -692,7 +613,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0" @@ -705,9 +625,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", - "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.9.tgz", + "integrity": "sha512-1tCZH5bla0EAkFAI2r0H33CDnIBeLUaJh1p+hvvsylJ4svsv2wOmJjJn+OXwUZLXef37GYbRIVKX+X+g6m+3CQ==", "dev": true, "funding": [ { @@ -719,11 +639,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -748,7 +667,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" }, @@ -771,7 +689,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" }, @@ -794,7 +711,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" }, @@ -817,7 +733,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -829,9 +744,9 @@ } }, "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz", - "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", + "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", "dev": true, "funding": [ { @@ -843,9 +758,8 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-tokenizer": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.4", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -856,9 +770,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.7.tgz", - "integrity": "sha512-LB6tIP7iBZb5CYv8iRenfBZmbaG3DWNEziOnPjGoQX5P94FBPvvTBy68b/d9NnS5PELKwFmmOYsAEIgEhDPCHA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", + "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", "dev": true, "funding": [ { @@ -870,12 +784,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" }, "engines": { "node": ">=18" @@ -885,9 +798,9 @@ } }, "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz", - "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", + "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", "dev": true, "funding": [ { @@ -899,11 +812,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" }, "engines": { "node": ">=18" @@ -927,7 +839,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -954,7 +865,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -966,9 +876,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.8.tgz", - "integrity": "sha512-+5aPsNWgxohXoYNS1f+Ys0x3Qnfehgygv3qrPyv+Y25G0yX54/WlVB+IXprqBLOXHM1gsVF+QQSjlArhygna0Q==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.10.tgz", + "integrity": "sha512-ZzZUTDd0fgNdhv8UUjGCtObPD8LYxMH+MJsW9xlZaWTV8Ppr4PtxlHYNMmF4vVWGl0T6f8tyWAKjoI6vePSgAg==", "dev": true, "funding": [ { @@ -980,12 +890,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -996,9 +905,9 @@ } }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", - "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.1.0.tgz", + "integrity": "sha512-YrkI9dx8U4R8Sz2EJaoeD9fI7s7kmeEBfmO+UURNeL6lQI7VxF6sBE+rSqdCBn4onwqmxFdBU3lTwyYb/lCmxA==", "dev": true, "funding": [ { @@ -1010,7 +919,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -1022,9 +930,9 @@ } }, "node_modules/@csstools/postcss-random-function": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.3.tgz", - "integrity": "sha512-dbNeEEPHxAwfQJ3duRL5IPpuD77QAHtRl4bAHRs0vOVhVbHrsL7mHnwe0irYjbs9kYwhAHZBQTLBgmvufPuRkA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", + "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", "dev": true, "funding": [ { @@ -1036,11 +944,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -1050,9 +957,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.8.tgz", - "integrity": "sha512-eGE31oLnJDoUysDdjS9MLxNZdtqqSxjDXMdISpLh80QMaYrKs7VINpid34tWQ+iU23Wg5x76qAzf1Q/SLLbZVg==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.10.tgz", + "integrity": "sha512-8+0kQbQGg9yYG8hv0dtEpOMLwB9M+P7PhacgIzVzJpixxV4Eq9AUQtQw8adMmAJU1RBBmIlpmtmm3XTRd/T00g==", "dev": true, "funding": [ { @@ -1064,12 +971,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -1094,7 +1000,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -1106,9 +1011,9 @@ } }, "node_modules/@csstools/postcss-sign-functions": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.2.tgz", - "integrity": "sha512-4EcAvXTUPh7n6UoZZkCzgtCf/wPzMlTNuddcKg7HG8ozfQkUcHsJ2faQKeLmjyKdYPyOUn4YA7yDPf8K/jfIxw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", + "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", "dev": true, "funding": [ { @@ -1120,11 +1025,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -1134,9 +1038,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.7.tgz", - "integrity": "sha512-rdrRCKRnWtj5FyRin0u/gLla7CIvZRw/zMGI1fVJP0Sg/m1WGicjPVHRANL++3HQtsiXKAbPrcPr+VkyGck0IA==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", + "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", "dev": true, "funding": [ { @@ -1148,11 +1052,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -1176,7 +1079,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "@csstools/color-helpers": "^5.0.2", "postcss-value-parser": "^4.2.0" @@ -1189,9 +1091,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.7.tgz", - "integrity": "sha512-qTrZgLju3AV7Djhzuh2Bq/wjFqbcypnk0FhHjxW8DWJQcZLS1HecIus4X2/RLch1ukX7b+YYCdqbEnpIQO5ccg==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", + "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", "dev": true, "funding": [ { @@ -1203,11 +1105,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -1231,7 +1132,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" }, @@ -1239,6 +1139,28 @@ "postcss": "^8.4" } }, + "node_modules/@csstools/selector-resolve-nested": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, "node_modules/@csstools/selector-specificity": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", @@ -1254,7 +1176,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" }, @@ -1277,7 +1198,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" }, @@ -1286,49 +1206,49 @@ } }, "node_modules/@emnapi/core": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", - "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.4.tgz", + "integrity": "sha512-A9CnAbC6ARNMKcIcrQwq6HeHCjpcBZ5wSx4U01WXCqEKlrzB9F9315WDNHkrs2xbx7YjjSxbUYxuN6EQzpcY2g==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.0.1", + "@emnapi/wasi-threads": "1.0.3", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", - "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", - "license": "MIT", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.4.tgz", + "integrity": "sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", - "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.3.tgz", + "integrity": "sha512-8K5IFFsQqF9wQNJptGbS6FNKgUTsSRYnTqNCG1vPP8jFdjSv18n2mQfJpkt2Oibo9iBEzcDnDxNwKTzC7svlJw==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -1338,17 +1258,15 @@ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, - "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", @@ -1358,46 +1276,20 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/config-array/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@eslint/config-helpers": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", - "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" }, @@ -1410,7 +1302,6 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1429,38 +1320,16 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@eslint/js": { - "version": "9.24.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz", - "integrity": "sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==", + "version": "9.30.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.30.1.tgz", + "integrity": "sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { @@ -1468,81 +1337,85 @@ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.3.tgz", + "integrity": "sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.12.0", + "@eslint/core": "^0.15.1", "levn": "^0.4.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@formatjs/ecma402-abstract": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.3.tgz", - "integrity": "sha512-pJT1OkhplSmvvr6i3CWTPvC/FGC06MbN5TNBfRO6Ox62AEz90eMq+dVvtX9Bl3jxCEkS0tATzDarRZuOLw7oFg==", - "license": "MIT", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.4.tgz", + "integrity": "sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==", "dependencies": { - "@formatjs/fast-memoize": "2.2.6", - "@formatjs/intl-localematcher": "0.6.0", - "decimal.js": "10", - "tslib": "2" + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/intl-localematcher": "0.6.1", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/fast-memoize": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.6.tgz", - "integrity": "sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw==", - "license": "MIT", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", "dependencies": { - "tslib": "2" + "tslib": "^2.8.0" } }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.1.tgz", - "integrity": "sha512-o0AhSNaOfKoic0Sn1GkFCK4MxdRsw7mPJ5/rBpIqdvcC7MIuyUSW8WChUEvrK78HhNpYOgqCQbINxCTumJLzZA==", - "license": "MIT", + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.2.tgz", + "integrity": "sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.3", - "@formatjs/icu-skeleton-parser": "1.8.13", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "@formatjs/icu-skeleton-parser": "1.8.14", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.13", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.13.tgz", - "integrity": "sha512-N/LIdTvVc1TpJmMt2jVg0Fr1F7Q1qJPdZSCs19unMskCmVQ/sa0H9L8PWt13vq+gLdLg1+pPsvBLydL1Apahjg==", - "license": "MIT", + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.14.tgz", + "integrity": "sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.3", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.0.tgz", - "integrity": "sha512-4rB4g+3hESy1bHSBG3tDFaMY2CH67iT7yne1e+0CLTsGLDcmoEWWpJjjpWVaYgYfYuohIRuo0E+N536gd2ZHZA==", - "license": "MIT", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz", + "integrity": "sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==", "dependencies": { - "tslib": "2" + "tslib": "^2.8.0" } }, "node_modules/@heroicons/react": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.2.0.tgz", "integrity": "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==", - "license": "MIT", "peerDependencies": { "react": ">= 16 || ^19.0.0-rc" } @@ -1552,7 +1425,6 @@ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -1562,7 +1434,6 @@ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" @@ -1576,7 +1447,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -1599,11 +1469,10 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -1958,35 +1827,31 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.6.0.tgz", "integrity": "sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==", - "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@internationalized/message": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.6.tgz", - "integrity": "sha512-JxbK3iAcTIeNr1p0WIFg/wQJjIzJt9l/2KNY/48vXV7GRGZSv3zMxJsce008fZclk2cDC8y0Ig3odceHO7EfNQ==", - "license": "Apache-2.0", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.8.tgz", + "integrity": "sha512-Rwk3j/TlYZhn3HQ6PyXUV0XP9Uv42jqZGNegt0BXlxjE6G3+LwHjbQZAGHhCnCPdaA6Tvd3ma/7QzLlLkJxAWA==", "dependencies": { "@swc/helpers": "^0.5.0", "intl-messageformat": "^10.1.0" } }, "node_modules/@internationalized/number": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.0.tgz", - "integrity": "sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==", - "license": "Apache-2.0", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.3.tgz", + "integrity": "sha512-p+Zh1sb6EfrfVaS86jlHGQ9HA66fJhV9x5LiE5vCbZtXEHAuhcmUZUdZ4WrFpUBfNalr2OkAJI5AcKEQF+Lebw==", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@internationalized/string": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.5.tgz", - "integrity": "sha512-rKs71Zvl2OKOHM+mzAFMIyqR5hI1d1O6BBkMK2/lkfg3fkmVh9Eeg0awcA8W2WqYqDOv6a86DIOlFpggwLtbuw==", - "license": "Apache-2.0", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.7.tgz", + "integrity": "sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==", "dependencies": { "@swc/helpers": "^0.5.0" } @@ -1995,7 +1860,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2008,23 +1872,26 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", + "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==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "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==", - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2036,48 +1903,31 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "license": "MIT", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@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==", - "license": "MIT", - "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==", - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2114,13 +1964,6 @@ "node": ">= 0.6" } }, - "node_modules/@mapbox/mapbox-gl-supported": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-3.0.0.tgz", - "integrity": "sha512-2XghOwu16ZwPJLOFVuIOaLbN0iKMn867evzXFyf0P22dqugezfJwLmdanAgU25ITvz1TvOfVP4jsDImlDJzcWg==", - "optional": true, - "peer": true - }, "node_modules/@mapbox/point-geometry": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", @@ -2153,10 +1996,9 @@ } }, "node_modules/@maplibre/maplibre-gl-style-spec": { - "version": "23.1.0", - "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-23.1.0.tgz", - "integrity": "sha512-R6/ihEuC5KRexmKIYkWqUv84Gm+/QwsOUgHyt1yy2XqCdGdLvlBWVWIIeTZWN4NGdwmY6xDzdSGU2R9oBLNg2w==", - "license": "ISC", + "version": "23.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-23.3.0.tgz", + "integrity": "sha512-IGJtuBbaGzOUgODdBRg66p8stnwj9iDXkgbYKoYcNiiQmaez5WVRfXm4b03MCDwmZyX93csbfHFWEJJYHnn5oA==", "dependencies": { "@mapbox/jsonlint-lines-primitives": "~2.0.2", "@mapbox/unitbezier": "^0.0.1", @@ -2173,19 +2015,17 @@ } }, "node_modules/@maptiler/client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@maptiler/client/-/client-2.2.0.tgz", - "integrity": "sha512-kV4dSJK2PLfRLnl437CQgDJBboHcf+Z7FWkSoPW3ANca/csoYQQOwz42BPNkda/98OT+CviIueeQdNUyeEL1OQ==", - "license": "BSD-3-Clause", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@maptiler/client/-/client-2.4.0.tgz", + "integrity": "sha512-94g2zmGBfgSIY0iJhrANDUfANTH7G/NNZ8mScLLEE+LZfAtaehQ4cvd/EwtuiW3x7ANy92Vzh9bVaKr6xQTSmA==", "dependencies": { "quick-lru": "^7.0.0" } }, "node_modules/@maptiler/geocoding-control": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@maptiler/geocoding-control/-/geocoding-control-2.1.6.tgz", - "integrity": "sha512-2XR70DneLibrpb5wPC8Ht+HwHok7yhC9MGji9ZdEY9r+64qnGCdHodPZcxf+l0p3FqRyTeFZeo+028wmTOKpoQ==", - "license": "BSD-3-Clause", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@maptiler/geocoding-control/-/geocoding-control-2.1.7.tgz", + "integrity": "sha512-6bKoeoLxaL/b3sOcW/ryoS7lvdC6iA8Vupfdkp2ZJvoH8k5jgpEH8gi/XNEoHXFD7TQCmy4H4TKJTkVOGcX8/g==", "dependencies": { "@turf/bbox": "^7.2.0", "@turf/clone": "^7.2.0", @@ -2224,44 +2064,41 @@ } }, "node_modules/@maptiler/sdk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@maptiler/sdk/-/sdk-3.0.1.tgz", - "integrity": "sha512-81CeL/brKTY0Qp1SPd6aexaXUpFAmsoLaPFi62zugdG/hUYuavBupLirF+qnOJOW6j+MWFWLdsUFRaORtRrKzQ==", - "license": "BSD-3-Clause", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@maptiler/sdk/-/sdk-3.5.0.tgz", + "integrity": "sha512-Z/OV9+iEGBc9eac2HVsbbV36645xaROIjHaOj7D/QGM3p1Z52A+//Uls55WTNF8/Y2iBBIQxWAb7zeKqtXAArg==", "dependencies": { - "@maplibre/maplibre-gl-style-spec": "^23.0.0", - "@maptiler/client": "^2.2.0", + "@maplibre/maplibre-gl-style-spec": "~23.3.0", + "@maptiler/client": "~2.4.0", "events": "^3.3.0", + "gl-matrix": "^3.4.3", "js-base64": "^3.7.7", - "maplibre-gl": "^5.0.1", + "maplibre-gl": "~5.6.0", "uuid": "^11.0.5" } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz", - "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==", + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz", + "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.3.1", - "@emnapi/runtime": "^1.3.1", + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.9.0" } }, "node_modules/@next/env": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.26.tgz", - "integrity": "sha512-vO//GJ/YBco+H7xdQhzJxF7ub3SUwft76jwaeOyVVQFHCi5DCnkP16WHB+JBylo4vOKPoZBlR94Z8xBxNBdNJA==", - "license": "MIT" + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.30.tgz", + "integrity": "sha512-KBiBKrDY6kxTQWGzKjQB7QirL3PiiOkV7KW98leHFjtVRKtft76Ra5qSA/SL75xT44dp6hOcqiiJ6iievLOYug==" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.3.tgz", - "integrity": "sha512-eNSOIMJtjs+dp4Ms1tB1PPPJUQHP3uZK+OQ7iFY9qXpGO6ojT6imCL+KcUOqE/GXGidWbBZJzYdgAdPHqeCEPA==", + "version": "15.3.5", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.3.5.tgz", + "integrity": "sha512-BZwWPGfp9po/rAnJcwUBaM+yT/+yTWIkWdyDwc74G9jcfTrNrmsHe+hXHljV066YNdVs8cxROxX5IgMQGX190w==", "dev": true, - "license": "MIT", "dependencies": { "fast-glob": "3.3.1" } @@ -2271,7 +2108,6 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2288,7 +2124,6 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2297,9 +2132,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.26.tgz", - "integrity": "sha512-zDJY8gsKEseGAxG+C2hTMT0w9Nk9N1Sk1qV7vXYz9MEiyRoF5ogQX2+vplyUMIfygnjn9/A04I6yrUTRTuRiyQ==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.30.tgz", + "integrity": "sha512-EAqfOTb3bTGh9+ewpO/jC59uACadRHM6TSA9DdxJB/6gxOpyV+zrbqeXiFTDy9uV6bmipFDkfpAskeaDcO+7/g==", "cpu": [ "arm64" ], @@ -2312,9 +2147,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.26.tgz", - "integrity": "sha512-U0adH5ryLfmTDkahLwG9sUQG2L0a9rYux8crQeC92rPhi3jGQEY47nByQHrVrt3prZigadwj/2HZ1LUUimuSbg==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.30.tgz", + "integrity": "sha512-TyO7Wz1IKE2kGv8dwQ0bmPL3s44EKVencOqwIY69myoS3rdpO1NPg5xPM5ymKu7nfX4oYJrpMxv8G9iqLsnL4A==", "cpu": [ "x64" ], @@ -2327,9 +2162,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.26.tgz", - "integrity": "sha512-SINMl1I7UhfHGM7SoRiw0AbwnLEMUnJ/3XXVmhyptzriHbWvPPbbm0OEVG24uUKhuS1t0nvN/DBvm5kz6ZIqpg==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.30.tgz", + "integrity": "sha512-I5lg1fgPJ7I5dk6mr3qCH1hJYKJu1FsfKSiTKoYwcuUf53HWTrEkwmMI0t5ojFKeA6Vu+SfT2zVy5NS0QLXV4Q==", "cpu": [ "arm64" ], @@ -2342,9 +2177,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.26.tgz", - "integrity": "sha512-s6JaezoyJK2DxrwHWxLWtJKlqKqTdi/zaYigDXUJ/gmx/72CrzdVZfMvUc6VqnZ7YEvRijvYo+0o4Z9DencduA==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.30.tgz", + "integrity": "sha512-8GkNA+sLclQyxgzCDs2/2GSwBc92QLMrmYAmoP2xehe5MUKBLB2cgo34Yu242L1siSkwQkiV4YLdCnjwc/Micw==", "cpu": [ "arm64" ], @@ -2357,9 +2192,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.26.tgz", - "integrity": "sha512-FEXeUQi8/pLr/XI0hKbe0tgbLmHFRhgXOUiPScz2hk0hSmbGiU8aUqVslj/6C6KA38RzXnWoJXo4FMo6aBxjzg==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.30.tgz", + "integrity": "sha512-8Ly7okjssLuBoe8qaRCcjGtcMsv79hwzn/63wNeIkzJVFVX06h5S737XNr7DZwlsbTBDOyI6qbL2BJB5n6TV/w==", "cpu": [ "x64" ], @@ -2372,9 +2207,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.26.tgz", - "integrity": "sha512-BUsomaO4d2DuXhXhgQCVt2jjX4B4/Thts8nDoIruEJkhE5ifeQFtvW5c9JkdOtYvE5p2G0hcwQ0UbRaQmQwaVg==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.30.tgz", + "integrity": "sha512-dBmV1lLNeX4mR7uI7KNVHsGQU+OgTG5RGFPi3tBJpsKPvOPtg9poyav/BYWrB3GPQL4dW5YGGgalwZ79WukbKQ==", "cpu": [ "x64" ], @@ -2387,9 +2222,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.26.tgz", - "integrity": "sha512-5auwsMVzT7wbB2CZXQxDctpWbdEnEW/e66DyXO1DcgHxIyhP06awu+rHKshZE+lPLIGiwtjo7bsyeuubewwxMw==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.30.tgz", + "integrity": "sha512-6MMHi2Qc1Gkq+4YLXAgbYslE1f9zMGBikKMdmQRHXjkGPot1JY3n5/Qrbg40Uvbi8//wYnydPnyvNhI1DMUW1g==", "cpu": [ "arm64" ], @@ -2402,9 +2237,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.26.tgz", - "integrity": "sha512-GQWg/Vbz9zUGi9X80lOeGsz1rMH/MtFO/XqigDznhhhTfDlDoynCM6982mPCbSlxJ/aveZcKtTlwfAjwhyxDpg==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.30.tgz", + "integrity": "sha512-pVZMnFok5qEX4RT59mK2hEVtJX+XFfak+/rjHpyFh7juiT52r177bfFKhnlafm0UOSldhXjj32b+LZIOdswGTg==", "cpu": [ "ia32" ], @@ -2417,9 +2252,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.26.tgz", - "integrity": "sha512-2rdB3T1/Gp7bv1eQTTm9d1Y1sv9UuJ2LAwOE0Pe2prHKe32UNscj7YS13fRB37d0GAiGNR+Y7ZcW8YjDI8Ns0w==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.30.tgz", + "integrity": "sha512-4KCo8hMZXMjpTzs3HOqOGYYwAXymXIy7PEPAXNEcEOyKqkjiDlECumrWziy+JEF0Oi4ILHGxzgQ3YiMGG2t/Lg==", "cpu": [ "x64" ], @@ -2436,7 +2271,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/accordion/-/accordion-2.2.7.tgz", "integrity": "sha512-jdobOwUxSi617m+LpxHFzg64UhDuOfDJI2CMk3MP+b2WBJ7SNW4hmN2NW5Scx5JiY+kyBGmlxJ4Y++jZpZgQjQ==", "deprecated": "This package has been deprecated. Please use @heroui/accordion instead.", - "license": "MIT", "dependencies": { "@nextui-org/aria-utils": "2.2.7", "@nextui-org/divider": "2.2.5", @@ -2467,7 +2301,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/alert/-/alert-2.2.9.tgz", "integrity": "sha512-SjMZewEqknx/jqmMcyQdbeo6RFg40+A3b1lGjnj/fdkiJozQoTesiOslzDsacqiSgvso2F+8u1emC2tFBAU3hw==", "deprecated": "This package has been deprecated. Please use @heroui/alert instead.", - "license": "MIT", "dependencies": { "@nextui-org/button": "2.2.9", "@nextui-org/react-utils": "2.1.3", @@ -2487,7 +2320,6 @@ "version": "2.2.7", "resolved": "https://registry.npmjs.org/@nextui-org/aria-utils/-/aria-utils-2.2.7.tgz", "integrity": "sha512-QgMZ8fii6BCI/+ZIkgXgkm/gMNQ92pQJn83q90fBT6DF+6j4hsCpJwLNCF5mIJkX/cQ/4bHDsDaj7w1OzkhQNg==", - "license": "MIT", "dependencies": { "@nextui-org/react-rsc-utils": "2.1.1", "@nextui-org/shared-utils": "2.1.2", @@ -2508,7 +2340,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/autocomplete/-/autocomplete-2.3.9.tgz", "integrity": "sha512-1AizOvL8lERoWjm8WiA0NPJWB3h0gqYlbV/qGZeacac5356hb8cNzWUlxGzr9bNkhn9slIoEUyGMgtYeKq7ptg==", "deprecated": "This package has been deprecated. Please use @heroui/autocomplete instead.", - "license": "MIT", "dependencies": { "@nextui-org/aria-utils": "2.2.7", "@nextui-org/button": "2.2.9", @@ -2546,7 +2377,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/avatar/-/avatar-2.2.6.tgz", "integrity": "sha512-QRNCAMXnSZrFJYKo78lzRPiAPRq5pn1LIHUVvX/mCRiTvbu1FXrMakAvOWz/n1X1mLndnrfQMRNgmtC8YlHIdg==", "deprecated": "This package has been deprecated. Please use @heroui/avatar instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -2567,7 +2397,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/badge/-/badge-2.2.5.tgz", "integrity": "sha512-8pLbuY+RVCzI/00CzNudc86BiuXByPFz2yHh00djKvZAXbT0lfjvswClJxSC2FjUXlod+NtE+eHmlhSMo3gmpw==", "deprecated": "This package has been deprecated. Please use @heroui/badge instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2" @@ -2584,7 +2413,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/breadcrumbs/-/breadcrumbs-2.2.6.tgz", "integrity": "sha512-TlAUSiIClmm02tJqOvtwySpKDOENduXCXkKzCbmSaqEFhziHnhyE0eM8IVEprBoK6z1VP+sUrX6C2gZ871KUSw==", "deprecated": "This package has been deprecated. Please use @heroui/breadcrumbs instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-icons": "2.1.1", @@ -2607,7 +2435,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/button/-/button-2.2.9.tgz", "integrity": "sha512-RrfjAZHoc6nmaqoLj40M0Qj3tuDdv2BMGCgggyWklOi6lKwtOaADPvxEorDwY3GnN54Xej+9SWtUwE8Oc3SnOg==", "deprecated": "This package has been deprecated. Please use @heroui/button instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/ripple": "2.2.7", @@ -2634,7 +2461,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/calendar/-/calendar-2.2.9.tgz", "integrity": "sha512-tx1401HLnwadoDHNkmEIZNeAw9uYW6KsgIRRQnXTNVstBXdMmPWjoMBj8fkQqF55+U58k6a+w3N4tTpgRGOpaQ==", "deprecated": "This package has been deprecated. Please use @heroui/calendar instead.", - "license": "MIT", "dependencies": { "@internationalized/date": "3.6.0", "@nextui-org/button": "2.2.9", @@ -2671,7 +2497,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/card/-/card-2.2.9.tgz", "integrity": "sha512-Ltvb5Uy4wwkBJj3QvVQmoB6PwLYUNSoWAFo2xxu7LUHKWcETYI0YbUIuwL2nFU2xfJYeBTGjXGQO1ffBsowrtQ==", "deprecated": "This package has been deprecated. Please use @heroui/card instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/ripple": "2.2.7", @@ -2696,7 +2521,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/checkbox/-/checkbox-2.3.8.tgz", "integrity": "sha512-T5+AhzQfbg53qZnPn5rgMcJ7T5rnvSGYTx17wHWtdF9Q4QflZOmLGoxqoTWbTVpM4XzUUPyi7KVSKZScWdBDAA==", "deprecated": "This package has been deprecated. Please use @heroui/checkbox instead.", - "license": "MIT", "dependencies": { "@nextui-org/form": "2.1.8", "@nextui-org/react-utils": "2.1.3", @@ -2725,7 +2549,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/chip/-/chip-2.2.6.tgz", "integrity": "sha512-HrSYagbrD4u4nblsNMIu7WGnDj9A8YnYCt30tasJmNSyydUVHFkxKOc3S8k+VU3BHPxeENxeBT7w0OlYoKbFIQ==", "deprecated": "This package has been deprecated. Please use @heroui/chip instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-icons": "2.1.1", @@ -2747,7 +2570,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/code/-/code-2.2.6.tgz", "integrity": "sha512-8qvAywIKAVh1thy/YHNwqH2xjTcwPiOWwNdKqvJMSk0CNtLHYJmDK8i2vmKZTM3zfB08Q/G94H0Wf+YsyrZdDg==", "deprecated": "This package has been deprecated. Please use @heroui/code instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -2764,7 +2586,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/date-input/-/date-input-2.3.8.tgz", "integrity": "sha512-phj0Y8F/GpsKjKSiratFwh7HDzmMsIf6G2L2ljgWqA79PvP+RYf/ogEfaMIq1knF8OlssMo5nsFFJNsNB+xKGg==", "deprecated": "This package has been deprecated. Please use @heroui/date-input instead.", - "license": "MIT", "dependencies": { "@internationalized/date": "3.6.0", "@nextui-org/form": "2.1.8", @@ -2789,7 +2610,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/date-picker/-/date-picker-2.3.9.tgz", "integrity": "sha512-RzdVTl/tulTyE5fwGkQfn0is5hsTkPPRJFJZXMqYeci85uhpD+bCreWnTXrGFIXcqUo0ZBJWx3EdtBJZnGp4xQ==", "deprecated": "This package has been deprecated. Please use @heroui/date-picker instead.", - "license": "MIT", "dependencies": { "@internationalized/date": "3.6.0", "@nextui-org/aria-utils": "2.2.7", @@ -2823,7 +2643,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/divider/-/divider-2.2.5.tgz", "integrity": "sha512-OB8b3CU4nQ5ARIGL48izhzrAHR0mnwws+Kd5LqRCZ/1R9uRMqsq7L0gpG9FkuV2jf2FuA7xa/GLOLKbIl4CEww==", "deprecated": "This package has been deprecated. Please use @heroui/divider instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-rsc-utils": "2.1.1", "@nextui-org/shared-utils": "2.1.2", @@ -2840,7 +2659,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nextui-org/dom-animation/-/dom-animation-2.1.1.tgz", "integrity": "sha512-xLrVNf1EV9zyyZjk6j3RptOvnga1WUCbMpDgJLQHp+oYwxTfBy0SkXHuN5pRdcR0XpR/IqRBDIobMdZI0iyQyg==", - "license": "MIT", "peerDependencies": { "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1" } @@ -2850,7 +2668,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/drawer/-/drawer-2.2.7.tgz", "integrity": "sha512-a1Sr3sSjOZD0SiXDYSySKkOelTyCYExPvUsIckzjF5A3TNlBw4KFKnJzaXvabC3SNRy6/Ocq7oqz6VRv37wxQg==", "deprecated": "This package has been deprecated. Please use @heroui/drawer instead.", - "license": "MIT", "dependencies": { "@nextui-org/framer-utils": "2.1.6", "@nextui-org/modal": "2.2.7", @@ -2869,7 +2686,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/dropdown/-/dropdown-2.3.9.tgz", "integrity": "sha512-ElZxiP+nG0CKC+tm6LMZX42cRWXQ0LLjWBZXymupPsEH3XcQpCF9GWb9efJ2hh+qGROg7i0bnFH7P0GTyCyNBA==", "deprecated": "This package has been deprecated. Please use @heroui/dropdown instead.", - "license": "MIT", "dependencies": { "@nextui-org/aria-utils": "2.2.7", "@nextui-org/menu": "2.2.9", @@ -2895,7 +2711,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/form/-/form-2.1.8.tgz", "integrity": "sha512-Xn/dUO5zDG7zukbql1MDYh4Xwe1vnIVMRTHgckbkBtXXVNqgoTU09TTfy8WOJ0pMDX4GrZSBAZ86o37O+IHbaA==", "deprecated": "This package has been deprecated. Please use @heroui/form instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -2917,7 +2732,6 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/@nextui-org/framer-utils/-/framer-utils-2.1.6.tgz", "integrity": "sha512-b+BxKFox8j9rNAaL+CRe2ZMb1/SKjz9Kl2eLjDSsq3q82K/Hg7lEjlpgE8cu41wIGjH1unQxtP+btiJgl067Ow==", - "license": "MIT", "dependencies": { "@nextui-org/shared-utils": "2.1.2", "@nextui-org/system": "2.4.6", @@ -2934,7 +2748,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/image/-/image-2.2.5.tgz", "integrity": "sha512-A6DnEqG+/cMrfvqFKKJIdGD7gD88tVkqGxRkfysVMJJR96sDIYCJlP1jsAEtYKh4PfhmtJWclUvY/x9fMw0H1w==", "deprecated": "This package has been deprecated. Please use @heroui/image instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -2952,7 +2765,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/input/-/input-2.4.8.tgz", "integrity": "sha512-wfkjyl7vRqT3HDXeybhfZ+IAz+Z02U5EiuWPpc9NbdwhJ/LpDRDa6fYcTDr/6j6MiyrEZsM24CtZZKAKBVBquQ==", "deprecated": "This package has been deprecated. Please use @heroui/input instead.", - "license": "MIT", "dependencies": { "@nextui-org/form": "2.1.8", "@nextui-org/react-utils": "2.1.3", @@ -2980,7 +2792,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/input-otp/-/input-otp-2.1.8.tgz", "integrity": "sha512-J5Pz0aSfWD+2cSgLTKQamCNF/qHILIj8L0lY3t1R/sgK1ApN3kDNcUGnVm6EDh+dOXITKpCfnsCQw834nxZhsg==", "deprecated": "This package has been deprecated. Please use @heroui/input-otp instead.", - "license": "MIT", "dependencies": { "@nextui-org/form": "2.1.8", "@nextui-org/react-utils": "2.1.3", @@ -3005,7 +2816,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/kbd/-/kbd-2.2.6.tgz", "integrity": "sha512-IwzvvwYLMbhyqX5PjEZyDBO4iNEHY6Nek4ZrVR+Z2dOSj/oZXHWiabNDrvOcGKgUBE6xc95Fi1jVubE9b5ueuA==", "deprecated": "This package has been deprecated. Please use @heroui/kbd instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -3023,7 +2833,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/link/-/link-2.2.7.tgz", "integrity": "sha512-SAeBBCUtdaKtHfZgRD6OH0De/+cKUEuThiErSuFW+sNm/y8m3cUhQH8UqVBPu6HwmqVTEjvZzp/4uhG6lcSZjA==", "deprecated": "This package has been deprecated. Please use @heroui/link instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-icons": "2.1.1", @@ -3046,7 +2855,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/listbox/-/listbox-2.3.9.tgz", "integrity": "sha512-iGJ8xwkXf8K7chk1iZgC05KGpHiWJXY1dnV7ytIJ7yu4BbsRIHb0QknK5j8A74YeGpouJQ9+jsmCERmySxlqlg==", "deprecated": "This package has been deprecated. Please use @heroui/listbox instead.", - "license": "MIT", "dependencies": { "@nextui-org/aria-utils": "2.2.7", "@nextui-org/divider": "2.2.5", @@ -3074,7 +2882,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/menu/-/menu-2.2.9.tgz", "integrity": "sha512-Fztvi3GRYl5a5FO/0LRzcAdnw8Yeq6NX8yLQh8XmwkWCrH0S6nTn69CP/j+EMWQR6G2UK5AbNDmX1Sx9aTQdHQ==", "deprecated": "This package has been deprecated. Please use @heroui/menu instead.", - "license": "MIT", "dependencies": { "@nextui-org/aria-utils": "2.2.7", "@nextui-org/divider": "2.2.5", @@ -3102,7 +2909,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/modal/-/modal-2.2.7.tgz", "integrity": "sha512-xxk6B+5s8//qYI4waLjdWoJFwR6Zqym/VHFKkuZAMpNABgTB0FCK022iUdOIP2F2epG69un8zJF0qwMBJF8XAA==", "deprecated": "This package has been deprecated. Please use @heroui/modal instead.", - "license": "MIT", "dependencies": { "@nextui-org/dom-animation": "2.1.1", "@nextui-org/framer-utils": "2.1.6", @@ -3134,7 +2940,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/navbar/-/navbar-2.2.8.tgz", "integrity": "sha512-XutioQ75jonZk6TBtjFdV6N3eLe8y85tetjOdOg6X3mKTPZlQuBb+rtb6pVNOOvcuQ7zKigWIq2ammvF9VNKaQ==", "deprecated": "This package has been deprecated. Please use @heroui/navbar instead.", - "license": "MIT", "dependencies": { "@nextui-org/dom-animation": "2.1.1", "@nextui-org/framer-utils": "2.1.6", @@ -3162,7 +2967,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/pagination/-/pagination-2.2.8.tgz", "integrity": "sha512-sZcriQq/ssOItX3r54tysnItjcb7dw392BNulJxrMMXi6FA6sUGImpJF1jsbtYJvaq346IoZvMrcrba8PXEk0g==", "deprecated": "This package has been deprecated. Please use @heroui/pagination instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-icons": "2.1.1", @@ -3187,7 +2991,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/popover/-/popover-2.3.9.tgz", "integrity": "sha512-glLYKlFJ4EkFrNMBC3ediFPpQwKzaFlzKoaMum2G3HUtmC4d1HLTSOQJOd2scUzZxD3/K9dp1XHYbEcCnCrYpQ==", "deprecated": "This package has been deprecated. Please use @heroui/popover instead.", - "license": "MIT", "dependencies": { "@nextui-org/aria-utils": "2.2.7", "@nextui-org/button": "2.2.9", @@ -3219,7 +3022,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/progress/-/progress-2.2.6.tgz", "integrity": "sha512-FTicOncNcXKpt9avxQWWlVATvhABKVMBgsB81SozFXRcn8QsFntjdMp0l3688DJKBY0GxT+yl/S/by0TwY1Z1A==", "deprecated": "This package has been deprecated. Please use @heroui/progress instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -3241,7 +3043,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/radio/-/radio-2.3.8.tgz", "integrity": "sha512-ntwjpQ/WT8zQ3Fw5io65VeH2Q68LOgZ4lII7a6x35NDa7Eda1vlYroMAw/vxK8iyZYlUBSJdsoj2FU/10hBPmg==", "deprecated": "This package has been deprecated. Please use @heroui/radio instead.", - "license": "MIT", "dependencies": { "@nextui-org/form": "2.1.8", "@nextui-org/react-utils": "2.1.3", @@ -3267,7 +3068,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/react/-/react-2.6.11.tgz", "integrity": "sha512-MOkBMWI+1nHB6A8YLXakdXrNRFvy5whjFJB1FthwqbP8pVEeksS1e29AbfEFkrzLc5zjN7i24wGNSJ8DKMt9WQ==", "deprecated": "This package has been deprecated. Please use @heroui/react instead.", - "license": "MIT", "dependencies": { "@nextui-org/accordion": "2.2.7", "@nextui-org/alert": "2.2.9", @@ -3328,7 +3128,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.1.1.tgz", "integrity": "sha512-9uKH1XkeomTGaswqlGKt0V0ooUev8mPXtKJolR+6MnpvBUrkqngw1gUGF0bq/EcCCkks2+VOHXZqFT6x9hGkQQ==", - "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } @@ -3337,7 +3136,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/@nextui-org/react-utils/-/react-utils-2.1.3.tgz", "integrity": "sha512-o61fOS+S8p3KtgLLN7ub5gR0y7l517l9eZXJabUdnVcZzZjTqEijWjzjIIIyAtYAlL4d+WTXEOROuc32sCmbqw==", - "license": "MIT", "dependencies": { "@nextui-org/react-rsc-utils": "2.1.1", "@nextui-org/shared-utils": "2.1.2" @@ -3351,7 +3149,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/ripple/-/ripple-2.2.7.tgz", "integrity": "sha512-cphzlvCjdROh1JWQhO/wAsmBdlU9kv/UA2YRQS4viaWcA3zO+qOZVZ9/YZMan6LBlOLENCaE9CtV2qlzFtVpEg==", "deprecated": "This package has been deprecated. Please use @heroui/ripple instead.", - "license": "MIT", "dependencies": { "@nextui-org/dom-animation": "2.1.1", "@nextui-org/react-utils": "2.1.3", @@ -3370,7 +3167,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/scroll-shadow/-/scroll-shadow-2.3.5.tgz", "integrity": "sha512-2H5qro6RHcWo6ZfcG2hHZHsR1LrV3FMZP5Lkc9ZwJdWPg4dXY4erGRE4U+B7me6efj5tBOFmZkIpxVUyMBLtZg==", "deprecated": "This package has been deprecated. Please use @heroui/scroll-shadow instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -3388,7 +3184,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/select/-/select-2.4.9.tgz", "integrity": "sha512-R8HHKDH7dA4Dv73Pl80X7qfqdyl+Fw4gi/9bmyby0QJG8LN2zu51xyjjKphmWVkAiE3O35BRVw7vMptHnWFUgQ==", "deprecated": "This package has been deprecated. Please use @heroui/select instead.", - "license": "MIT", "dependencies": { "@nextui-org/aria-utils": "2.2.7", "@nextui-org/form": "2.1.8", @@ -3422,7 +3217,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nextui-org/shared-icons/-/shared-icons-2.1.1.tgz", "integrity": "sha512-mkiTpFJnCzB2M8Dl7IwXVzDKKq9ZW2WC0DaQRs1eWgqboRCP8DDde+MJZq331hC7pfH8BC/4rxXsKECrOUUwCg==", - "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } @@ -3430,15 +3224,13 @@ "node_modules/@nextui-org/shared-utils": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@nextui-org/shared-utils/-/shared-utils-2.1.2.tgz", - "integrity": "sha512-5n0D+AGB4P9lMD1TxwtdRSuSY0cWgyXKO9mMU11Xl3zoHNiAz/SbCSTc4VBJdQJ7Y3qgNXvZICzf08+bnjjqqA==", - "license": "MIT" + "integrity": "sha512-5n0D+AGB4P9lMD1TxwtdRSuSY0cWgyXKO9mMU11Xl3zoHNiAz/SbCSTc4VBJdQJ7Y3qgNXvZICzf08+bnjjqqA==" }, "node_modules/@nextui-org/skeleton": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/@nextui-org/skeleton/-/skeleton-2.2.5.tgz", "integrity": "sha512-CK1O9dqS0xPW3o1SIekEEOjSosJkXNzU0Zd538Nn1XhY1RjNuIPchpY9Pv5YZr2QSKy0zkwPQt/NalwErke0Jg==", "deprecated": "This package has been deprecated. Please use @heroui/skeleton instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2" @@ -3455,7 +3247,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/slider/-/slider-2.4.7.tgz", "integrity": "sha512-/RnjnmAPvssebhtElG+ZI8CCot2dEBcEjw7LrHfmVnJOd5jgceMtnXhdJSppQuLvcC4fPpkhd6dY86IezOZwfw==", "deprecated": "This package has been deprecated. Please use @heroui/slider instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -3480,7 +3271,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/snippet/-/snippet-2.2.10.tgz", "integrity": "sha512-mVjf8muq4TX2PlESN7EeHgFmjuz7PNhrKFP+fb8Lj9J6wvUIUDm5ENv9bs72cRsK+zse6OUNE4JF1er6HllKug==", "deprecated": "This package has been deprecated. Please use @heroui/snippet instead.", - "license": "MIT", "dependencies": { "@nextui-org/button": "2.2.9", "@nextui-org/react-utils": "2.1.3", @@ -3504,7 +3294,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/spacer/-/spacer-2.2.6.tgz", "integrity": "sha512-1qYtZ6xICfSrFV0MMB/nUH1K2X9mHzIikrjC/okzyzWywibsVNbyRfu5vObVClYlVGY0r4M4+7fpV2QV1tKRGw==", "deprecated": "This package has been deprecated. Please use @heroui/spacer instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -3521,7 +3310,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/spinner/-/spinner-2.2.6.tgz", "integrity": "sha512-0V0H8jVpgRolgLnCuKDbrQCSK0VFPAZYiyGOE1+dfyIezpta+Nglh+uEl2sEFNh6B9Z8mARB8YEpRnTcA0ePDw==", "deprecated": "This package has been deprecated. Please use @heroui/spinner instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -3538,7 +3326,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/switch/-/switch-2.2.8.tgz", "integrity": "sha512-wk9qQSOfUEtmdWR1omKjmEYzgMjJhVizvfW6Z0rKOiMUuSud2d4xYnUmZhU22cv2WtoPV//kBjXkYD/E/t6rdg==", "deprecated": "This package has been deprecated. Please use @heroui/switch instead.", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/shared-utils": "2.1.2", @@ -3562,7 +3349,6 @@ "version": "2.4.6", "resolved": "https://registry.npmjs.org/@nextui-org/system/-/system-2.4.6.tgz", "integrity": "sha512-6ujAriBZMfQ16n6M6Ad9g32KJUa1CzqIVaHN/tymadr/3m8hrr7xDw6z50pVjpCRq2PaaA1hT8Hx7EFU3f2z3Q==", - "license": "MIT", "dependencies": { "@internationalized/date": "3.6.0", "@nextui-org/react-utils": "2.1.3", @@ -3583,7 +3369,6 @@ "version": "2.3.5", "resolved": "https://registry.npmjs.org/@nextui-org/system-rsc/-/system-rsc-2.3.5.tgz", "integrity": "sha512-DpVLNV9LkeP1yDULFCXm2mxA9m4ygS7XYy3lwgcF9M1A8QAWB+ut+FcP+8a6va50oSHOqwvUwPDUslgXTPMBfQ==", - "license": "MIT", "dependencies": { "@react-types/shared": "3.26.0", "clsx": "^1.2.1" @@ -3597,7 +3382,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", "engines": { "node": ">=6" } @@ -3607,7 +3391,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/table/-/table-2.2.8.tgz", "integrity": "sha512-XNM0/Ed7Re3BA1eHL31rzALea9hgsBwD0rMR2qB2SAl2e8KaV2o+4bzgYhpISAzHQtlG8IsXanxiuNDH8OPVyw==", "deprecated": "This package has been deprecated. Please use @heroui/table instead.", - "license": "MIT", "dependencies": { "@nextui-org/checkbox": "2.3.8", "@nextui-org/react-utils": "2.1.3", @@ -3636,7 +3419,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/tabs/-/tabs-2.2.7.tgz", "integrity": "sha512-EDPK0MOR4DPTfud9Khr5AikLbyEhHTlkGfazbOxg7wFaHysOnV5Y/E6UfvaN69kgIeT7NQcDFdaCKJ/AX1N7AA==", "deprecated": "This package has been deprecated. Please use @heroui/tabs instead.", - "license": "MIT", "dependencies": { "@nextui-org/aria-utils": "2.2.7", "@nextui-org/framer-utils": "2.1.6", @@ -3665,7 +3447,6 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/@nextui-org/theme/-/theme-2.4.5.tgz", "integrity": "sha512-c7Y17n+hBGiFedxMKfg7Qyv93iY5MteamLXV4Po4c1VF1qZJI6I+IKULFh3FxPWzAoz96r6NdYT7OLFjrAJdWg==", - "license": "MIT", "dependencies": { "@nextui-org/shared-utils": "2.1.2", "clsx": "^1.2.1", @@ -3684,7 +3465,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", "engines": { "node": ">=6" } @@ -3694,7 +3474,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/tooltip/-/tooltip-2.2.7.tgz", "integrity": "sha512-NgoaxcNwuCq/jvp77dmGzyS7JxzX4dvD/lAYi/GUhyxEC3TK3teZ3ADRhrC6tb84OpaelPLaTkhRNSaxVAQzjQ==", "deprecated": "This package has been deprecated. Please use @heroui/tooltip instead.", - "license": "MIT", "dependencies": { "@nextui-org/aria-utils": "2.2.7", "@nextui-org/dom-animation": "2.1.1", @@ -3722,7 +3501,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-accordion/-/use-aria-accordion-2.2.2.tgz", "integrity": "sha512-M8gjX6XmB83cIAZKV2zI1KvmTuuOh+Si50F3SWvYjBXyrDIM5775xCs2PG6AcLjf6OONTl5KwuZ2cbSDHiui6A==", - "license": "MIT", "dependencies": { "@react-aria/button": "3.11.0", "@react-aria/focus": "3.19.0", @@ -3740,7 +3518,6 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-button/-/use-aria-button-2.2.4.tgz", "integrity": "sha512-Bz8l4JGzRKh6V58VX8Laq4rKZDppsnVuNCBHpMJuLo2F9ht7UKvZAEJwXcdbUZ87aui/ZC+IPYqgjvT+d8QlQg==", - "license": "MIT", "dependencies": { "@nextui-org/shared-utils": "2.1.2", "@react-aria/focus": "3.19.0", @@ -3757,7 +3534,6 @@ "version": "2.2.5", "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-link/-/use-aria-link-2.2.5.tgz", "integrity": "sha512-LBWXLecvuET4ZcpoHyyuS3yxvCzXdkmFcODhYwUmC8PiFSEUHkuFMC+fLwdXCP5GOqrv6wTGYHf41wNy1ugX1w==", - "license": "MIT", "dependencies": { "@nextui-org/shared-utils": "2.1.2", "@react-aria/focus": "3.19.0", @@ -3774,7 +3550,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-modal-overlay/-/use-aria-modal-overlay-2.2.3.tgz", "integrity": "sha512-55DIVY0u+Ynxy1/DtzZkMsdVW63wC0mafKXACwCi0xV64D0Ggi9MM7BRePLK0mOboSb3gjCwYqn12gmRiy+kmg==", - "license": "MIT", "dependencies": { "@react-aria/overlays": "3.24.0", "@react-aria/utils": "3.26.0", @@ -3790,7 +3565,6 @@ "version": "2.4.3", "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-multiselect/-/use-aria-multiselect-2.4.3.tgz", "integrity": "sha512-PwDA4Y5DOx0SMxc277JeZi8tMtaINTwthPhk8SaDrtOBhP+r9owS3T/W9t37xKnmrTerHwaEq4ADGQtm5/VMXQ==", - "license": "MIT", "dependencies": { "@react-aria/i18n": "3.12.4", "@react-aria/interactions": "3.22.5", @@ -3816,7 +3590,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nextui-org/use-callback-ref/-/use-callback-ref-2.1.1.tgz", "integrity": "sha512-DzlKJ9p7Tm0x3HGjynZ/CgS1jfoBILXKFXnYPLr/SSETXqVaCguixolT/07BRB1yo9AGwELaCEt91BeI0Rb6hQ==", - "license": "MIT", "dependencies": { "@nextui-org/use-safe-layout-effect": "2.1.1" }, @@ -3828,7 +3601,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@nextui-org/use-clipboard/-/use-clipboard-2.1.2.tgz", "integrity": "sha512-MUITEPaQAvu9VuMCUQXMc4j3uBgXoD8LVcuuvUVucg/8HK/Xia0dQ4QgK30QlCbZ/BwZ047rgMAgpMZeVKw4MQ==", - "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } @@ -3837,7 +3609,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/@nextui-org/use-data-scroll-overflow/-/use-data-scroll-overflow-2.2.2.tgz", "integrity": "sha512-TFB6BuaLOsE++K1UEIPR9StkBgj9Cvvc+ccETYpmn62B7pK44DmxjkwhK0ei59wafJPIyytZ3DgdVDblfSyIXA==", - "license": "MIT", "dependencies": { "@nextui-org/shared-utils": "2.1.2" }, @@ -3849,7 +3620,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/@nextui-org/use-disclosure/-/use-disclosure-2.2.2.tgz", "integrity": "sha512-ka+5Fic2MIYtOMHi3zomtkWxCWydmJmcq7+fb6RHspfr0tGYjXWYO/lgtGeHFR1LYksMPLID3c7shT5bqzxJcA==", - "license": "MIT", "dependencies": { "@nextui-org/use-callback-ref": "2.1.1", "@react-aria/utils": "3.26.0", @@ -3863,7 +3633,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@nextui-org/use-draggable/-/use-draggable-2.1.2.tgz", "integrity": "sha512-gN4G42uuRyFlAZ3FgMSeZLBg3LIeGlKTOLRe3JvyaBn1D1mA2+I3XONY1oKd9KKmtYCJNwY/2x6MVsBfy8nsgw==", - "license": "MIT", "dependencies": { "@react-aria/interactions": "3.22.5" }, @@ -3875,7 +3644,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@nextui-org/use-image/-/use-image-2.1.2.tgz", "integrity": "sha512-I46M5gCJK4rZ0qYHPx3kVSF2M2uGaWPwzb3w4Cmx8K9QS+LbUQtRMbD8KOGTHZGA3kBDPvFbAi53Ert4eACrZQ==", - "license": "MIT", "dependencies": { "@nextui-org/react-utils": "2.1.3", "@nextui-org/use-safe-layout-effect": "2.1.1" @@ -3888,7 +3656,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/@nextui-org/use-intersection-observer/-/use-intersection-observer-2.2.2.tgz", "integrity": "sha512-fS/4m8jnXO7GYpnp/Lp+7bfBEAXPzqsXgqGK6qrp7sfFEAbLzuJp0fONkbIB3F6F3FJrbFOlY+Y5qrHptO7U/Q==", - "license": "MIT", "dependencies": { "@react-aria/interactions": "3.22.5", "@react-aria/ssr": "3.9.7", @@ -3903,7 +3670,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mobile/-/use-is-mobile-2.2.2.tgz", "integrity": "sha512-gcmUL17fhgGdu8JfXF12FZCGATJIATxV4jSql+FNhR+gc+QRRWBRmCJSpMIE2RvGXL777tDvvoh/tjFMB3pW4w==", - "license": "MIT", "dependencies": { "@react-aria/ssr": "3.9.7" }, @@ -3915,7 +3681,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mounted/-/use-is-mounted-2.1.1.tgz", "integrity": "sha512-osJB3E/DCu4Le0f+pb21ia9/TaSHwme4r0fHjO5/nUBYk/RCvGlRUUCJClf/wi9WfH8QyjuJ27+zBcUSm6AMMg==", - "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } @@ -3924,7 +3689,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nextui-org/use-measure/-/use-measure-2.1.1.tgz", "integrity": "sha512-2RVn90gXHTgt6fvzBH4fzgv3hMDz+SEJkqaCTbd6WUNWag4AaLb2WU/65CtLcexyu10HrgYf2xG07ZqtJv0zSg==", - "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } @@ -3933,7 +3697,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/@nextui-org/use-pagination/-/use-pagination-2.2.3.tgz", "integrity": "sha512-V2WGIq4LLkTpq6EUhJg3MVvHY2ZJ63AYV9N0d52Dc3Qqok0tTRuY51dd1P+F58HyTPW84W2z4q2R8XALtzFxQw==", - "license": "MIT", "dependencies": { "@nextui-org/shared-utils": "2.1.2", "@react-aria/i18n": "3.12.4" @@ -3946,7 +3709,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.1.1.tgz", "integrity": "sha512-p0vezi2eujC3rxlMQmCLQlc8CNbp+GQgk6YcSm7Rk10isWVlUII5T1L3y+rcFYdgTPObCkCngPPciNQhD7Lf7g==", - "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } @@ -3955,7 +3717,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nextui-org/use-scroll-position/-/use-scroll-position-2.1.1.tgz", "integrity": "sha512-RgY1l2POZbSjnEirW51gdb8yNPuQXHqJx3TS8Ut5dk+bhaX9JD3sUdEiJNb3qoHAJInzyjN+27hxnACSlW0gzg==", - "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } @@ -3964,7 +3725,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nextui-org/use-update-effect/-/use-update-effect-2.1.1.tgz", "integrity": "sha512-fKODihHLWcvDk1Sm8xDua9zjdbstxTOw9shB7k/mPkeR3E7SouSpN0+LW67Bczh1EmbRg1pIrFpEOLnbpgMFzA==", - "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } @@ -3974,7 +3734,6 @@ "resolved": "https://registry.npmjs.org/@nextui-org/user/-/user-2.2.6.tgz", "integrity": "sha512-iimFoP3DVK85p78r0ekC7xpVPQiBIbWnyBPdrnBj1UEgQdKoUzGhVbhYUnA8niBz/AS5xLt6aQixsv9/B0/msw==", "deprecated": "This package has been deprecated. Please use @heroui/user instead.", - "license": "MIT", "dependencies": { "@nextui-org/avatar": "2.2.6", "@nextui-org/react-utils": "2.1.3", @@ -4026,165 +3785,159 @@ "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.4.0" } }, "node_modules/@octokit/auth-token": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", - "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-6.0.0.tgz", + "integrity": "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==", "dev": true, "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@octokit/core": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", - "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.2.tgz", + "integrity": "sha512-ODsoD39Lq6vR6aBgvjTnA3nZGliknKboc9Gtxr7E4WDNqY24MxANKcuDQSF0jzapvGb3KWOEDrKfve4HoWGK+g==", "dev": true, "dependencies": { - "@octokit/auth-token": "^5.0.0", - "@octokit/graphql": "^8.0.0", - "@octokit/request": "^9.0.0", - "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.0.0", - "before-after-hook": "^3.0.2", + "@octokit/auth-token": "^6.0.0", + "@octokit/graphql": "^9.0.1", + "@octokit/request": "^10.0.2", + "@octokit/request-error": "^7.0.0", + "@octokit/types": "^14.0.0", + "before-after-hook": "^4.0.0", "universal-user-agent": "^7.0.0" }, "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@octokit/endpoint": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.3.tgz", - "integrity": "sha512-nBRBMpKPhQUxCsQQeW+rCJ/OPSMcj3g0nfHn01zGYZXuNDvvXudF/TYY6APj5THlurerpFN4a/dQAIAaM6BYhA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.0.tgz", + "integrity": "sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==", "dev": true, - "license": "MIT", "dependencies": { - "@octokit/types": "^13.6.2", + "@octokit/types": "^14.0.0", "universal-user-agent": "^7.0.2" }, "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@octokit/graphql": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", - "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.1.tgz", + "integrity": "sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==", "dev": true, "dependencies": { - "@octokit/request": "^9.0.0", - "@octokit/types": "^13.0.0", + "@octokit/request": "^10.0.2", + "@octokit/types": "^14.0.0", "universal-user-agent": "^7.0.0" }, "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@octokit/openapi-types": { - "version": "23.0.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz", - "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", + "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "11.4.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.3.tgz", - "integrity": "sha512-tBXaAbXkqVJlRoA/zQVe9mUdb8rScmivqtpv3ovsC5xhje/a+NOCivs7eUhWBwCApJVsR4G5HMeaLbq7PxqZGA==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-13.1.1.tgz", + "integrity": "sha512-q9iQGlZlxAVNRN2jDNskJW/Cafy7/XE52wjZ5TTvyhyOD904Cvx//DNyoO3J/MXJ0ve3rPoNWKEg5iZrisQSuw==", "dev": true, - "license": "MIT", "dependencies": { - "@octokit/types": "^13.7.0" + "@octokit/types": "^14.1.0" }, "engines": { - "node": ">= 18" + "node": ">= 20" }, "peerDependencies": { "@octokit/core": ">=6" } }, "node_modules/@octokit/plugin-retry": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.2.tgz", - "integrity": "sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-8.0.1.tgz", + "integrity": "sha512-KUoYR77BjF5O3zcwDQHRRZsUvJwepobeqiSSdCJ8lWt27FZExzb0GgVxrhhfuyF6z2B2zpO0hN5pteni1sqWiw==", "dev": true, "dependencies": { - "@octokit/request-error": "^6.0.0", - "@octokit/types": "^13.0.0", + "@octokit/request-error": "^7.0.0", + "@octokit/types": "^14.0.0", "bottleneck": "^2.15.3" }, "engines": { - "node": ">= 18" + "node": ">= 20" }, "peerDependencies": { - "@octokit/core": ">=6" + "@octokit/core": ">=7" } }, "node_modules/@octokit/plugin-throttling": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.1.tgz", - "integrity": "sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-11.0.1.tgz", + "integrity": "sha512-S+EVhy52D/272L7up58dr3FNSMXWuNZolkL4zMJBNIfIxyZuUcczsQAU4b5w6dewJXnKYVgSHSV5wxitMSW1kw==", "dev": true, "dependencies": { - "@octokit/types": "^13.0.0", + "@octokit/types": "^14.0.0", "bottleneck": "^2.15.3" }, "engines": { - "node": ">= 18" + "node": ">= 20" }, "peerDependencies": { - "@octokit/core": "^6.0.0" + "@octokit/core": "^7.0.0" } }, "node_modules/@octokit/request": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.2.tgz", - "integrity": "sha512-dZl0ZHx6gOQGcffgm1/Sf6JfEpmh34v3Af2Uci02vzUYz6qEN6zepoRtmybWXIGXFIK8K9ylE3b+duCWqhArtg==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.3.tgz", + "integrity": "sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==", "dev": true, - "license": "MIT", "dependencies": { - "@octokit/endpoint": "^10.1.3", - "@octokit/request-error": "^6.1.7", - "@octokit/types": "^13.6.2", - "fast-content-type-parse": "^2.0.0", + "@octokit/endpoint": "^11.0.0", + "@octokit/request-error": "^7.0.0", + "@octokit/types": "^14.0.0", + "fast-content-type-parse": "^3.0.0", "universal-user-agent": "^7.0.2" }, "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@octokit/request-error": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.7.tgz", - "integrity": "sha512-69NIppAwaauwZv6aOzb+VVLwt+0havz9GT5YplkeJv7fG7a40qpLt/yZKyiDxAhgz0EtgNdNcb96Z0u+Zyuy2g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.0.0.tgz", + "integrity": "sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==", "dev": true, - "license": "MIT", "dependencies": { - "@octokit/types": "^13.6.2" + "@octokit/types": "^14.0.0" }, "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@octokit/types": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz", - "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", + "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", "dev": true, - "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^23.0.1" + "@octokit/openapi-types": "^25.1.0" } }, "node_modules/@phosphor-icons/react": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@phosphor-icons/react/-/react-2.1.7.tgz", - "integrity": "sha512-g2e2eVAn1XG2a+LI09QU3IORLhnFNAFkNbo2iwbX6NOKSLOwvEMmTa7CgOzEbgNWR47z8i8kwjdvYZ5fkGx1mQ==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@phosphor-icons/react/-/react-2.1.10.tgz", + "integrity": "sha512-vt8Tvq8GLjheAZZYa+YG/pW7HDbov8El/MANW8pOAz4eGxrwhnbfrQZq0Cp4q8zBEu8NIhHdnr+r8thnfRSNYA==", "engines": { "node": ">=10" }, @@ -4197,22 +3950,21 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", "optional": true, "engines": { "node": ">=14" } }, "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz", + "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==", "dev": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/pkgr" } }, "node_modules/@pnpm/config.env-replace": { @@ -4314,7 +4066,6 @@ "version": "3.5.19", "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.19.tgz", "integrity": "sha512-mVngOPFYVVhec89rf/CiYQGTfaLRfHFtX+JQwY7sNYNqSA+gO8p4lNARe3Be6bJPgH+LUQuruIY9/ZDL6LT3HA==", - "license": "Apache-2.0", "dependencies": { "@react-aria/i18n": "^3.12.4", "@react-aria/link": "^3.7.7", @@ -4331,7 +4082,6 @@ "version": "3.11.0", "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.11.0.tgz", "integrity": "sha512-b37eIV6IW11KmNIAm65F3SEl2/mgj5BrHIysW6smZX3KoKWTGYsYfcQkmtNgY0GOSFfDxMCoolsZ6mxC00nSDA==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/interactions": "^3.22.5", @@ -4350,7 +4100,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.6.0.tgz", "integrity": "sha512-tZ3nd5DP8uxckbj83Pt+4RqgcTWDlGi7njzc7QqFOG2ApfnYDUXbIpb/Q4KY6JNlJskG8q33wo0XfOwNy8J+eg==", - "license": "Apache-2.0", "dependencies": { "@internationalized/date": "^3.6.0", "@react-aria/i18n": "^3.12.4", @@ -4372,7 +4121,6 @@ "version": "3.15.0", "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.15.0.tgz", "integrity": "sha512-z/8xd4em7o0MroBXwkkwv7QRwiJaA1FwqMhRUb7iqtBGP2oSytBEDf0N7L09oci32a1P4ZPz2rMK5GlLh/PD6g==", - "license": "Apache-2.0", "dependencies": { "@react-aria/form": "^3.0.11", "@react-aria/interactions": "^3.22.5", @@ -4390,17 +4138,30 @@ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/checkbox/node_modules/@react-aria/toggle": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.11.1.tgz", - "integrity": "sha512-9SBvSFpGcLODN1u64tQ8aL6uLFnuuJRA2N0Kjmxp5PE1gk8IKG+BXsjZmq7auDAN5WPISBXw1RzEOmbghruBTQ==", - "license": "Apache-2.0", + "node_modules/@react-aria/checkbox/node_modules/@react-aria/ssr": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.9.tgz", + "integrity": "sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==", "dependencies": { - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/toggle": "^3.8.2", - "@react-types/checkbox": "^3.9.2", - "@react-types/shared": "^3.28.0", + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/checkbox/node_modules/@react-aria/toggle": { + "version": "3.11.5", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.11.5.tgz", + "integrity": "sha512-8+Evk/JVMQ25PNhbnHUvsAK99DAjnCWMdSBNswJ1sWseKCYQzBXsNkkF6Dl/FlSkfDBFAaRHkX9JUz02wehb9A==", + "dependencies": { + "@react-aria/interactions": "^3.25.3", + "@react-aria/utils": "^3.29.1", + "@react-stately/toggle": "^3.8.5", + "@react-types/checkbox": "^3.9.5", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4409,15 +4170,14 @@ } }, "node_modules/@react-aria/checkbox/node_modules/@react-aria/toggle/node_modules/@react-aria/interactions": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz", - "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.1", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.3.tgz", + "integrity": "sha512-J1bhlrNtjPS/fe5uJQ+0c7/jiXniwa4RQlP+Emjfc/iuqpW2RhbF9ou5vROcLzWIyaW8tVMZ468J68rAs/aZ5A==", + "dependencies": { + "@react-aria/ssr": "^3.9.9", + "@react-aria/utils": "^3.29.1", + "@react-stately/flags": "^3.1.2", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4426,15 +4186,14 @@ } }, "node_modules/@react-aria/checkbox/node_modules/@react-aria/toggle/node_modules/@react-aria/utils": { - "version": "3.28.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz", - "integrity": "sha512-mnHFF4YOVu9BRFQ1SZSKfPhg3z+lBRYoW5mLcYTQihbKhz48+I1sqRkP7ahMITr8ANH3nb34YaMME4XWmK2Mgg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-stately/flags": "^3.1.0", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.29.1.tgz", + "integrity": "sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==", + "dependencies": { + "@react-aria/ssr": "^3.9.9", + "@react-stately/flags": "^3.1.2", + "@react-stately/utils": "^3.10.7", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, @@ -4444,14 +4203,24 @@ } }, "node_modules/@react-aria/checkbox/node_modules/@react-stately/toggle": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.8.2.tgz", - "integrity": "sha512-5KPpT6zvt8H+WC9UbubhCTZltREeYb/3hKdl4YkS7BbSOQlHTFC0pOk8SsQU70Pwk26jeVHbl5le/N8cw00x8w==", - "license": "Apache-2.0", + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.8.5.tgz", + "integrity": "sha512-BSvuTDVFzIKxpNg9Slf+RdGpva7kBO8xYaec2TW9m6Ag9AOmiDwUzzDAO0DRsc7ArSaLLFaQ/pdmmT6TxAUQIA==", + "dependencies": { + "@react-stately/utils": "^3.10.7", + "@react-types/checkbox": "^3.9.5", + "@react-types/shared": "^3.30.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/checkbox/node_modules/@react-stately/utils": { + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.7.tgz", + "integrity": "sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==", "dependencies": { - "@react-stately/utils": "^3.10.5", - "@react-types/checkbox": "^3.9.2", - "@react-types/shared": "^3.28.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4459,22 +4228,20 @@ } }, "node_modules/@react-aria/checkbox/node_modules/@react-types/checkbox": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.2.tgz", - "integrity": "sha512-BruOLjr9s0BS2+G1Q2ZZ0ubnSTG54hZWr59lCHXaLxMdA/+KVsR6JVMQuYKsW0P8RDDlQXE/QGz3n9yB/Ara4A==", - "license": "Apache-2.0", + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.5.tgz", + "integrity": "sha512-9y8zeGWT2xZ38/YC/rNd05pPV8W8vmqFygCpZFaa6dJeOsMgPU+rq+Ifh1G+34D/qGoZXQBzeCSCAKSNPaL7uw==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/checkbox/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -4483,7 +4250,6 @@ "version": "3.11.0", "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.11.0.tgz", "integrity": "sha512-s88YMmPkMO1WSoiH1KIyZDLJqUwvM2wHXXakj3cYw1tBHGo4rOUFq+JWQIbM5EDO4HOR4AUUqzIUd0NO7t3zyg==", - "license": "Apache-2.0", "dependencies": { "@react-aria/i18n": "^3.12.4", "@react-aria/listbox": "^3.13.6", @@ -4510,7 +4276,6 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.12.0.tgz", "integrity": "sha512-VYNXioLfddIHpwQx211+rTYuunDmI7VHWBRetCpH3loIsVFuhFSRchTQpclAzxolO3g0vO7pMVj9VYt7Swp6kg==", - "license": "Apache-2.0", "dependencies": { "@internationalized/date": "^3.6.0", "@internationalized/number": "^3.6.0", @@ -4540,7 +4305,6 @@ "version": "3.5.20", "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.20.tgz", "integrity": "sha512-l0GZVLgeOd3kL3Yj8xQW7wN3gn9WW3RLd/SGI9t7ciTq+I/FhftjXCWzXLlOCCTLMf+gv7eazecECtmoWUaZWQ==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/overlays": "^3.24.0", @@ -4558,7 +4322,6 @@ "version": "3.19.0", "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.0.tgz", "integrity": "sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==", - "license": "Apache-2.0", "dependencies": { "@react-aria/interactions": "^3.22.5", "@react-aria/utils": "^3.26.0", @@ -4574,7 +4337,6 @@ "version": "3.0.11", "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.11.tgz", "integrity": "sha512-oXzjTiwVuuWjZ8muU0hp3BrDH5qjVctLOF50mjPvqUbvXQTHhoDxWweyIXPQjGshaqBd2w4pWaE4A2rG2O/apw==", - "license": "Apache-2.0", "dependencies": { "@react-aria/interactions": "^3.22.5", "@react-aria/utils": "^3.26.0", @@ -4587,23 +4349,22 @@ } }, "node_modules/@react-aria/grid": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.12.1.tgz", - "integrity": "sha512-f0Sx/O6VVjNcg5xq0cLhA7QSCkZodV+/Y0UXJTg/NObqgPX/tqh/KNEy7zeVd22FS6SUpXV+fJU99yLPo37rjQ==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.1", - "@react-aria/i18n": "^3.12.7", - "@react-aria/interactions": "^3.24.1", - "@react-aria/live-announcer": "^3.4.1", - "@react-aria/selection": "^3.23.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/collections": "^3.12.2", - "@react-stately/grid": "^3.11.0", - "@react-stately/selection": "^3.20.0", - "@react-types/checkbox": "^3.9.2", - "@react-types/grid": "^3.3.0", - "@react-types/shared": "^3.28.0", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.14.2.tgz", + "integrity": "sha512-5oS6sLq0DishBvPVsWnxGcUdBRXyFXCj8/n02yJvjbID5Mpjn9JIHUSL4ZCZAO7QGCXpvO3PI40vB2F6QUs2VA==", + "dependencies": { + "@react-aria/focus": "^3.20.5", + "@react-aria/i18n": "^3.12.10", + "@react-aria/interactions": "^3.25.3", + "@react-aria/live-announcer": "^3.4.3", + "@react-aria/selection": "^3.24.3", + "@react-aria/utils": "^3.29.1", + "@react-stately/collections": "^3.12.5", + "@react-stately/grid": "^3.11.3", + "@react-stately/selection": "^3.20.3", + "@react-types/checkbox": "^3.9.5", + "@react-types/grid": "^3.3.3", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4612,23 +4373,21 @@ } }, "node_modules/@react-aria/grid/node_modules/@internationalized/date": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.7.0.tgz", - "integrity": "sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==", - "license": "Apache-2.0", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.8.2.tgz", + "integrity": "sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@react-aria/grid/node_modules/@react-aria/focus": { - "version": "3.20.1", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.1.tgz", - "integrity": "sha512-lgYs+sQ1TtBrAXnAdRBQrBo0/7o5H6IrfDxec1j+VRpcXL0xyk0xPq+m3lZp8typzIghqDgpnKkJ5Jf4OrzPIw==", - "license": "Apache-2.0", + "version": "3.20.5", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.5.tgz", + "integrity": "sha512-JpFtXmWQ0Oca7FcvkqgjSyo6xEP7v3oQOLUId6o0xTvm4AD5W0mU2r3lYrbhsJ+XxdUUX4AVR5473sZZ85kU4A==", "dependencies": { - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.3", + "@react-aria/utils": "^3.29.1", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, @@ -4638,18 +4397,17 @@ } }, "node_modules/@react-aria/grid/node_modules/@react-aria/i18n": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.7.tgz", - "integrity": "sha512-eLbYO2xrpeOKIEmLv2KD5LFcB0wltFqS+pUjsOzkKZg6H3b6AFDmJPxr/a0x2KGHtpGJvuHwCSbpPi9PzSSQLg==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.1", - "@react-types/shared": "^3.28.0", + "version": "3.12.10", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.10.tgz", + "integrity": "sha512-1j00soQ2W0nTgzaaIsGFdMF/5aN60AEdCJPhmXGZiuWdWzMxObN9LQ9vdzYPTjTqyqMdSaSp9DZKs5I26Xovpw==", + "dependencies": { + "@internationalized/date": "^3.8.2", + "@internationalized/message": "^3.1.8", + "@internationalized/number": "^3.6.3", + "@internationalized/string": "^3.2.7", + "@react-aria/ssr": "^3.9.9", + "@react-aria/utils": "^3.29.1", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4658,15 +4416,14 @@ } }, "node_modules/@react-aria/grid/node_modules/@react-aria/interactions": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz", - "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.1", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.3.tgz", + "integrity": "sha512-J1bhlrNtjPS/fe5uJQ+0c7/jiXniwa4RQlP+Emjfc/iuqpW2RhbF9ou5vROcLzWIyaW8tVMZ468J68rAs/aZ5A==", + "dependencies": { + "@react-aria/ssr": "^3.9.9", + "@react-aria/utils": "^3.29.1", + "@react-stately/flags": "^3.1.2", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4675,17 +4432,16 @@ } }, "node_modules/@react-aria/grid/node_modules/@react-aria/selection": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.23.1.tgz", - "integrity": "sha512-z4vVw7Fw0+nK46PPlCV8TyieCS+EOUp3eguX8833fFJ/QDlFp3Ewgw2T5qCIix5U3siXPYU0ZmAMOdrjibdGpQ==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.1", - "@react-aria/i18n": "^3.12.7", - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/selection": "^3.20.0", - "@react-types/shared": "^3.28.0", + "version": "3.24.3", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.24.3.tgz", + "integrity": "sha512-QznlHCUcjFgVALUIVBK4SWJd6osaU9lVaZgU4M8uemoIfOHqnBY3zThkQvEhcw/EJ2RpuYYLPOBYZBnk1knD5A==", + "dependencies": { + "@react-aria/focus": "^3.20.5", + "@react-aria/i18n": "^3.12.10", + "@react-aria/interactions": "^3.25.3", + "@react-aria/utils": "^3.29.1", + "@react-stately/selection": "^3.20.3", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4693,16 +4449,29 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/grid/node_modules/@react-aria/utils": { - "version": "3.28.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz", - "integrity": "sha512-mnHFF4YOVu9BRFQ1SZSKfPhg3z+lBRYoW5mLcYTQihbKhz48+I1sqRkP7ahMITr8ANH3nb34YaMME4XWmK2Mgg==", - "license": "Apache-2.0", + "node_modules/@react-aria/grid/node_modules/@react-aria/ssr": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.9.tgz", + "integrity": "sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==", "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-stately/flags": "^3.1.0", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-aria/utils": { + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.29.1.tgz", + "integrity": "sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==", + "dependencies": { + "@react-aria/ssr": "^3.9.9", + "@react-stately/flags": "^3.1.2", + "@react-stately/utils": "^3.10.7", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, @@ -4712,48 +4481,55 @@ } }, "node_modules/@react-aria/grid/node_modules/@react-stately/collections": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.2.tgz", - "integrity": "sha512-RoehfGwrsYJ/WGtyGSLZNYysszajnq0Q3iTXg7plfW1vNEzom/A31vrLjOSOHJWAtwW339SDGGRpymDtLo4GWA==", - "license": "Apache-2.0", + "version": "3.12.5", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.5.tgz", + "integrity": "sha512-5SIb+6nF9cyu+WXqZ6io56BtdOu8FjSQQaaLCCpfAC6fc6zHRk8by0WreRmvJ5/Kn8oq2FNJtCNRvluM0Z01UA==", "dependencies": { - "@react-types/shared": "^3.28.0", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/grid/node_modules/@react-types/checkbox": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.2.tgz", - "integrity": "sha512-BruOLjr9s0BS2+G1Q2ZZ0ubnSTG54hZWr59lCHXaLxMdA/+KVsR6JVMQuYKsW0P8RDDlQXE/QGz3n9yB/Ara4A==", - "license": "Apache-2.0", + "node_modules/@react-aria/grid/node_modules/@react-stately/utils": { + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.7.tgz", + "integrity": "sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@swc/helpers": "^0.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/grid/node_modules/@react-types/grid": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.3.0.tgz", - "integrity": "sha512-9IXgD5qXXxz+S9RK+zT8umuTCEcE4Yfdl0zUGyTCB8LVcPEeZuarLGXZY/12Rkbd8+r6MUIKTxMVD3Nq9X5Ksg==", - "license": "Apache-2.0", + "node_modules/@react-aria/grid/node_modules/@react-types/checkbox": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.5.tgz", + "integrity": "sha512-9y8zeGWT2xZ38/YC/rNd05pPV8W8vmqFygCpZFaa6dJeOsMgPU+rq+Ifh1G+34D/qGoZXQBzeCSCAKSNPaL7uw==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/grid/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", - "peerDependencies": { + "node_modules/@react-aria/grid/node_modules/@react-types/grid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.3.3.tgz", + "integrity": "sha512-VZAKO3XISc/3+a+DZ+hUx2NB/buOe2Ui2nISutv25foeXX4+YpWj5lXS74lJUCuVsSz6D6yoWvEajeUCYrNOxg==", + "dependencies": { + "@react-types/shared": "^3.30.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-types/shared": { + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", + "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, @@ -4761,7 +4537,6 @@ "version": "3.12.4", "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.4.tgz", "integrity": "sha512-j9+UL3q0Ls8MhXV9gtnKlyozq4aM95YywXqnmJtzT1rYeBx7w28hooqrWkCYLfqr4OIryv1KUnPiCSLwC2OC7w==", - "license": "Apache-2.0", "dependencies": { "@internationalized/date": "^3.6.0", "@internationalized/message": "^3.1.6", @@ -4780,7 +4555,6 @@ "version": "3.22.5", "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.5.tgz", "integrity": "sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==", - "license": "Apache-2.0", "dependencies": { "@react-aria/ssr": "^3.9.7", "@react-aria/utils": "^3.26.0", @@ -4795,7 +4569,6 @@ "version": "3.7.13", "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.13.tgz", "integrity": "sha512-brSAXZVTey5RG/Ex6mTrV/9IhGSQFU4Al34qmjEDho+Z2qT4oPwf8k7TRXWWqzOU0ugYxekYbsLd2zlN3XvWcg==", - "license": "Apache-2.0", "dependencies": { "@react-aria/utils": "^3.26.0", "@react-types/shared": "^3.26.0", @@ -4809,7 +4582,6 @@ "version": "3.7.7", "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.7.tgz", "integrity": "sha512-eVBRcHKhNSsATYWv5wRnZXRqPVcKAWWakyvfrYePIKpC3s4BaHZyTGYdefk8ZwZdEOuQZBqLMnjW80q1uhtkuA==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/interactions": "^3.22.5", @@ -4826,7 +4598,6 @@ "version": "3.13.6", "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.13.6.tgz", "integrity": "sha512-6hEXEXIZVau9lgBZ4VVjFR3JnGU+fJaPmV3HP0UZ2ucUptfG0MZo24cn+ZQJsWiuaCfNFv5b8qribiv+BcO+Kg==", - "license": "Apache-2.0", "dependencies": { "@react-aria/interactions": "^3.22.5", "@react-aria/label": "^3.7.13", @@ -4844,10 +4615,9 @@ } }, "node_modules/@react-aria/live-announcer": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.1.tgz", - "integrity": "sha512-4X2mcxgqLvvkqxv2l1n00jTzUxxe0kkLiapBGH1LHX/CxA1oQcHDqv8etJ2ZOwmS/MSBBiWnv3DwYHDOF6ubig==", - "license": "Apache-2.0", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.3.tgz", + "integrity": "sha512-nbBmx30tW53Vlbq3BbMxHGbHa7vGE9ItacI+1XAdH2UZDLtdZA5J6U9YC6lokKQCv+aEVO6Zl9YG4yp57YwnGw==", "dependencies": { "@swc/helpers": "^0.5.0" } @@ -4856,7 +4626,6 @@ "version": "3.16.0", "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.16.0.tgz", "integrity": "sha512-TNk+Vd3TbpBPUxEloAdHRTaRxf9JBK7YmkHYiq0Yj5Lc22KS0E2eTyhpPM9xJvEWN2TlC5TEvNfdyui2kYWFFQ==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/i18n": "^3.12.4", @@ -4882,7 +4651,6 @@ "version": "3.24.0", "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.24.0.tgz", "integrity": "sha512-0kAXBsMNTc/a3M07tK9Cdt/ea8CxTAEJ223g8YgqImlmoBBYAL7dl5G01IOj67TM64uWPTmZrOklBchHWgEm3A==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/i18n": "^3.12.4", @@ -4905,7 +4673,6 @@ "version": "3.4.18", "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.18.tgz", "integrity": "sha512-FOLgJ9t9i1u3oAAimybJG6r7/soNPBnJfWo4Yr6MmaUv90qVGa1h6kiuM5m9H/bm5JobAebhdfHit9lFlgsCmg==", - "license": "Apache-2.0", "dependencies": { "@react-aria/i18n": "^3.12.4", "@react-aria/label": "^3.7.13", @@ -4922,7 +4689,6 @@ "version": "3.10.10", "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.10.tgz", "integrity": "sha512-NVdeOVrsrHgSfwL2jWCCXFsWZb+RMRZErj5vthHQW4nkHECGOzeX56VaLWTSvdoCPqi9wdIX8A6K9peeAIgxzA==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/form": "^3.0.11", @@ -4943,7 +4709,6 @@ "version": "3.21.0", "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.21.0.tgz", "integrity": "sha512-52JJ6hlPcM+gt0VV3DBmz6Kj1YAJr13TfutrKfGWcK36LvNCBm1j0N+TDqbdnlp8Nue6w0+5FIwZq44XPYiBGg==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/i18n": "^3.12.4", @@ -4962,7 +4727,6 @@ "version": "3.7.14", "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.14.tgz", "integrity": "sha512-7rOiKjLkEZ0j7mPMlwrqivc+K4OSfL14slaQp06GHRiJkhiWXh2/drPe15hgNq55HmBQBpA0umKMkJcqVgmXPA==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/i18n": "^3.12.4", @@ -4979,16 +4743,15 @@ } }, "node_modules/@react-aria/spinbutton": { - "version": "3.6.13", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.13.tgz", - "integrity": "sha512-phF7WU4mTryPY+IORqQC6eGvCdLItJ41KJ8ZWmpubnLkhqyyxBn8BirXlxWC5UIIvir9c3oohX2Vip/bE5WJiA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/i18n": "^3.12.7", - "@react-aria/live-announcer": "^3.4.1", - "@react-aria/utils": "^3.28.1", - "@react-types/button": "^3.11.0", - "@react-types/shared": "^3.28.0", + "version": "3.6.16", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.16.tgz", + "integrity": "sha512-Ko1e9GeQiiEXeR3IyPT8STS1Pw4k/1OBs9LqI3WKlHFwH5M8q3DbbaMOgekD41/CPVBKmCcqFM7K7Wu9kFrT2A==", + "dependencies": { + "@react-aria/i18n": "^3.12.10", + "@react-aria/live-announcer": "^3.4.3", + "@react-aria/utils": "^3.29.1", + "@react-types/button": "^3.12.2", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4997,27 +4760,25 @@ } }, "node_modules/@react-aria/spinbutton/node_modules/@internationalized/date": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.7.0.tgz", - "integrity": "sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==", - "license": "Apache-2.0", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.8.2.tgz", + "integrity": "sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@react-aria/spinbutton/node_modules/@react-aria/i18n": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.7.tgz", - "integrity": "sha512-eLbYO2xrpeOKIEmLv2KD5LFcB0wltFqS+pUjsOzkKZg6H3b6AFDmJPxr/a0x2KGHtpGJvuHwCSbpPi9PzSSQLg==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.1", - "@react-types/shared": "^3.28.0", + "version": "3.12.10", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.10.tgz", + "integrity": "sha512-1j00soQ2W0nTgzaaIsGFdMF/5aN60AEdCJPhmXGZiuWdWzMxObN9LQ9vdzYPTjTqyqMdSaSp9DZKs5I26Xovpw==", + "dependencies": { + "@internationalized/date": "^3.8.2", + "@internationalized/message": "^3.1.8", + "@internationalized/number": "^3.6.3", + "@internationalized/string": "^3.2.7", + "@react-aria/ssr": "^3.9.9", + "@react-aria/utils": "^3.29.1", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5025,16 +4786,29 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/spinbutton/node_modules/@react-aria/utils": { - "version": "3.28.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz", - "integrity": "sha512-mnHFF4YOVu9BRFQ1SZSKfPhg3z+lBRYoW5mLcYTQihbKhz48+I1sqRkP7ahMITr8ANH3nb34YaMME4XWmK2Mgg==", - "license": "Apache-2.0", + "node_modules/@react-aria/spinbutton/node_modules/@react-aria/ssr": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.9.tgz", + "integrity": "sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==", "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-stately/flags": "^3.1.0", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/spinbutton/node_modules/@react-aria/utils": { + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.29.1.tgz", + "integrity": "sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==", + "dependencies": { + "@react-aria/ssr": "^3.9.9", + "@react-stately/flags": "^3.1.2", + "@react-stately/utils": "^3.10.7", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, @@ -5043,23 +4817,32 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, + "node_modules/@react-aria/spinbutton/node_modules/@react-stately/utils": { + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.7.tgz", + "integrity": "sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, "node_modules/@react-aria/spinbutton/node_modules/@react-types/button": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.11.0.tgz", - "integrity": "sha512-gJh5i0JiBiZGZGDo+tXMp6xbixPM7IKZ0sDuxTYBG49qNzzWJq0uNYltO3emwSVXFSsBgRV/Wu8kQGhfuN7wIw==", - "license": "Apache-2.0", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.12.2.tgz", + "integrity": "sha512-QLoSCX8E7NFIdkVMa65TPieve0rKeltfcIxiMtrphjfNn+83L0IHMcbhjf4r4W19c/zqGbw3E53Hx8mNukoTUw==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/spinbutton/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -5068,7 +4851,6 @@ "version": "3.9.7", "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz", "integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==", - "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" }, @@ -5083,7 +4865,6 @@ "version": "3.6.10", "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.10.tgz", "integrity": "sha512-FtaI9WaEP1tAmra1sYlAkYXg9x75P5UtgY8pSbe9+1WRyWbuE1QZT+RNCTi3IU4fZ7iJQmXH6+VaMyzPlSUagw==", - "license": "Apache-2.0", "dependencies": { "@react-aria/toggle": "^3.10.10", "@react-stately/toggle": "^3.8.0", @@ -5095,17 +4876,30 @@ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@react-aria/switch/node_modules/@react-aria/toggle": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.11.1.tgz", - "integrity": "sha512-9SBvSFpGcLODN1u64tQ8aL6uLFnuuJRA2N0Kjmxp5PE1gk8IKG+BXsjZmq7auDAN5WPISBXw1RzEOmbghruBTQ==", - "license": "Apache-2.0", + "node_modules/@react-aria/switch/node_modules/@react-aria/ssr": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.9.tgz", + "integrity": "sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==", "dependencies": { - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/toggle": "^3.8.2", - "@react-types/checkbox": "^3.9.2", - "@react-types/shared": "^3.28.0", + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/switch/node_modules/@react-aria/toggle": { + "version": "3.11.5", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.11.5.tgz", + "integrity": "sha512-8+Evk/JVMQ25PNhbnHUvsAK99DAjnCWMdSBNswJ1sWseKCYQzBXsNkkF6Dl/FlSkfDBFAaRHkX9JUz02wehb9A==", + "dependencies": { + "@react-aria/interactions": "^3.25.3", + "@react-aria/utils": "^3.29.1", + "@react-stately/toggle": "^3.8.5", + "@react-types/checkbox": "^3.9.5", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5114,15 +4908,14 @@ } }, "node_modules/@react-aria/switch/node_modules/@react-aria/toggle/node_modules/@react-aria/interactions": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz", - "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.1", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.3.tgz", + "integrity": "sha512-J1bhlrNtjPS/fe5uJQ+0c7/jiXniwa4RQlP+Emjfc/iuqpW2RhbF9ou5vROcLzWIyaW8tVMZ468J68rAs/aZ5A==", + "dependencies": { + "@react-aria/ssr": "^3.9.9", + "@react-aria/utils": "^3.29.1", + "@react-stately/flags": "^3.1.2", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5131,15 +4924,14 @@ } }, "node_modules/@react-aria/switch/node_modules/@react-aria/toggle/node_modules/@react-aria/utils": { - "version": "3.28.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.28.1.tgz", - "integrity": "sha512-mnHFF4YOVu9BRFQ1SZSKfPhg3z+lBRYoW5mLcYTQihbKhz48+I1sqRkP7ahMITr8ANH3nb34YaMME4XWmK2Mgg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-stately/flags": "^3.1.0", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.29.1.tgz", + "integrity": "sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==", + "dependencies": { + "@react-aria/ssr": "^3.9.9", + "@react-stately/flags": "^3.1.2", + "@react-stately/utils": "^3.10.7", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, @@ -5149,14 +4941,24 @@ } }, "node_modules/@react-aria/switch/node_modules/@react-stately/toggle": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.8.2.tgz", - "integrity": "sha512-5KPpT6zvt8H+WC9UbubhCTZltREeYb/3hKdl4YkS7BbSOQlHTFC0pOk8SsQU70Pwk26jeVHbl5le/N8cw00x8w==", - "license": "Apache-2.0", + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.8.5.tgz", + "integrity": "sha512-BSvuTDVFzIKxpNg9Slf+RdGpva7kBO8xYaec2TW9m6Ag9AOmiDwUzzDAO0DRsc7ArSaLLFaQ/pdmmT6TxAUQIA==", + "dependencies": { + "@react-stately/utils": "^3.10.7", + "@react-types/checkbox": "^3.9.5", + "@react-types/shared": "^3.30.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/switch/node_modules/@react-stately/utils": { + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.7.tgz", + "integrity": "sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==", "dependencies": { - "@react-stately/utils": "^3.10.5", - "@react-types/checkbox": "^3.9.2", - "@react-types/shared": "^3.28.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5164,22 +4966,20 @@ } }, "node_modules/@react-aria/switch/node_modules/@react-types/checkbox": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.2.tgz", - "integrity": "sha512-BruOLjr9s0BS2+G1Q2ZZ0ubnSTG54hZWr59lCHXaLxMdA/+KVsR6JVMQuYKsW0P8RDDlQXE/QGz3n9yB/Ara4A==", - "license": "Apache-2.0", + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.5.tgz", + "integrity": "sha512-9y8zeGWT2xZ38/YC/rNd05pPV8W8vmqFygCpZFaa6dJeOsMgPU+rq+Ifh1G+34D/qGoZXQBzeCSCAKSNPaL7uw==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/switch/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -5188,7 +4988,6 @@ "version": "3.16.0", "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.16.0.tgz", "integrity": "sha512-9xF9S3CJ7XRiiK92hsIKxPedD0kgcQWwqTMtj3IBynpQ4vsnRiW3YNIzrn9C3apjknRZDTSta8O2QPYCUMmw2A==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/grid": "^3.11.0", @@ -5215,7 +5014,6 @@ "version": "3.9.8", "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.9.8.tgz", "integrity": "sha512-Nur/qRFBe+Zrt4xcCJV/ULXCS3Mlae+B89bp1Gl20vSDqk6uaPtGk+cS5k03eugOvas7AQapqNJsJgKd66TChw==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/i18n": "^3.12.4", @@ -5235,7 +5033,6 @@ "version": "3.15.0", "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.15.0.tgz", "integrity": "sha512-V5mg7y1OR6WXYHdhhm4FC7QyGc9TideVRDFij1SdOJrIo5IFB7lvwpOS0GmgwkVbtr71PTRMjZnNbrJUFU6VNA==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/form": "^3.0.11", @@ -5255,7 +5052,6 @@ "version": "3.0.0-beta.11", "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.11.tgz", "integrity": "sha512-LM3jTRFNDgoEpoL568WaiuqiVM7eynSQLJis1hV0vlVnhTd7M7kzt7zoOjzxVb5Uapz02uCp1Fsm4wQMz09qwQ==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/i18n": "^3.12.4", @@ -5271,7 +5067,6 @@ "version": "3.7.10", "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.10.tgz", "integrity": "sha512-Udi3XOnrF/SYIz72jw9bgB74MG/yCOzF5pozHj2FH2HiJlchYv/b6rHByV/77IZemdlkmL/uugrv/7raPLSlnw==", - "license": "Apache-2.0", "dependencies": { "@react-aria/focus": "^3.19.0", "@react-aria/interactions": "^3.22.5", @@ -5289,7 +5084,6 @@ "version": "3.26.0", "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", - "license": "Apache-2.0", "dependencies": { "@react-aria/ssr": "^3.9.7", "@react-stately/utils": "^3.10.5", @@ -5305,7 +5099,6 @@ "version": "3.8.18", "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.18.tgz", "integrity": "sha512-l/0igp+uub/salP35SsNWq5mGmg3G5F5QMS1gDZ8p28n7CgjvzyiGhJbbca7Oxvaw1HRFzVl9ev+89I7moNnFQ==", - "license": "Apache-2.0", "dependencies": { "@react-aria/interactions": "^3.22.5", "@react-aria/utils": "^3.26.0", @@ -5320,7 +5113,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.6.0.tgz", "integrity": "sha512-GqUtOtGnwWjtNrJud8nY/ywI4VBP5byToNVRTnxbMl+gYO1Qe/uc5NG7zjwMxhb2kqSBHZFdkF0DXVqG2Ul+BA==", - "license": "Apache-2.0", "dependencies": { "@internationalized/date": "^3.6.0", "@react-stately/utils": "^3.10.5", @@ -5336,7 +5128,6 @@ "version": "3.6.10", "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.10.tgz", "integrity": "sha512-LHm7i4YI8A/RdgWAuADrnSAYIaYYpQeZqsp1a03Og0pJHAlZL0ymN3y2IFwbZueY0rnfM+yF+kWNXjJqbKrFEQ==", - "license": "Apache-2.0", "dependencies": { "@react-stately/form": "^3.1.0", "@react-stately/utils": "^3.10.5", @@ -5352,7 +5143,6 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.0.tgz", "integrity": "sha512-MfR9hwCxe5oXv4qrLUnjidwM50U35EFmInUeFf8i9mskYwWlRYS0O1/9PZ0oF1M0cKambaRHKEy98jczgb9ycA==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" @@ -5365,7 +5155,6 @@ "version": "3.10.1", "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.10.1.tgz", "integrity": "sha512-Rso+H+ZEDGFAhpKWbnRxRR/r7YNmYVtt+Rn0eNDNIUp3bYaxIBCdCySyAtALs4I8RZXZQ9zoUznP7YeVwG3cLg==", - "license": "Apache-2.0", "dependencies": { "@react-stately/collections": "^3.12.0", "@react-stately/form": "^3.1.0", @@ -5385,7 +5174,6 @@ "version": "3.11.0", "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.11.0.tgz", "integrity": "sha512-d9MJF34A0VrhL5y5S8mAISA8uwfNCQKmR2k4KoQJm3De1J8SQeNzSjLviAwh1faDow6FXGlA6tVbTrHyDcBgBg==", - "license": "Apache-2.0", "dependencies": { "@internationalized/date": "^3.6.0", "@internationalized/string": "^3.2.5", @@ -5401,10 +5189,9 @@ } }, "node_modules/@react-stately/flags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.0.tgz", - "integrity": "sha512-KSHOCxTFpBtxhIRcKwsD1YDTaNxFtCYuAUb0KEihc16QwqZViq4hasgPBs2gYm7fHRbw7WYzWKf6ZSo/+YsFlg==", - "license": "Apache-2.0", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz", + "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==", "dependencies": { "@swc/helpers": "^0.5.0" } @@ -5413,7 +5200,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.1.0.tgz", "integrity": "sha512-E2wxNQ0QaTyDHD0nJFtTSnEH9A3bpJurwxhS4vgcUmESHgjFEMLlC9irUSZKgvOgb42GAq+fHoWBsgKeTp9Big==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" @@ -5423,15 +5209,14 @@ } }, "node_modules/@react-stately/grid": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.11.0.tgz", - "integrity": "sha512-Wp6kza+2MzNybls9pRWvIwAHwMnSV1eUZXZxLwJy+JVS5lghkr731VvT+YD79z70osJKmgxgmiQGm4/yfetXdA==", - "license": "Apache-2.0", - "dependencies": { - "@react-stately/collections": "^3.12.2", - "@react-stately/selection": "^3.20.0", - "@react-types/grid": "^3.3.0", - "@react-types/shared": "^3.28.0", + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.11.3.tgz", + "integrity": "sha512-/YurYfPARtgsgS5f8rklB7ZQu6MWLdpfTHuwOELEUZ4L52S2gGA5VfLxDnAsHHnu5XHFI3ScuYLAvjWN0rgs/Q==", + "dependencies": { + "@react-stately/collections": "^3.12.5", + "@react-stately/selection": "^3.20.3", + "@react-types/grid": "^3.3.3", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5439,12 +5224,11 @@ } }, "node_modules/@react-stately/grid/node_modules/@react-stately/collections": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.2.tgz", - "integrity": "sha512-RoehfGwrsYJ/WGtyGSLZNYysszajnq0Q3iTXg7plfW1vNEzom/A31vrLjOSOHJWAtwW339SDGGRpymDtLo4GWA==", - "license": "Apache-2.0", + "version": "3.12.5", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.5.tgz", + "integrity": "sha512-5SIb+6nF9cyu+WXqZ6io56BtdOu8FjSQQaaLCCpfAC6fc6zHRk8by0WreRmvJ5/Kn8oq2FNJtCNRvluM0Z01UA==", "dependencies": { - "@react-types/shared": "^3.28.0", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5452,22 +5236,20 @@ } }, "node_modules/@react-stately/grid/node_modules/@react-types/grid": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.3.0.tgz", - "integrity": "sha512-9IXgD5qXXxz+S9RK+zT8umuTCEcE4Yfdl0zUGyTCB8LVcPEeZuarLGXZY/12Rkbd8+r6MUIKTxMVD3Nq9X5Ksg==", - "license": "Apache-2.0", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.3.3.tgz", + "integrity": "sha512-VZAKO3XISc/3+a+DZ+hUx2NB/buOe2Ui2nISutv25foeXX4+YpWj5lXS74lJUCuVsSz6D6yoWvEajeUCYrNOxg==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-stately/grid/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -5476,7 +5258,6 @@ "version": "3.11.1", "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.11.1.tgz", "integrity": "sha512-UCOpIvqBOjwLtk7zVTYWuKU1m1Oe61Q5lNar/GwHaV1nAiSQ8/yYlhr40NkBEs9X3plEfsV28UIpzOrYnu1tPg==", - "license": "Apache-2.0", "dependencies": { "@react-stately/collections": "^3.12.0", "@react-stately/selection": "^3.18.0", @@ -5492,7 +5273,6 @@ "version": "3.9.0", "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.9.0.tgz", "integrity": "sha512-++sm0fzZeUs9GvtRbj5RwrP+KL9KPANp9f4SvtI3s+MP+Y/X3X7LNNePeeccGeyikB5fzMsuyvd82bRRW9IhDQ==", - "license": "Apache-2.0", "dependencies": { "@react-stately/overlays": "^3.6.12", "@react-types/menu": "^3.9.13", @@ -5507,7 +5287,6 @@ "version": "3.6.12", "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.12.tgz", "integrity": "sha512-QinvZhwZgj8obUyPIcyURSCjTZlqZYRRCS60TF8jH8ZpT0tEAuDb3wvhhSXuYA3Xo9EHLwvLjEf3tQKKdAQArw==", - "license": "Apache-2.0", "dependencies": { "@react-stately/utils": "^3.10.5", "@react-types/overlays": "^3.8.11", @@ -5521,7 +5300,6 @@ "version": "3.10.9", "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.9.tgz", "integrity": "sha512-kUQ7VdqFke8SDRCatw2jW3rgzMWbvw+n2imN2THETynI47NmNLzNP11dlGO2OllRtTrsLhmBNlYHa3W62pFpAw==", - "license": "Apache-2.0", "dependencies": { "@react-stately/form": "^3.1.0", "@react-stately/utils": "^3.10.5", @@ -5534,16 +5312,15 @@ } }, "node_modules/@react-stately/select": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.11.tgz", - "integrity": "sha512-8pD4PNbZQNWg33D4+Fa0mrajUCYV3aA5YIwW3GY8NSRwBspaW4PKSZJtDT5ieN0WAO44YkAmX4idRaMAvqRusA==", - "license": "Apache-2.0", - "dependencies": { - "@react-stately/form": "^3.1.2", - "@react-stately/list": "^3.12.0", - "@react-stately/overlays": "^3.6.14", - "@react-types/select": "^3.9.10", - "@react-types/shared": "^3.28.0", + "version": "3.6.14", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.14.tgz", + "integrity": "sha512-HvbL9iMGwbev0FR6PzivhjKEcXADgcJC/IzUkLqPfg4KKMuYhM/XvbJjWXn/QpD3/XT+A5+r5ExUHu7wiDP93w==", + "dependencies": { + "@react-stately/form": "^3.1.5", + "@react-stately/list": "^3.12.3", + "@react-stately/overlays": "^3.6.17", + "@react-types/select": "^3.9.13", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5551,12 +5328,11 @@ } }, "node_modules/@react-stately/select/node_modules/@react-stately/collections": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.2.tgz", - "integrity": "sha512-RoehfGwrsYJ/WGtyGSLZNYysszajnq0Q3iTXg7plfW1vNEzom/A31vrLjOSOHJWAtwW339SDGGRpymDtLo4GWA==", - "license": "Apache-2.0", + "version": "3.12.5", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.5.tgz", + "integrity": "sha512-5SIb+6nF9cyu+WXqZ6io56BtdOu8FjSQQaaLCCpfAC6fc6zHRk8by0WreRmvJ5/Kn8oq2FNJtCNRvluM0Z01UA==", "dependencies": { - "@react-types/shared": "^3.28.0", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5564,12 +5340,11 @@ } }, "node_modules/@react-stately/select/node_modules/@react-stately/form": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.1.2.tgz", - "integrity": "sha512-sKgkV+rxeqM1lf0dCq2wWzdYa5Z0wz/MB3yxjodffy8D43PjFvUOMWpgw/752QHPGCd1XIxA3hE58Dw9FFValg==", - "license": "Apache-2.0", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.1.5.tgz", + "integrity": "sha512-wOs0SVXFgNr1aIdywiNH1MhxrFlN5YxBr1k9y3Z7lX+pc/MGRJFTgfDDw5JDxvwLH9joJ9ciniCdWep9L/TqcQ==", "dependencies": { - "@react-types/shared": "^3.28.0", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5577,15 +5352,14 @@ } }, "node_modules/@react-stately/select/node_modules/@react-stately/list": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.12.0.tgz", - "integrity": "sha512-6niQWJ6TZwOKLAOn2wIsxtOvWenh3rKiKdOh4L4O4f7U+h1Hu000Mu4lyIQm2P9uZAkF2Y5QNh6dHN+hSd6h3A==", - "license": "Apache-2.0", - "dependencies": { - "@react-stately/collections": "^3.12.2", - "@react-stately/selection": "^3.20.0", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", + "version": "3.12.3", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.12.3.tgz", + "integrity": "sha512-RiqYyxPYAF3YRBEin8/WHC8/hvpZ/fG1Tx3h1W4aXU5zTIBuy0DrjRKePwP90oCiDpztgRXePLlzhgWeKvJEow==", + "dependencies": { + "@react-stately/collections": "^3.12.5", + "@react-stately/selection": "^3.20.3", + "@react-stately/utils": "^3.10.7", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5593,13 +5367,23 @@ } }, "node_modules/@react-stately/select/node_modules/@react-stately/overlays": { - "version": "3.6.14", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.14.tgz", - "integrity": "sha512-RRalTuHdwrKO1BmXKaqBtE1GGUXU4VUAWwgh4lsP2EFSixDHmOVLxHFDWYvOPChBhpi8KXfLEgm6DEgPBvLBZQ==", - "license": "Apache-2.0", + "version": "3.6.17", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.17.tgz", + "integrity": "sha512-bkGYU4NPC/LgX9OGHLG8hpf9QDoazlb6fKfD+b5o7GtOdctBqCR287T/IBOQyvHqpySqrQ8XlyaGxJPGIcCiZw==", + "dependencies": { + "@react-stately/utils": "^3.10.7", + "@react-types/overlays": "^3.8.16", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/select/node_modules/@react-stately/utils": { + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.7.tgz", + "integrity": "sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==", "dependencies": { - "@react-stately/utils": "^3.10.5", - "@react-types/overlays": "^3.8.13", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5607,47 +5391,43 @@ } }, "node_modules/@react-stately/select/node_modules/@react-types/overlays": { - "version": "3.8.13", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.13.tgz", - "integrity": "sha512-xgT843KIh1otvYPQ6kCGTVUICiMF5UQ7SZUQZd4Zk3VtiFIunFVUvTvL03cpt0026UmY7tbv7vFrPKcT6xjsjw==", - "license": "Apache-2.0", + "version": "3.8.16", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.16.tgz", + "integrity": "sha512-Aj9jIFwALk9LiOV/s3rVie+vr5qWfaJp/6aGOuc2StSNDTHvj1urSAr3T0bT8wDlkrqnlS4JjEGE40ypfOkbAA==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-stately/select/node_modules/@react-types/select": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.10.tgz", - "integrity": "sha512-vvC5+cBSOu6J6lm74jhhP3Zvo1JO8m0FNX+Q95wapxrhs2aYYeMIgVuvNKeOuhVqzpBZxWmblBjCVNzCArZOaQ==", - "license": "Apache-2.0", + "version": "3.9.13", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.13.tgz", + "integrity": "sha512-R7zwck353RV60gZimZ8pDKaj50aEtGzU8gk0jC3aBkfzSUKFJ6jq1DJdqyVQSwXdmPDd9iuketeIUIpEO2teoA==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-stately/select/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-stately/selection": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.20.0.tgz", - "integrity": "sha512-woUSHMTyQiNmCf63Dyot1WXFfWnm6PFYkI9kymcq1qrrly4g/j27U+5PaRWOHawMiJwn1e1GTogk8B+K5ahshQ==", - "license": "Apache-2.0", + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.20.3.tgz", + "integrity": "sha512-TLyjodgFHn5fynQnRmZ5YX1HRY0KC7XBW0Nf2+q9mWk4gUxYm7RVXyYZvMIG1iKqinPYtySPRHdNzyXq9P9sxQ==", "dependencies": { - "@react-stately/collections": "^3.12.2", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", + "@react-stately/collections": "^3.12.5", + "@react-stately/utils": "^3.10.7", + "@react-types/shared": "^3.30.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5655,12 +5435,22 @@ } }, "node_modules/@react-stately/selection/node_modules/@react-stately/collections": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.2.tgz", - "integrity": "sha512-RoehfGwrsYJ/WGtyGSLZNYysszajnq0Q3iTXg7plfW1vNEzom/A31vrLjOSOHJWAtwW339SDGGRpymDtLo4GWA==", - "license": "Apache-2.0", + "version": "3.12.5", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.5.tgz", + "integrity": "sha512-5SIb+6nF9cyu+WXqZ6io56BtdOu8FjSQQaaLCCpfAC6fc6zHRk8by0WreRmvJ5/Kn8oq2FNJtCNRvluM0Z01UA==", + "dependencies": { + "@react-types/shared": "^3.30.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/selection/node_modules/@react-stately/utils": { + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.7.tgz", + "integrity": "sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==", "dependencies": { - "@react-types/shared": "^3.28.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5668,10 +5458,9 @@ } }, "node_modules/@react-stately/selection/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -5680,7 +5469,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.6.0.tgz", "integrity": "sha512-w5vJxVh267pmD1X+Ppd9S3ZzV1hcg0cV8q5P4Egr160b9WMcWlUspZPtsthwUlN7qQe/C8y5IAhtde4s29eNag==", - "license": "Apache-2.0", "dependencies": { "@react-stately/utils": "^3.10.5", "@react-types/shared": "^3.26.0", @@ -5695,7 +5483,6 @@ "version": "3.13.0", "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.13.0.tgz", "integrity": "sha512-mRbNYrwQIE7xzVs09Lk3kPteEVFVyOc20vA8ph6EP54PiUf/RllJpxZe/WUYLf4eom9lUkRYej5sffuUBpxjCA==", - "license": "Apache-2.0", "dependencies": { "@react-stately/collections": "^3.12.0", "@react-stately/flags": "^3.0.5", @@ -5715,7 +5502,6 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.7.0.tgz", "integrity": "sha512-ox4hTkfZCoR4Oyr3Op3rBlWNq2Wxie04vhEYpTZQ2hobR3l4fYaOkd7CPClILktJ3TC104j8wcb0knWxIBRx9w==", - "license": "Apache-2.0", "dependencies": { "@react-stately/list": "^3.11.1", "@react-types/shared": "^3.26.0", @@ -5730,7 +5516,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.8.0.tgz", "integrity": "sha512-pyt/k/J8BwE/2g6LL6Z6sMSWRx9HEJB83Sm/MtovXnI66sxJ2EfQ1OaXB7Su5PEL9OMdoQF6Mb+N1RcW3zAoPw==", - "license": "Apache-2.0", "dependencies": { "@react-stately/utils": "^3.10.5", "@react-types/checkbox": "^3.9.0", @@ -5745,7 +5530,6 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.5.0.tgz", "integrity": "sha512-+xzPNztJDd2XJD0X3DgWKlrgOhMqZpSzsIssXeJgO7uCnP8/Z513ESaipJhJCFC8fxj5caO/DK4Uu8hEtlB8cQ==", - "license": "Apache-2.0", "dependencies": { "@react-stately/overlays": "^3.6.12", "@react-types/tooltip": "^3.4.13", @@ -5759,7 +5543,6 @@ "version": "3.8.6", "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.6.tgz", "integrity": "sha512-lblUaxf1uAuIz5jm6PYtcJ+rXNNVkqyFWTIMx6g6gW/mYvm8GNx1G/0MLZE7E6CuDGaO9dkLSY2bB1uqyKHidA==", - "license": "Apache-2.0", "dependencies": { "@react-stately/collections": "^3.12.0", "@react-stately/selection": "^3.18.0", @@ -5775,7 +5558,6 @@ "version": "3.10.5", "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.5.tgz", "integrity": "sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==", - "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" }, @@ -5787,7 +5569,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-4.2.0.tgz", "integrity": "sha512-aTMpa9AQoz/xLqn8AI1BR/caUUY7/OUo9GbuF434w2u5eGCL7+SAn3Fmq7WSCwqYyDsO+jEIERek4JTX7pEW0A==", - "license": "Apache-2.0", "dependencies": { "@react-aria/utils": "^3.26.0", "@react-types/shared": "^3.26.0", @@ -5801,7 +5582,6 @@ "version": "3.0.0-alpha.25", "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.25.tgz", "integrity": "sha512-nPTRrMA5jS4QcwQ0H8J9Tzzw7+yq+KbwsPNA1ukVIfOGIB45by/1ke/eiZAXGqXxkElxi2fQuaXuWm79BWZ8zg==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -5813,7 +5593,6 @@ "version": "3.7.9", "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.9.tgz", "integrity": "sha512-eARYJo8J+VfNV8vP4uw3L2Qliba9wLV2bx9YQCYf5Lc/OE5B/y4gaTLz+Y2P3Rtn6gBPLXY447zCs5i7gf+ICg==", - "license": "Apache-2.0", "dependencies": { "@react-types/link": "^3.5.9", "@react-types/shared": "^3.26.0" @@ -5826,7 +5605,6 @@ "version": "3.10.1", "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.1.tgz", "integrity": "sha512-XTtap8o04+4QjPNAshFWOOAusUTxQlBjU2ai0BTVLShQEjHhRVDBIWsI2B2FKJ4KXT6AZ25llaxhNrreWGonmA==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -5838,7 +5616,6 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.5.0.tgz", "integrity": "sha512-O3IRE7AGwAWYnvJIJ80cOy7WwoJ0m8GtX/qSmvXQAjC4qx00n+b5aFNBYAQtcyc3RM5QpW6obs9BfwGetFiI8w==", - "license": "Apache-2.0", "dependencies": { "@internationalized/date": "^3.6.0", "@react-types/shared": "^3.26.0" @@ -5851,7 +5628,6 @@ "version": "3.9.0", "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.0.tgz", "integrity": "sha512-9hbHx0Oo2Hp5a8nV8Q75LQR0DHtvOIJbFaeqESSopqmV9EZoYjtY/h0NS7cZetgahQgnqYWQi44XGooMDCsmxA==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -5863,7 +5639,6 @@ "version": "3.13.1", "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.1.tgz", "integrity": "sha512-7xr+HknfhReN4QPqKff5tbKTe2kGZvH+DGzPYskAtb51FAAiZsKo+WvnNAvLwg3kRoC9Rkn4TAiVBp/HgymRDw==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -5875,7 +5650,6 @@ "version": "3.9.0", "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.9.0.tgz", "integrity": "sha512-dbKL5Qsm2MQwOTtVQdOcKrrphcXAqDD80WLlSQrBLg+waDuuQ7H+TrvOT0thLKloNBlFUGnZZfXGRHINpih/0g==", - "license": "Apache-2.0", "dependencies": { "@internationalized/date": "^3.6.0", "@react-types/calendar": "^3.5.0", @@ -5887,35 +5661,32 @@ } }, "node_modules/@react-types/dialog": { - "version": "3.5.15", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.15.tgz", - "integrity": "sha512-BX1+mV35Oa0aIlhu98OzJaSB7uiCWDPQbr0AkpFBajSSlESUoAjntN+4N+QJmj24z2v6UE9zxGQ85/U/0Le+bw==", - "license": "Apache-2.0", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.19.tgz", + "integrity": "sha512-+FIyFnoKIGNL20zG8Sye7rrRxmt5HoeaCaHhDCTtNtv8CZEhm3Z+kNd4gylgWAxZRhDtBRWko+ADqfN5gQrgKg==", "dependencies": { - "@react-types/overlays": "^3.8.12", - "@react-types/shared": "^3.27.0" + "@react-types/overlays": "^3.8.16", + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/dialog/node_modules/@react-types/overlays": { - "version": "3.8.12", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.12.tgz", - "integrity": "sha512-ZvR1t0YV7/6j+6OD8VozKYjvsXT92+C/2LOIKozy7YUNS5KI4MkXbRZzJvkuRECVZOmx8JXKTUzhghWJM/3QuQ==", - "license": "Apache-2.0", + "version": "3.8.16", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.16.tgz", + "integrity": "sha512-Aj9jIFwALk9LiOV/s3rVie+vr5qWfaJp/6aGOuc2StSNDTHvj1urSAr3T0bT8wDlkrqnlS4JjEGE40ypfOkbAA==", "dependencies": { - "@react-types/shared": "^3.27.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/dialog/node_modules/@react-types/shared": { - "version": "3.27.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.27.0.tgz", - "integrity": "sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -5924,7 +5695,6 @@ "version": "3.7.8", "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.8.tgz", "integrity": "sha512-0wOS97/X0ijTVuIqik1lHYTZnk13QkvMTKvIEhM7c6YMU3vPiirBwLbT2kJiAdwLiymwcCkrBdDF1NTRG6kPFA==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -5936,7 +5706,6 @@ "version": "3.2.10", "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.10.tgz", "integrity": "sha512-Z5cG0ITwqjUE4kWyU5/7VqiPl4wqMJ7kG/ZP7poAnLmwRsR8Ai0ceVn+qzp5nTA19cgURi8t3LsXn3Ar1FBoog==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -5948,7 +5717,6 @@ "version": "3.5.9", "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.9.tgz", "integrity": "sha512-JcKDiDMqrq/5Vpn+BdWQEuXit4KN4HR/EgIi3yKnNbYkLzxBoeQZpQgvTaC7NEQeZnSqkyXQo3/vMUeX/ZNIKw==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -5957,22 +5725,20 @@ } }, "node_modules/@react-types/listbox": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.5.5.tgz", - "integrity": "sha512-6cUjbYZVa0X2UMsenQ50ZaAssTUfzX3D0Q0Wd5nNf4W7ntBroDg6aBfNQoPDZikPUy8u+Y3uc/xZQfv30si7NA==", - "license": "Apache-2.0", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.7.1.tgz", + "integrity": "sha512-WiCihJJpVWVEUxxZjhTbnG3Zq3q38XylKnvNelkVHbF+Y3+SXWN0Yyhk43J642G/d87lw1t60Tor0k96eaz4vw==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/listbox/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -5981,7 +5747,6 @@ "version": "3.9.13", "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.13.tgz", "integrity": "sha512-7SuX6E2tDsqQ+HQdSvIda1ji/+ujmR86dtS9CUu5yWX91P25ufRjZ72EvLRqClWNQsj1Xl4+2zBDLWlceznAjw==", - "license": "Apache-2.0", "dependencies": { "@react-types/overlays": "^3.8.11", "@react-types/shared": "^3.26.0" @@ -5994,7 +5759,6 @@ "version": "3.8.11", "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.11.tgz", "integrity": "sha512-aw7T0rwVI3EuyG5AOaEIk8j7dZJQ9m34XAztXJVZ/W2+4pDDkLDbJ/EAPnuo2xGYRGhowuNDn4tDju01eHYi+w==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -6006,7 +5770,6 @@ "version": "3.5.8", "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.8.tgz", "integrity": "sha512-PR0rN5mWevfblR/zs30NdZr+82Gka/ba7UHmYOW9/lkKlWeD7PHgl1iacpd/3zl/jUF22evAQbBHmk1mS6Mpqw==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -6018,7 +5781,6 @@ "version": "3.8.5", "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.5.tgz", "integrity": "sha512-gSImTPid6rsbJmwCkTliBIU/npYgJHOFaI3PNJo7Y0QTAnFelCtYeFtBiWrFodSArSv7ASqpLLUEj9hZu/rxIg==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -6030,7 +5792,6 @@ "version": "3.9.8", "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.8.tgz", "integrity": "sha512-RGsYj2oFjXpLnfcvWMBQnkcDuKkwT43xwYWZGI214/gp/B64tJiIUgTM5wFTRAeGDX23EePkhCQF+9ctnqFd6g==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -6042,49 +5803,44 @@ "version": "3.26.0", "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.26.0.tgz", "integrity": "sha512-6FuPqvhmjjlpEDLTiYx29IJCbCNWPlsyO+ZUmCUXzhUv2ttShOXfw8CmeHWHftT/b2KweAWuzqSlfeXPR76jpw==", - "license": "Apache-2.0", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/slider": { - "version": "3.7.9", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.9.tgz", - "integrity": "sha512-MxCIVkrBSbN3AxIYW4hOpTcwPmIuY4841HF36sDLFWR3wx06z70IY3GFwV7Cbp814vhc84d4ABnPMwtE+AZRGQ==", - "license": "Apache-2.0", + "version": "3.7.12", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.12.tgz", + "integrity": "sha512-kOQLrENLpQzmu6TfavdW1yfEc8VPitT4ZNMKOK0h7x3LskEWjptxcZ4IBowEpqHwk0eMbI9lRE/3tsShGUoLwQ==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/slider/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/switch": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.9.tgz", - "integrity": "sha512-7XIS5qycIKhdfcWfzl8n458/7tkZKCNfMfZmIREgozKOtTBirjmtRRsefom2hlFT8VIlG7COmY4btK3oEuEhnQ==", - "license": "Apache-2.0", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.12.tgz", + "integrity": "sha512-6Zz7i+L9k8zw2c3nO8XErxuIy7JVDptz1NTZMiUeyDtLmQnvEKnKPKNjo2j+C/OngtJqAPowC3xRvMXbSAcYqA==", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.30.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/switch/node_modules/@react-types/shared": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.28.0.tgz", - "integrity": "sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==", - "license": "Apache-2.0", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz", + "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -6093,7 +5849,6 @@ "version": "3.10.3", "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.10.3.tgz", "integrity": "sha512-Ac+W+m/zgRzlTU8Z2GEg26HkuJFswF9S6w26r+R3MHwr8z2duGPvv37XRtE1yf3dbpRBgHEAO141xqS2TqGwNg==", - "license": "Apache-2.0", "dependencies": { "@react-types/grid": "^3.2.10", "@react-types/shared": "^3.26.0" @@ -6106,7 +5861,6 @@ "version": "3.3.11", "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.11.tgz", "integrity": "sha512-BjF2TqBhZaIcC4lc82R5pDJd1F7kstj1K0Nokhz99AGYn8C0ITdp6lR+DPVY9JZRxKgP9R2EKfWGI90Lo7NQdA==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -6118,7 +5872,6 @@ "version": "3.10.0", "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.10.0.tgz", "integrity": "sha512-ShU3d6kLJGQjPXccVFjM3KOXdj3uyhYROqH9YgSIEVxgA9W6LRflvk/IVBamD9pJYTPbwmVzuP0wQkTDupfZ1w==", - "license": "Apache-2.0", "dependencies": { "@react-types/shared": "^3.26.0" }, @@ -6130,7 +5883,6 @@ "version": "3.4.13", "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.13.tgz", "integrity": "sha512-KPekFC17RTT8kZlk7ZYubueZnfsGTDOpLw7itzolKOXGddTXsrJGBzSB4Bb060PBVllaDO0MOrhPap8OmrIl1Q==", - "license": "Apache-2.0", "dependencies": { "@react-types/overlays": "^3.8.11", "@react-types/shared": "^3.26.0" @@ -6143,13 +5895,12 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@rushstack/eslint-patch": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", - "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.12.0.tgz", + "integrity": "sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==", "dev": true }, "node_modules/@sec-ant/readable-stream": { @@ -6181,7 +5932,6 @@ "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.1.tgz", "integrity": "sha512-wdnBPHKkr9HhNhXOhZD5a2LNl91+hs8CC2vsAVYxtZH3y0dV3wKn+uZSN61rdJQZ8EGxzWB3inWocBHV9+u/CQ==", "dev": true, - "license": "MIT", "dependencies": { "conventional-changelog-angular": "^8.0.0", "conventional-changelog-writer": "^8.0.0", @@ -6209,11 +5959,10 @@ } }, "node_modules/@semantic-release/exec": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-7.0.3.tgz", - "integrity": "sha512-uNWwPNtWi3WTcTm3fWfFQEuj8otOvwoS5m9yo2jSVHuvqdZNsOWmuL0/FqcVyZnCI32fxyYV0G7PPb/TzCH6jw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-7.1.0.tgz", + "integrity": "sha512-4ycZ2atgEUutspPZ2hxO6z8JoQt4+y/kkHvfZ1cZxgl9WKJId1xPj+UadwInj+gMn2Gsv+fLnbrZ4s+6tK2TFQ==", "dev": true, - "license": "MIT", "dependencies": { "@semantic-release/error": "^4.0.0", "aggregate-error": "^3.0.0", @@ -6234,140 +5983,163 @@ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" } }, - "node_modules/@semantic-release/exec/node_modules/@sindresorhus/merge-streams": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "node_modules/@semantic-release/git": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", + "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", "dev": true, - "license": "MIT", + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.0", + "p-reduce": "^2.0.0" + }, "engines": { - "node": ">=18" + "node": ">=14.17" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "semantic-release": ">=18.0.0" } }, - "node_modules/@semantic-release/exec/node_modules/execa": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", - "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", + "node_modules/@semantic-release/git/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "license": "MIT", "dependencies": { - "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", - "figures": "^6.1.0", - "get-stream": "^9.0.0", - "human-signals": "^8.0.0", - "is-plain-obj": "^4.1.0", - "is-stream": "^4.0.1", - "npm-run-path": "^6.0.0", - "pretty-ms": "^9.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^4.0.0", - "yoctocolors": "^2.0.0" + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": "^18.19.0 || >=20.5.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@semantic-release/exec/node_modules/get-stream": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "node_modules/@semantic-release/git/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "license": "MIT", - "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" - }, "engines": { - "node": ">=18" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/exec/node_modules/human-signals": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", - "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", + "node_modules/@semantic-release/git/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=18.18.0" + "node": ">=10.17.0" } }, - "node_modules/@semantic-release/exec/node_modules/is-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "node_modules/@semantic-release/git/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/exec/node_modules/npm-run-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", - "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "node_modules/@semantic-release/git/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "license": "MIT", "dependencies": { - "path-key": "^4.0.0", - "unicorn-magic": "^0.3.0" + "path-key": "^3.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@semantic-release/exec/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "node_modules/@semantic-release/git/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==", + "dev": true + }, + "node_modules/@semantic-release/git/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/@semantic-release/exec/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==", + "node_modules/@semantic-release/github": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-11.0.3.tgz", + "integrity": "sha512-T2fKUyFkHHkUNa5XNmcsEcDPuG23hwBKptfUVcFXDVG2cSjXXZYDOfVYwfouqbWo/8UefotLaoGfQeK+k3ep6A==", "dev": true, - "license": "ISC", + "dependencies": { + "@octokit/core": "^7.0.0", + "@octokit/plugin-paginate-rest": "^13.0.0", + "@octokit/plugin-retry": "^8.0.0", + "@octokit/plugin-throttling": "^11.0.0", + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", + "debug": "^4.3.4", + "dir-glob": "^3.0.1", + "globby": "^14.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "issue-parser": "^7.0.0", + "lodash-es": "^4.17.21", + "mime": "^4.0.0", + "p-filter": "^4.0.0", + "url-join": "^5.0.0" + }, "engines": { - "node": ">=14" + "node": ">=20.8.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "semantic-release": ">=24.1.0" } }, - "node_modules/@semantic-release/exec/node_modules/strip-final-newline": { + "node_modules/@semantic-release/github/node_modules/@semantic-release/error": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", - "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", + "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", "dev": true, - "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@semantic-release/github/node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "dev": true, + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, "engines": { "node": ">=18" }, @@ -6375,45 +6147,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/exec/node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "node_modules/@semantic-release/github/node_modules/clean-stack": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, - "license": "MIT", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, "engines": { - "node": ">=18" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/git": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", - "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", + "node_modules/@semantic-release/github/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, - "dependencies": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "execa": "^5.0.0", - "lodash": "^4.17.4", - "micromatch": "^4.0.0", - "p-reduce": "^2.0.0" + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/github/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, "engines": { - "node": ">=14.17" + "node": ">=12" }, - "peerDependencies": { - "semantic-release": ">=18.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/npm": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", - "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.2.tgz", + "integrity": "sha512-+M9/Lb35IgnlUO6OSJ40Ie+hUsZLuph2fqXC/qrKn0fMvUU/jiCjpoL6zEm69vzcmaZJ8yNKtMBEKHWN49WBbQ==", "dev": true, "dependencies": { "@semantic-release/error": "^4.0.0", @@ -6423,7 +6199,7 @@ "lodash-es": "^4.17.21", "nerf-dart": "^1.0.0", "normalize-url": "^8.0.0", - "npm": "^10.5.0", + "npm": "^10.9.3", "rc": "^1.2.8", "read-pkg": "^9.0.0", "registry-auth-token": "^5.0.0", @@ -6446,18 +6222,6 @@ "node": ">=18" } }, - "node_modules/@semantic-release/npm/node_modules/@sindresorhus/merge-streams": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@semantic-release/npm/node_modules/aggregate-error": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", @@ -6501,57 +6265,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.0.tgz", - "integrity": "sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==", - "dev": true, - "dependencies": { - "@sindresorhus/merge-streams": "^4.0.0", - "cross-spawn": "^7.0.3", - "figures": "^6.1.0", - "get-stream": "^9.0.0", - "human-signals": "^8.0.0", - "is-plain-obj": "^4.1.0", - "is-stream": "^4.0.1", - "npm-run-path": "^6.0.0", - "pretty-ms": "^9.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^4.0.0", - "yoctocolors": "^2.0.0" - }, - "engines": { - "node": "^18.19.0 || >=20.5.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@semantic-release/npm/node_modules/get-stream": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", - "dev": true, - "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/human-signals": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", - "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", - "dev": true, - "engines": { - "node": ">=18.18.0" - } - }, "node_modules/@semantic-release/npm/node_modules/indent-string": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", @@ -6564,88 +6277,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/is-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/npm-run-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", - "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0", - "unicorn-magic": "^0.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/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/@semantic-release/npm/node_modules/strip-final-newline": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", - "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@semantic-release/release-notes-generator": { "version": "14.0.3", "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.3.tgz", "integrity": "sha512-XxAZRPWGwO5JwJtS83bRdoIhCiYIx8Vhr+u231pQAsdFIAbm19rSVJLdnBN+Avvk7CKvNQE/nJ4y7uqKH6WTiw==", "dev": true, - "license": "MIT", "dependencies": { "conventional-changelog-angular": "^8.0.0", "conventional-changelog-writer": "^8.0.0", @@ -6665,6 +6301,18 @@ "semantic-release": ">=20.1.0" } }, + "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", + "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", @@ -6678,9 +6326,9 @@ } }, "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, "engines": { "node": ">=18" @@ -6692,14 +6340,12 @@ "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "license": "Apache-2.0" + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" }, "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "license": "Apache-2.0", + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", + "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", "dependencies": { "tslib": "^2.8.0" } @@ -6708,7 +6354,6 @@ "version": "3.11.2", "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.2.tgz", "integrity": "sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==", - "license": "MIT", "dependencies": { "@tanstack/virtual-core": "3.11.2" }, @@ -6725,7 +6370,6 @@ "version": "3.11.2", "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.2.tgz", "integrity": "sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==", - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -6749,7 +6393,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.2.0.tgz", "integrity": "sha512-yJqDSw25T7P48au5KjvYqbDVZ7qVnipziVfZ9aSo7P2/jTE7d4BP21w0/XLi3T/9bry/t9PR1GDDDQljN4KfDw==", - "license": "MIT", "dependencies": { "@turf/helpers": "^7.2.0", "@turf/meta": "^7.2.0", @@ -6846,24 +6489,21 @@ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true }, "node_modules/@types/geojson": { "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", - "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "license": "MIT" + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==" }, "node_modules/@types/geojson-vt": { "version": "3.2.5", @@ -6877,27 +6517,23 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.16", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", - "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", - "license": "MIT" + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==" }, "node_modules/@types/lodash.debounce": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz", "integrity": "sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==", - "license": "MIT", "dependencies": { "@types/lodash": "*" } @@ -6918,12 +6554,11 @@ } }, "node_modules/@types/node": { - "version": "22.13.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz", - "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==", - "license": "MIT", + "version": "22.16.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.2.tgz", + "integrity": "sha512-Cdqa/eJTvt4fC4wmq1Mcc0CPUjp/Qy2FGqLza3z3pKymsI969TcZ54diNJv8UYUgeWxyb8FSbCkhdR6WqmUFhA==", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~6.21.0" } }, "node_modules/@types/normalize-package-data": { @@ -6938,51 +6573,41 @@ "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==" }, "node_modules/@types/pg": { - "version": "8.11.11", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.11.tgz", - "integrity": "sha512-kGT1qKM8wJQ5qlawUrEkXgvMSXoV213KfMGXcwfDwUIfUHXqXYXOfS1nE1LINRJVVVx5wCm70XnFlMHaIcQAfw==", + "version": "8.15.4", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.15.4.tgz", + "integrity": "sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "pg-protocol": "*", - "pg-types": "^4.0.1" + "pg-types": "^2.2.0" } }, "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "dev": true, - "license": "MIT" + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true }, "node_modules/@types/react": { - "version": "18.3.19", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.19.tgz", - "integrity": "sha512-fcdJqaHOMDbiAwJnXv6XCzX0jDW77yI3tJqYh1Byn8EL5/S628WRx9b/y3DnNe55zTukUQKrfYxiZls2dHcUMw==", + "version": "18.3.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz", + "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", "dev": true, - "license": "MIT", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", - "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "dev": true, - "license": "MIT", "peerDependencies": { "@types/react": "^18.0.0" } }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, "node_modules/@types/supercluster": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", @@ -6992,21 +6617,20 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz", - "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.36.0.tgz", + "integrity": "sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.27.0", - "@typescript-eslint/type-utils": "8.27.0", - "@typescript-eslint/utils": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0", + "@typescript-eslint/scope-manager": "8.36.0", + "@typescript-eslint/type-utils": "8.36.0", + "@typescript-eslint/utils": "8.36.0", + "@typescript-eslint/visitor-keys": "8.36.0", "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7016,22 +6640,30 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "@typescript-eslint/parser": "^8.36.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/@typescript-eslint/parser": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz", - "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.36.0.tgz", + "integrity": "sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.27.0", - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/typescript-estree": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0", + "@typescript-eslint/scope-manager": "8.36.0", + "@typescript-eslint/types": "8.36.0", + "@typescript-eslint/typescript-estree": "8.36.0", + "@typescript-eslint/visitor-keys": "8.36.0", "debug": "^4.3.4" }, "engines": { @@ -7046,15 +6678,35 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.36.0.tgz", + "integrity": "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.36.0", + "@typescript-eslint/types": "^8.36.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz", - "integrity": "sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.36.0.tgz", + "integrity": "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0" + "@typescript-eslint/types": "8.36.0", + "@typescript-eslint/visitor-keys": "8.36.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7064,17 +6716,32 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.36.0.tgz", + "integrity": "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz", - "integrity": "sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.36.0.tgz", + "integrity": "sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.27.0", - "@typescript-eslint/utils": "8.27.0", + "@typescript-eslint/typescript-estree": "8.36.0", + "@typescript-eslint/utils": "8.36.0", "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7089,11 +6756,10 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.27.0.tgz", - "integrity": "sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz", + "integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -7103,20 +6769,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz", - "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.36.0.tgz", + "integrity": "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0", + "@typescript-eslint/project-service": "8.36.0", + "@typescript-eslint/tsconfig-utils": "8.36.0", + "@typescript-eslint/types": "8.36.0", + "@typescript-eslint/visitor-keys": "8.36.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7125,21 +6792,44 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/utils": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz", - "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.36.0.tgz", + "integrity": "sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.27.0", - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/typescript-estree": "8.27.0" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.36.0", + "@typescript-eslint/types": "8.36.0", + "@typescript-eslint/typescript-estree": "8.36.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7154,14 +6844,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz", - "integrity": "sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==", + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.36.0.tgz", + "integrity": "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.27.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.36.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7172,11 +6861,10 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -7184,168 +6872,260 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@unrs/rspack-resolver-binding-darwin-arm64": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-arm64/-/rspack-resolver-binding-darwin-arm64-1.2.2.tgz", - "integrity": "sha512-i7z0B+C0P8Q63O/5PXJAzeFtA1ttY3OR2VSJgGv18S+PFNwD98xHgAgPOT1H5HIV6jlQP8Avzbp09qxJUdpPNw==", + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, - "node_modules/@unrs/rspack-resolver-binding-darwin-x64": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-x64/-/rspack-resolver-binding-darwin-x64-1.2.2.tgz", - "integrity": "sha512-YEdFzPjIbDUCfmehC6eS+AdJYtFWY35YYgWUnqqTM2oe/N58GhNy5yRllxYhxwJ9GcfHoNc6Ubze1yjkNv+9Qg==", + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, - "node_modules/@unrs/rspack-resolver-binding-freebsd-x64": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-freebsd-x64/-/rspack-resolver-binding-freebsd-x64-1.2.2.tgz", - "integrity": "sha512-TU4ntNXDgPN2giQyyzSnGWf/dVCem5lvwxg0XYvsvz35h5H19WrhTmHgbrULMuypCB3aHe1enYUC9rPLDw45mA==", + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ] }, - "node_modules/@unrs/rspack-resolver-binding-linux-arm-gnueabihf": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm-gnueabihf/-/rspack-resolver-binding-linux-arm-gnueabihf-1.2.2.tgz", - "integrity": "sha512-ik3w4/rU6RujBvNWiDnKdXi1smBhqxEDhccNi/j2rHaMjm0Fk49KkJ6XKsoUnD2kZ5xaMJf9JjailW/okfUPIw==", + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@unrs/rspack-resolver-binding-linux-arm64-gnu": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-gnu/-/rspack-resolver-binding-linux-arm64-gnu-1.2.2.tgz", - "integrity": "sha512-fp4Azi8kHz6TX8SFmKfyScZrMLfp++uRm2srpqRjsRZIIBzH74NtSkdEUHImR4G7f7XJ+sVZjCc6KDDK04YEpQ==", + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@unrs/rspack-resolver-binding-linux-arm64-musl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-musl/-/rspack-resolver-binding-linux-arm64-musl-1.2.2.tgz", - "integrity": "sha512-gMiG3DCFioJxdGBzhlL86KcFgt9HGz0iDhw0YVYPsShItpN5pqIkNrI+L/Q/0gfDiGrfcE0X3VANSYIPmqEAlQ==", + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@unrs/rspack-resolver-binding-linux-x64-gnu": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-gnu/-/rspack-resolver-binding-linux-x64-gnu-1.2.2.tgz", - "integrity": "sha512-n/4n2CxaUF9tcaJxEaZm+lqvaw2gflfWQ1R9I7WQgYkKEKbRKbpG/R3hopYdUmLSRI4xaW1Cy0Bz40eS2Yi4Sw==", + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@unrs/rspack-resolver-binding-linux-x64-musl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-musl/-/rspack-resolver-binding-linux-x64-musl-1.2.2.tgz", - "integrity": "sha512-cHyhAr6rlYYbon1L2Ag449YCj3p6XMfcYTP0AQX+KkQo025d1y/VFtPWvjMhuEsE2lLvtHm7GdJozj6BOMtzVg==", + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@unrs/rspack-resolver-binding-wasm32-wasi": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-wasm32-wasi/-/rspack-resolver-binding-wasm32-wasi-1.2.2.tgz", - "integrity": "sha512-eogDKuICghDLGc32FtP+WniG38IB1RcGOGz0G3z8406dUdjJvxfHGuGs/dSlM9YEp/v0lEqhJ4mBu6X2nL9pog==", + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", "cpu": [ "wasm32" ], "dev": true, - "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.7" + "@napi-rs/wasm-runtime": "^0.2.11" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@unrs/rspack-resolver-binding-win32-arm64-msvc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-arm64-msvc/-/rspack-resolver-binding-win32-arm64-msvc-1.2.2.tgz", - "integrity": "sha512-7sWRJumhpXSi2lccX8aQpfFXHsSVASdWndLv8AmD8nDRA/5PBi8IplQVZNx2mYRx6+Bp91Z00kuVqpXO9NfCTg==", + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, - "node_modules/@unrs/rspack-resolver-binding-win32-x64-msvc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-x64-msvc/-/rspack-resolver-binding-win32-x64-msvc-1.2.2.tgz", - "integrity": "sha512-hewo/UMGP1a7O6FG/ThcPzSJdm/WwrYDNkdGgWl6M18H6K6MSitklomWpT9MUtT5KGj++QJb06va/14QBC4pvw==", + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@vis.gl/react-mapbox": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@vis.gl/react-mapbox/-/react-mapbox-8.0.1.tgz", - "integrity": "sha512-s/OokvgK1T43Ev2/4hj21C0DKrf79nIigBCdYPtAkEX88qGLRQ5t5zCRqg5Zl+44xXfVxcVpX2/vWUKd9oYGKQ==", - "license": "MIT", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@vis.gl/react-mapbox/-/react-mapbox-8.0.4.tgz", + "integrity": "sha512-NFk0vsWcNzSs0YCsVdt2100Zli9QWR+pje8DacpLkkGEAXFaJsFtI1oKD0Hatiate4/iAIW39SQHhgfhbeEPfQ==", "peerDependencies": { "mapbox-gl": ">=3.5.0", "react": ">=16.3.0", @@ -7358,10 +7138,9 @@ } }, "node_modules/@vis.gl/react-maplibre": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@vis.gl/react-maplibre/-/react-maplibre-8.0.1.tgz", - "integrity": "sha512-IFguo7DKIDZ9U9uRI4thZRfc5aTHEH4lWlIjedBeCpLeMm7wdrqtU2JshyEQt8dDO85kkEE7CbrtjMx5MplaoA==", - "license": "MIT", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@vis.gl/react-maplibre/-/react-maplibre-8.0.4.tgz", + "integrity": "sha512-HwZyfLjEu+y1mUFvwDAkVxinGm8fEegaWN+O8np/WZ2Sqe5Lv6OXFpV6GWz9LOEvBYMbGuGk1FQdejo+4HCJ5w==", "dependencies": { "@maplibre/maplibre-gl-style-spec": "^19.2.1" }, @@ -7380,7 +7159,6 @@ "version": "19.3.3", "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-19.3.3.tgz", "integrity": "sha512-cOZZOVhDSulgK0meTsTkmNXb1ahVvmTmWmfx9gRBwc6hq98wS9JP35ESIoNq3xqEan+UN+gn8187Z6E4NKhLsw==", - "license": "ISC", "dependencies": { "@mapbox/jsonlint-lines-primitives": "~2.0.2", "@mapbox/unitbezier": "^0.0.1", @@ -7398,15 +7176,13 @@ "node_modules/@vis.gl/react-maplibre/node_modules/json-stringify-pretty-compact": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz", - "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==", - "license": "MIT" + "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==" }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -7419,19 +7195,15 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } @@ -7454,7 +7226,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -7482,11 +7253,14 @@ } }, "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==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -7512,7 +7286,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -7524,8 +7297,7 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT" + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/argparse": { "version": "2.0.1", @@ -7540,19 +7312,18 @@ "dev": true }, "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" + "engines": { + "node": ">= 0.4" } }, "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7562,7 +7333,6 @@ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" @@ -7581,17 +7351,19 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7625,7 +7397,6 @@ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -7643,15 +7414,15 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -7665,7 +7436,6 @@ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -7700,7 +7470,6 @@ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, - "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", @@ -7721,7 +7490,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7737,7 +7505,6 @@ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } @@ -7760,7 +7527,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", @@ -7795,9 +7561,9 @@ } }, "node_modules/axe-core": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", - "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", "dev": true, "engines": { "node": ">=4" @@ -7818,15 +7584,15 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/before-after-hook": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", - "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz", + "integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==", "dev": true }, "node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.0.tgz", + "integrity": "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==", "engines": { "node": "*" } @@ -7835,7 +7601,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", "engines": { "node": ">=8" }, @@ -7850,11 +7615,13 @@ "dev": true }, "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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -7869,9 +7636,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", "funding": [ { "type": "opencollective", @@ -7886,12 +7653,11 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -7915,7 +7681,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", - "license": "MIT", "dependencies": { "bytewise-core": "^1.2.2", "typewise": "^1.0.3" @@ -7925,7 +7690,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", - "license": "MIT", "dependencies": { "typewise-core": "^1.2" } @@ -7935,7 +7699,6 @@ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, - "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", @@ -7954,7 +7717,6 @@ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -7968,7 +7730,6 @@ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" @@ -7993,15 +7754,14 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001706", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz", - "integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==", + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", "funding": [ { "type": "opencollective", @@ -8015,8 +7775,7 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/chalk": { "version": "4.1.2", @@ -8043,19 +7802,10 @@ "node": ">=10" } }, - "node_modules/cheap-ruler": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-4.0.0.tgz", - "integrity": "sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==", - "license": "ISC", - "optional": true, - "peer": true - }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -8079,7 +7829,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -8128,26 +7877,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/cli-highlight/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/cli-highlight/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, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cli-highlight/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -8183,6 +7912,15 @@ "node": ">=10" } }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/cli-table3": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", @@ -8198,31 +7936,10 @@ "@colors/colors": "1.5.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==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, "node_modules/cliui": { "version": "8.0.1", @@ -8238,26 +7955,6 @@ "node": ">=12" } }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "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/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -8323,14 +8020,12 @@ "node_modules/color2k": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz", - "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==", - "license": "MIT" + "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==" }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "license": "MIT", "engines": { "node": ">= 6" } @@ -8348,8 +8043,7 @@ "node_modules/compute-scroll-into-view": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", - "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", - "license": "MIT" + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -8386,12 +8080,11 @@ } }, "node_modules/conventional-changelog-writer": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", - "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.1.0.tgz", + "integrity": "sha512-dpC440QnORNCO81XYuRRFOLCsjKj4W7tMkUIn3lR6F/FAaJcWLi7iCj6IcEvSQY2zw6VUgwUKd5DEHKEWrpmEQ==", "dev": true, "dependencies": { - "@types/semver": "^7.5.5", "conventional-commits-filter": "^5.0.0", "handlebars": "^4.7.7", "meow": "^13.0.0", @@ -8404,18 +8097,6 @@ "node": ">=18" } }, - "node_modules/conventional-changelog-writer/node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/conventional-commits-filter": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", @@ -8426,9 +8107,9 @@ } }, "node_modules/conventional-commits-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", - "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.2.0.tgz", + "integrity": "sha512-uLnoLeIW4XaoFtH37qEcg/SXMJmKF4vi7V0H2rnPueg+VEtFGA/asSCNTcq4M/GQ6QmlzchAEtOoDTtKqWeHag==", "dev": true, "dependencies": { "meow": "^13.0.0" @@ -8440,18 +8121,6 @@ "node": ">=18" } }, - "node_modules/conventional-commits-parser/node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/convert-hrtime": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", @@ -8518,7 +8187,6 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8570,7 +8238,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -8596,7 +8263,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0", @@ -8624,7 +8290,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" }, @@ -8632,17 +8297,10 @@ "postcss": "^8.4" } }, - "node_modules/csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", - "optional": true, - "peer": true - }, "node_modules/cssdb": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.4.tgz", - "integrity": "sha512-3KSCVkjZJe/QxicVXnbyYSY26WsFc1YoMY7jep1ZKWMEVc7jEm6V2Xq2r+MX8WKQIuB7ofGbnr5iVI+aZpoSzg==", + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.3.1.tgz", + "integrity": "sha512-XnDRQMXucLueX92yDe0LPKupXetWoFOgawr4O4X41l5TltgK2NVbJJVDnnOywDYfW1sTJ28AcXGKOqdRKwCcmQ==", "dev": true, "funding": [ { @@ -8653,8 +8311,7 @@ "type": "github", "url": "https://github.com/sponsors/csstools" } - ], - "license": "MIT-0" + ] }, "node_modules/cssesc": { "version": "3.0.0", @@ -8684,7 +8341,6 @@ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -8702,7 +8358,6 @@ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -8720,7 +8375,6 @@ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -8734,9 +8388,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "dev": true, "dependencies": { "ms": "^2.1.3" @@ -8751,42 +8405,9 @@ } }, "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", - "license": "MIT" - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==" }, "node_modules/deep-extend": { "version": "0.6.0", @@ -8807,7 +8428,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8847,9 +8467,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", "engines": { "node": ">=8" } @@ -8857,8 +8477,7 @@ "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "license": "Apache-2.0" + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, "node_modules/dir-glob": { "version": "3.0.1", @@ -8875,15 +8494,13 @@ "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "license": "MIT" + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -8908,7 +8525,6 @@ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, - "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -8930,20 +8546,17 @@ "node_modules/earcut": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", - "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", - "license": "ISC" + "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==" }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/electron-to-chromium": { - "version": "1.5.123", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.123.tgz", - "integrity": "sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==", - "license": "ISC" + "version": "1.5.180", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.180.tgz", + "integrity": "sha512-ED+GEyEh3kYMwt2faNmgMB0b8O5qtATGgR4RmRsIp4T6p7B8vdMbIedYndnvZfsaXvSzegtpfqRMDNCjjiSduA==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -8957,9 +8570,9 @@ "dev": true }, "node_modules/env-ci": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.1.0.tgz", - "integrity": "sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.1.1.tgz", + "integrity": "sha512-mT3ks8F0kwpo7SYNds6nWj0PaRh+qJxIeBVBXAKTN9hphAzZv7s0QAZQbqnB1fAv/r4pJUGE15BV9UrS31FP2w==", "dev": true, "dependencies": { "execa": "^8.0.0", @@ -9079,18 +8692,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/env-ci/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/env-ci/node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -9140,28 +8741,27 @@ "dev": true }, "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", "dev": true, - "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.3", + "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", @@ -9173,21 +8773,24 @@ "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", + "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", + "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", + "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", @@ -9196,7 +8799,7 @@ "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -9210,7 +8813,6 @@ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } @@ -9224,32 +8826,11 @@ "node": ">= 0.4" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-iterator-helpers": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -9277,7 +8858,6 @@ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -9290,7 +8870,6 @@ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -9306,7 +8885,6 @@ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, - "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -9319,7 +8897,6 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", @@ -9353,20 +8930,19 @@ } }, "node_modules/eslint": { - "version": "9.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", - "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", + "version": "9.30.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.30.1.tgz", + "integrity": "sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.2", - "@eslint/config-helpers": "^0.1.0", - "@eslint/core": "^0.12.0", - "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "9.22.0", - "@eslint/plugin-kit": "^0.2.7", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.14.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.30.1", + "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -9377,9 +8953,9 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.3.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -9414,13 +8990,12 @@ } }, "node_modules/eslint-config-next": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.3.tgz", - "integrity": "sha512-VDQwbajhNMFmrhLWVyUXCqsGPN+zz5G8Ys/QwFubfsxTIrkqdx3N3x3QPW+pERz8bzGPP0IgEm8cNbZcd8PFRQ==", + "version": "15.3.5", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.3.5.tgz", + "integrity": "sha512-oQdvnIgP68wh2RlR3MdQpvaJ94R6qEFl+lnu8ZKxPj5fsAHrSF/HlAOZcsimLw3DT6bnEQIUdbZC2Ab6sWyptg==", "dev": true, - "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.2.3", + "@next/eslint-plugin-next": "15.3.5", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -9442,14 +9017,16 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", - "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz", + "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==", "dev": true, - "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, "peerDependencies": { "eslint": ">=7.0.0" } @@ -9475,25 +9052,24 @@ } }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.9.1.tgz", - "integrity": "sha512-euxa5rTGqHeqVxmOHT25hpk58PxkQ4mNoX6Yun4ooGaCHAxOCojJYNvjmyeOQxj/LyW+3fulH0+xtk+p2kPPTw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", "dev": true, - "license": "ISC", "dependencies": { "@nolyfill/is-core-module": "1.0.39", "debug": "^4.4.0", "get-tsconfig": "^4.10.0", - "is-bun-module": "^1.3.0", - "rspack-resolver": "^1.1.0", + "is-bun-module": "^2.0.0", "stable-hash": "^0.0.5", - "tinyglobby": "^0.2.12" + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + "url": "https://opencollective.com/eslint-import-resolver-typescript" }, "peerDependencies": { "eslint": "*", @@ -9509,30 +9085,11 @@ } } }, - "node_modules/eslint-import-resolver-typescript/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -9559,30 +9116,29 @@ "link": true }, "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, - "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", + "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", - "is-core-module": "^2.15.1", + "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", + "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "engines": { @@ -9592,57 +9148,31 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/eslint-plugin-import/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz", - "integrity": "sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, "dependencies": { - "aria-query": "~5.1.3", + "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", @@ -9650,14 +9180,13 @@ "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.19", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.0" + "string.prototype.includes": "^2.0.1" }, "engines": { "node": ">=4.0" @@ -9666,37 +9195,14 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, - "node_modules/eslint-plugin-jsx-a11y/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", - "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.1.tgz", + "integrity": "sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==", "dev": true, - "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" + "synckit": "^0.11.7" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -9707,7 +9213,7 @@ "peerDependencies": { "@types/eslint": ">=8.0.0", "eslint": ">=8.0.0", - "eslint-config-prettier": "*", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", "prettier": ">=3.0.0" }, "peerDependenciesMeta": { @@ -9720,11 +9226,10 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", - "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, - "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -9736,7 +9241,7 @@ "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.8", + "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", @@ -9757,7 +9262,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -9765,28 +9269,6 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, - "node_modules/eslint-plugin-react/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -9814,11 +9296,10 @@ } }, "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -9842,32 +9323,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "9.22.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", - "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/eslint/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -9875,28 +9335,15 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -9906,11 +9353,10 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -9935,7 +9381,6 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -9965,51 +9410,40 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.0.tgz", + "integrity": "sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" + }, "engines": { - "node": ">=10" + "node": "^18.19.0 || >=20.5.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -10018,9 +9452,9 @@ } }, "node_modules/fast-content-type-parse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", - "integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-3.0.0.tgz", + "integrity": "sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==", "dev": true, "funding": [ { @@ -10037,8 +9471,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-diff": { "version": "1.3.0", @@ -10047,15 +9480,15 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -10076,8 +9509,7 @@ "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==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -10086,9 +9518,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dependencies": { "reusify": "^1.0.4" } @@ -10118,7 +9550,6 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, - "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -10154,9 +9585,9 @@ } }, "node_modules/find-up-simple": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", - "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", + "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", "dev": true, "engines": { "node": ">=18" @@ -10185,7 +9616,6 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } @@ -10195,7 +9625,6 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, - "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -10208,15 +9637,13 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.2.7" }, @@ -10231,7 +9658,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "license": "ISC", "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" @@ -10243,18 +9669,6 @@ "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==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -10268,13 +9682,12 @@ } }, "node_modules/framer-motion": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.5.0.tgz", - "integrity": "sha512-buPlioFbH9/W7rDzYh1C09AuZHAk2D1xTA1BlounJ2Rb9aRg84OXexP0GLd+R83v0khURdMX7b5MKnGTaSg5iA==", - "license": "MIT", + "version": "12.23.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.1.tgz", + "integrity": "sha512-7P1t2DnKEUXvPxVZJu9Hd4gfdoUF6z9U3w3/MUXCVFNHiFV+iSoboqeK4/ZCCpa49/ZiVEWfaaYCPscqPPsOVQ==", "dependencies": { - "motion-dom": "^12.5.0", - "motion-utils": "^12.5.0", + "motion-dom": "^12.23.1", + "motion-utils": "^12.23.1", "tslib": "^2.4.0" }, "peerDependencies": { @@ -10305,9 +9718,9 @@ } }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -10323,7 +9736,6 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -10357,7 +9769,6 @@ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -10390,8 +9801,7 @@ "node_modules/geojson-vt": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", - "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==", - "license": "ISC" + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==" }, "node_modules/get-caller-file": { "version": "2.0.5", @@ -10407,7 +9817,6 @@ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", @@ -10432,7 +9841,6 @@ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, - "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -10442,12 +9850,16 @@ } }, "node_modules/get-stream": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", - "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10458,7 +9870,6 @@ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -10472,11 +9883,10 @@ } }, "node_modules/get-tsconfig": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", - "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", + "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", "dev": true, - "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -10488,7 +9898,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10516,7 +9925,6 @@ "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -10543,6 +9951,28 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/global-prefix": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz", @@ -10583,7 +10013,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -10608,18 +10037,30 @@ } }, "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", "dev": true, "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, "engines": { "node": ">=18" }, @@ -10627,13 +10068,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/globby/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", "dev": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10644,7 +10094,6 @@ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10663,13 +10112,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==", - "optional": true, - "peer": true - }, "node_modules/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", @@ -10692,10 +10134,13 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -10726,7 +10171,6 @@ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, - "license": "MIT", "dependencies": { "dunder-proto": "^1.0.0" }, @@ -10742,7 +10186,6 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10797,6 +10240,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/hosted-git-info": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz", + "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", @@ -10811,12 +10266,12 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -10824,12 +10279,12 @@ } }, "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=18.18.0" } }, "node_modules/ieee754": { @@ -10861,9 +10316,9 @@ } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "dependencies": { "parent-module": "^1.0.0", @@ -10881,7 +10336,6 @@ "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-2.0.0.tgz", "integrity": "sha512-YVt14UZCgsX1vZQ3gKjkWVdBdHQ6eu3MPU1TBgL1H5orXe2+jWD006WCPPtOuwlQm10NuzOW5WawiF1Q9veW8g==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.3.4", "import-meta-resolve": "^4.0.0" @@ -10919,9 +10373,9 @@ } }, "node_modules/index-to-position": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", - "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.1.0.tgz", + "integrity": "sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==", "dev": true, "engines": { "node": ">=18" @@ -10948,7 +10402,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.1.tgz", "integrity": "sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==", - "license": "MIT", "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" @@ -10959,7 +10412,6 @@ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", @@ -10970,15 +10422,14 @@ } }, "node_modules/intl-messageformat": { - "version": "10.7.15", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.15.tgz", - "integrity": "sha512-LRyExsEsefQSBjU2p47oAheoKz+EOJxSLDdjOaEjdriajfHsMXOmV/EhMvYSg9bAgCUHasuAC+mcUBe/95PfIg==", - "license": "BSD-3-Clause", + "version": "10.7.16", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.16.tgz", + "integrity": "sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.3", - "@formatjs/fast-memoize": "2.2.6", - "@formatjs/icu-messageformat-parser": "2.11.1", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.2", + "tslib": "^2.8.0" } }, "node_modules/into-stream": { @@ -10997,28 +10448,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -11041,7 +10475,6 @@ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, - "license": "MIT", "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", @@ -11061,7 +10494,6 @@ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, - "license": "MIT", "dependencies": { "has-bigints": "^1.0.2" }, @@ -11076,7 +10508,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -11089,7 +10520,6 @@ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -11102,13 +10532,12 @@ } }, "node_modules/is-bun-module": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", - "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", "dev": true, - "license": "MIT", "dependencies": { - "semver": "^7.6.3" + "semver": "^7.7.1" } }, "node_modules/is-callable": { @@ -11124,9 +10553,9 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dependencies": { "hasown": "^2.0.2" }, @@ -11142,7 +10571,6 @@ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", @@ -11160,7 +10588,6 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -11176,7 +10603,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11194,7 +10620,6 @@ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -11218,7 +10643,6 @@ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", @@ -11255,6 +10679,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -11268,7 +10704,6 @@ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -11294,7 +10729,6 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -11306,7 +10740,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -11319,7 +10752,6 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", @@ -11350,7 +10782,6 @@ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -11362,12 +10793,12 @@ } }, "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11378,7 +10809,6 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -11395,7 +10825,6 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", @@ -11413,7 +10842,6 @@ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, - "license": "MIT", "dependencies": { "which-typed-array": "^1.1.16" }, @@ -11453,7 +10881,6 @@ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -11465,13 +10892,13 @@ } }, "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -11495,7 +10922,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11521,7 +10947,6 @@ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, - "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", @@ -11538,7 +10963,6 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -11562,7 +10986,6 @@ "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "license": "MIT", "bin": { "jiti": "bin/jiti.js" } @@ -11570,8 +10993,7 @@ "node_modules/js-base64": { "version": "3.7.7", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", - "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==", - "license": "BSD-3-Clause" + "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==" }, "node_modules/js-tokens": { "version": "4.0.0", @@ -11594,8 +11016,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-parse-better-errors": { "version": "1.0.2", @@ -11613,8 +11034,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -11632,7 +11052,6 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -11677,7 +11096,6 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -11725,7 +11143,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", "engines": { "node": ">=14" }, @@ -11828,75 +11245,31 @@ "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", "dev": true }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "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==", - "license": "ISC" - }, - "node_modules/mapbox-gl": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.10.0.tgz", - "integrity": "sha512-YnQxjlthuv/tidcxGYU2C8nRDVXMlAHa3qFhuOJeX4AfRP72OMRBf9ApL+M+k5VWcAXi2fcNOUVgphknjLumjA==", - "license": "SEE LICENSE IN LICENSE.txt", - "optional": true, - "peer": true, - "workspaces": [ - "src/style-spec", - "test/build/typings" - ], - "dependencies": { - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^3.0.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^2.0.6", - "@mapbox/unitbezier": "^0.0.1", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "@types/geojson": "^7946.0.16", - "@types/geojson-vt": "^3.2.5", - "@types/mapbox__point-geometry": "^0.1.4", - "@types/mapbox__vector-tile": "^1.3.4", - "@types/pbf": "^3.0.5", - "@types/supercluster": "^7.1.3", - "cheap-ruler": "^4.0.0", - "csscolorparser": "~1.0.3", - "earcut": "^3.0.0", - "geojson-vt": "^4.0.2", - "gl-matrix": "^3.4.3", - "grid-index": "^1.1.0", - "kdbush": "^4.0.2", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^2.0.0", - "quickselect": "^3.0.0", - "serialize-to-js": "^3.1.2", - "supercluster": "^8.0.1", - "tinyqueue": "^3.0.0", - "vt-pbf": "^3.1.3" + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, + "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==" + }, "node_modules/maplibre-gl": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.2.0.tgz", - "integrity": "sha512-9zZKD0M80qtDsqBet+EDuAhoCeA/cnAuZAA0p3hcGKGbyjM/SH+R6wQvnBEgvJz9UhDynnkoKdUwhI+fUkHoXQ==", - "license": "BSD-3-Clause", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.6.1.tgz", + "integrity": "sha512-TTSfoTaF7RqKUR9wR5qDxCHH2J1XfZ1E85luiLOx0h8r50T/LnwAwwfV0WVNh9o8dA7rwt57Ucivf1emyeukXg==", "dependencies": { "@mapbox/geojson-rewind": "^0.5.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", @@ -11905,7 +11278,7 @@ "@mapbox/unitbezier": "^0.0.1", "@mapbox/vector-tile": "^1.3.1", "@mapbox/whoots-js": "^3.1.0", - "@maplibre/maplibre-gl-style-spec": "^23.1.0", + "@maplibre/maplibre-gl-style-spec": "^23.3.0", "@types/geojson": "^7946.0.16", "@types/geojson-vt": "3.2.5", "@types/mapbox__point-geometry": "^0.1.4", @@ -11934,9 +11307,9 @@ } }, "node_modules/marked": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", - "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", + "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "dev": true, "bin": { "marked": "bin/marked.js" @@ -11946,29 +11319,30 @@ } }, "node_modules/marked-terminal": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.1.0.tgz", - "integrity": "sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.3.0.tgz", + "integrity": "sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==", "dev": true, "dependencies": { "ansi-escapes": "^7.0.0", - "chalk": "^5.3.0", + "ansi-regex": "^6.1.0", + "chalk": "^5.4.1", "cli-highlight": "^2.1.11", "cli-table3": "^0.6.5", - "node-emoji": "^2.1.3", - "supports-hyperlinks": "^3.0.0" + "node-emoji": "^2.2.0", + "supports-hyperlinks": "^3.1.0" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "marked": ">=1 <14" + "marked": ">=1 <16" } }, "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", "dev": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -11982,11 +11356,22 @@ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -12014,9 +11399,9 @@ } }, "node_modules/mime": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.4.tgz", - "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.7.tgz", + "integrity": "sha512-2OfDPL+e03E0LrXaGYOtTFIYhiuzep94NSsuhrNULq+stylcJedcHdzHtz0atMUuGwJfFYs0YL5xeC/Ca2x0eQ==", "dev": true, "funding": [ "https://github.com/sponsors/broofa" @@ -12038,17 +11423,15 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "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": { @@ -12063,25 +11446,22 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/motion-dom": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.5.0.tgz", - "integrity": "sha512-uH2PETDh7m+Hjd1UQQ56yHqwn83SAwNjimNPE/kC+Kds0t4Yh7+29rfo5wezVFpPOv57U4IuWved5d1x0kNhbQ==", - "license": "MIT", + "version": "12.23.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.1.tgz", + "integrity": "sha512-kcMDS8yhUZgO7iu3FB0UYZpHUymZlj4aoEqH0Vf0k3JtZA0xfYIrmbDlKn6X7+INXV3hDAIBUf4aT5jEUHvvWQ==", "dependencies": { - "motion-utils": "^12.5.0" + "motion-utils": "^12.23.1" } }, "node_modules/motion-utils": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.5.0.tgz", - "integrity": "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA==", - "license": "MIT" + "version": "12.23.1", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.1.tgz", + "integrity": "sha512-coqLmHUTBA1KyBNEO64sTCWlduDV5Q6Yv0szjxnHVzZmcFYpVowyP6S38iOUlhocannaCCHlZ06lyLWQe/jheQ==" }, "node_modules/ms": { "version": "2.1.3", @@ -12110,9 +11490,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz", - "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -12126,6 +11506,21 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-postinstall": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.0.tgz", + "integrity": "sha512-M7NqKyhODKV1gRLdkwE7pDsZP2/SC2a2vHkOYh9MCpKMbWVfyVfUw5MaH83Fv6XMjxr5jryUp3IDDL9rlxsTeA==", + "dev": true, + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -12145,12 +11540,11 @@ "dev": true }, "node_modules/next": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.26.tgz", - "integrity": "sha512-b81XSLihMwCfwiUVRRja3LphLo4uBBMZEzBBWMaISbKTwOmq3wPknIETy/8000tr7Gq4WmbuFYPS7jOYIf+ZJw==", - "license": "MIT", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.30.tgz", + "integrity": "sha512-+COdu6HQrHHFQ1S/8BBsCag61jZacmvbuL2avHvQFbWa2Ox7bE+d8FyNgxRLjXQ5wtPyQwEmk85js/AuaG2Sbg==", "dependencies": { - "@next/env": "14.2.26", + "@next/env": "14.2.30", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -12165,15 +11559,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.26", - "@next/swc-darwin-x64": "14.2.26", - "@next/swc-linux-arm64-gnu": "14.2.26", - "@next/swc-linux-arm64-musl": "14.2.26", - "@next/swc-linux-x64-gnu": "14.2.26", - "@next/swc-linux-x64-musl": "14.2.26", - "@next/swc-win32-arm64-msvc": "14.2.26", - "@next/swc-win32-ia32-msvc": "14.2.26", - "@next/swc-win32-x64-msvc": "14.2.26" + "@next/swc-darwin-arm64": "14.2.30", + "@next/swc-darwin-x64": "14.2.30", + "@next/swc-linux-arm64-gnu": "14.2.30", + "@next/swc-linux-arm64-musl": "14.2.30", + "@next/swc-linux-x64-gnu": "14.2.30", + "@next/swc-linux-x64-musl": "14.2.30", + "@next/swc-win32-arm64-msvc": "14.2.30", + "@next/swc-win32-ia32-msvc": "14.2.30", + "@next/swc-win32-x64-msvc": "14.2.30" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -12198,7 +11592,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", - "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", "tslib": "^2.4.0" @@ -12232,9 +11625,9 @@ } }, "node_modules/node-emoji": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", - "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", "dev": true, "dependencies": { "@sindresorhus/is": "^4.6.0", @@ -12249,14 +11642,38 @@ "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "license": "MIT" + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12270,9 +11687,9 @@ } }, "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.2.tgz", + "integrity": "sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==", "dev": true, "engines": { "node": ">=14.16" @@ -12282,9 +11699,9 @@ } }, "node_modules/npm": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.9.2.tgz", - "integrity": "sha512-iriPEPIkoMYUy3F6f3wwSZAU93E0Eg6cHwIR6jzzOXWSy+SD/rOODEs74cVONHKSx2obXtuUoyidVEhISrisgQ==", + "version": "10.9.3", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.9.3.tgz", + "integrity": "sha512-6Eh1u5Q+kIVXeA8e7l2c/HpnFFcwrkt37xDMujD5be1gloWa9p6j3Fsv3mByXXmqJHy+2cElRMML8opNT7xIJQ==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -12356,47 +11773,39 @@ "write-file-atomic" ], "dev": true, - "license": "Artistic-2.0", - "workspaces": [ - "docs", - "smoke-tests", - "mock-globals", - "mock-registry", - "workspaces/*" - ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^8.0.0", + "@npmcli/arborist": "^8.0.1", "@npmcli/config": "^9.0.0", "@npmcli/fs": "^4.0.0", "@npmcli/map-workspaces": "^4.0.2", - "@npmcli/package-json": "^6.1.0", + "@npmcli/package-json": "^6.2.0", "@npmcli/promise-spawn": "^8.0.2", - "@npmcli/redact": "^3.0.0", - "@npmcli/run-script": "^9.0.1", - "@sigstore/tuf": "^3.0.0", - "abbrev": "^3.0.0", + "@npmcli/redact": "^3.2.2", + "@npmcli/run-script": "^9.1.0", + "@sigstore/tuf": "^3.1.1", + "abbrev": "^3.0.1", "archy": "~1.0.0", "cacache": "^19.0.1", - "chalk": "^5.3.0", - "ci-info": "^4.1.0", + "chalk": "^5.4.1", + "ci-info": "^4.2.0", "cli-columns": "^4.0.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", "glob": "^10.4.5", "graceful-fs": "^4.2.11", - "hosted-git-info": "^8.0.2", + "hosted-git-info": "^8.1.0", "ini": "^5.0.0", "init-package-json": "^7.0.2", - "is-cidr": "^5.1.0", + "is-cidr": "^5.1.1", "json-parse-even-better-errors": "^4.0.0", "libnpmaccess": "^9.0.0", - "libnpmdiff": "^7.0.0", - "libnpmexec": "^9.0.0", - "libnpmfund": "^6.0.0", + "libnpmdiff": "^7.0.1", + "libnpmexec": "^9.0.1", + "libnpmfund": "^6.0.1", "libnpmhook": "^11.0.0", "libnpmorg": "^7.0.0", - "libnpmpack": "^8.0.0", + "libnpmpack": "^8.0.1", "libnpmpublish": "^10.0.1", "libnpmsearch": "^8.0.0", "libnpmteam": "^7.0.0", @@ -12406,23 +11815,23 @@ "minipass": "^7.1.1", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^11.0.0", - "nopt": "^8.0.0", + "node-gyp": "^11.2.0", + "nopt": "^8.1.0", "normalize-package-data": "^7.0.0", "npm-audit-report": "^6.0.0", "npm-install-checks": "^7.1.1", - "npm-package-arg": "^12.0.0", + "npm-package-arg": "^12.0.2", "npm-pick-manifest": "^10.0.0", "npm-profile": "^11.0.1", "npm-registry-fetch": "^18.0.2", "npm-user-validate": "^3.0.0", - "p-map": "^4.0.0", + "p-map": "^7.0.3", "pacote": "^19.0.1", "parse-conflict-json": "^4.0.0", "proc-log": "^5.0.0", "qrcode-terminal": "^0.12.0", - "read": "^4.0.0", - "semver": "^7.6.3", + "read": "^4.1.0", + "semver": "^7.7.2", "spdx-expression-parse": "^4.0.0", "ssri": "^12.0.0", "supports-color": "^9.4.0", @@ -12430,7 +11839,7 @@ "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", - "validate-npm-package-name": "^6.0.0", + "validate-npm-package-name": "^6.0.1", "which": "^5.0.0", "write-file-atomic": "^6.0.0" }, @@ -12443,15 +11852,31 @@ } }, "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", "dev": true, "dependencies": { - "path-key": "^3.0.0" + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/@isaacs/cliui": { @@ -12556,7 +11981,7 @@ } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "8.0.0", + "version": "8.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -12636,7 +12061,7 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "6.0.1", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -12646,7 +12071,6 @@ "lru-cache": "^10.0.1", "npm-pick-manifest": "^10.0.0", "proc-log": "^5.0.0", - "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^5.0.0" @@ -12752,7 +12176,7 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "6.1.0", + "version": "6.2.0", "dev": true, "inBundle": true, "license": "ISC", @@ -12761,9 +12185,9 @@ "glob": "^10.2.2", "hosted-git-info": "^8.0.0", "json-parse-even-better-errors": "^4.0.0", - "normalize-package-data": "^7.0.0", "proc-log": "^5.0.0", - "semver": "^7.5.3" + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -12782,19 +12206,19 @@ } }, "node_modules/npm/node_modules/@npmcli/query": { - "version": "4.0.0", + "version": "4.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.1.2" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/redact": { - "version": "3.0.0", + "version": "3.2.2", "dev": true, "inBundle": true, "license": "ISC", @@ -12803,7 +12227,7 @@ } }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "9.0.2", + "version": "9.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -12830,21 +12254,21 @@ } }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", + "version": "0.4.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "3.0.0", + "version": "3.1.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/protobuf-specs": "^0.4.1", "tuf-js": "^3.0.1" }, "engines": { @@ -12861,7 +12285,7 @@ } }, "node_modules/npm/node_modules/abbrev": { - "version": "3.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -12870,30 +12294,14 @@ } }, "node_modules/npm/node_modules/agent-base": { - "version": "7.1.1", + "version": "7.1.3", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, - "node_modules/npm/node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/ansi-regex": { "version": "5.0.1", "dev": true, @@ -12962,7 +12370,7 @@ } }, "node_modules/npm/node_modules/brace-expansion": { - "version": "2.0.1", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -13002,19 +12410,6 @@ "node": ">=18" } }, - "node_modules/npm/node_modules/cacache/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { "version": "3.0.1", "dev": true, @@ -13030,18 +12425,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/cacache/node_modules/p-map": { - "version": "7.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm/node_modules/cacache/node_modules/tar": { "version": "7.4.3", "dev": true, @@ -13069,7 +12452,7 @@ } }, "node_modules/npm/node_modules/chalk": { - "version": "5.3.0", + "version": "5.4.1", "dev": true, "inBundle": true, "license": "MIT", @@ -13090,7 +12473,7 @@ } }, "node_modules/npm/node_modules/ci-info": { - "version": "4.1.0", + "version": "4.2.0", "dev": true, "funding": [ { @@ -13105,7 +12488,7 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "4.1.1", + "version": "4.1.3", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -13116,15 +12499,6 @@ "node": ">=14" } }, - "node_modules/npm/node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/npm/node_modules/cli-columns": { "version": "4.0.0", "dev": true, @@ -13213,7 +12587,7 @@ } }, "node_modules/npm/node_modules/debug": { - "version": "4.3.7", + "version": "4.4.1", "dev": true, "inBundle": true, "license": "MIT", @@ -13276,7 +12650,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/exponential-backoff": { - "version": "3.1.1", + "version": "3.1.2", "dev": true, "inBundle": true, "license": "Apache-2.0" @@ -13291,12 +12665,12 @@ } }, "node_modules/npm/node_modules/foreground-child": { - "version": "3.3.0", + "version": "3.3.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -13345,7 +12719,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "8.0.2", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -13357,7 +12731,7 @@ } }, "node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.1", + "version": "4.2.0", "dev": true, "inBundle": true, "license": "BSD-2-Clause" @@ -13376,12 +12750,12 @@ } }, "node_modules/npm/node_modules/https-proxy-agent": { - "version": "7.0.5", + "version": "7.0.6", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -13422,15 +12796,6 @@ "node": ">=0.8.19" } }, - "node_modules/npm/node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/ini": { "version": "5.0.0", "dev": true, @@ -13484,7 +12849,7 @@ } }, "node_modules/npm/node_modules/is-cidr": { - "version": "5.1.0", + "version": "5.1.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -13584,12 +12949,12 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "7.0.0", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^8.0.0", + "@npmcli/arborist": "^8.0.1", "@npmcli/installed-package-contents": "^3.0.0", "binary-extensions": "^2.3.0", "diff": "^5.1.0", @@ -13603,12 +12968,12 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "9.0.0", + "version": "9.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^8.0.0", + "@npmcli/arborist": "^8.0.1", "@npmcli/run-script": "^9.0.1", "ci-info": "^4.0.0", "npm-package-arg": "^12.0.0", @@ -13624,12 +12989,12 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "6.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^8.0.0" + "@npmcli/arborist": "^8.0.1" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -13662,12 +13027,12 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "8.0.0", + "version": "8.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^8.0.0", + "@npmcli/arborist": "^8.0.1", "@npmcli/run-script": "^9.0.1", "npm-package-arg": "^12.0.0", "pacote": "^19.0.0" @@ -13810,7 +13175,7 @@ } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "4.0.0", + "version": "4.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -13826,19 +13191,6 @@ "encoding": "^0.1.13" } }, - "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/npm/node_modules/minipass-flush": { "version": "1.0.5", "dev": true, @@ -13912,28 +13264,15 @@ } }, "node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.1.2" }, "engines": { - "node": ">=8" + "node": ">= 18" } }, "node_modules/npm/node_modules/mkdirp": { @@ -13964,20 +13303,20 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "11.0.0", + "version": "11.2.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", "graceful-fs": "^4.2.6", "make-fetch-happen": "^14.0.3", "nopt": "^8.0.0", "proc-log": "^5.0.0", "semver": "^7.3.5", "tar": "^7.4.3", + "tinyglobby": "^0.2.12", "which": "^5.0.0" }, "bin": { @@ -13996,19 +13335,6 @@ "node": ">=18" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/npm/node_modules/node-gyp/node_modules/mkdirp": { "version": "3.0.1", "dev": true, @@ -14051,12 +13377,12 @@ } }, "node_modules/npm/node_modules/nopt": { - "version": "8.0.0", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "abbrev": "^2.0.0" + "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" @@ -14065,15 +13391,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/nopt/node_modules/abbrev": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/normalize-package-data": { "version": "7.0.0", "dev": true, @@ -14131,7 +13448,7 @@ } }, "node_modules/npm/node_modules/npm-package-arg": { - "version": "12.0.0", + "version": "12.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -14204,19 +13521,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/npm/node_modules/npm-user-validate": { "version": "3.0.0", "dev": true, @@ -14227,15 +13531,12 @@ } }, "node_modules/npm/node_modules/p-map": { - "version": "4.0.0", + "version": "7.0.3", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -14318,7 +13619,7 @@ } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.1.2", + "version": "7.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -14366,12 +13667,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/promise-retry": { "version": "2.0.1", "dev": true, @@ -14406,7 +13701,7 @@ } }, "node_modules/npm/node_modules/read": { - "version": "4.0.0", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -14448,21 +13743,6 @@ "node": ">= 4" } }, - "node_modules/npm/node_modules/rimraf": { - "version": "5.0.10", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", "dev": true, @@ -14471,7 +13751,7 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.6.3", + "version": "7.7.2", "dev": true, "inBundle": true, "license": "ISC", @@ -14516,29 +13796,29 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^3.0.0", - "@sigstore/tuf": "^3.0.0", - "@sigstore/verify": "^2.0.0" + "@sigstore/protobuf-specs": "^0.4.0", + "@sigstore/sign": "^3.1.0", + "@sigstore/tuf": "^3.1.0", + "@sigstore/verify": "^2.1.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/bundle": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" + "@sigstore/protobuf-specs": "^0.4.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -14554,15 +13834,15 @@ } }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/sign": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^14.0.1", + "@sigstore/protobuf-specs": "^0.4.0", + "make-fetch-happen": "^14.0.2", "proc-log": "^5.0.0", "promise-retry": "^2.0.1" }, @@ -14571,14 +13851,14 @@ } }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/verify": { - "version": "2.0.0", + "version": "2.1.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2" + "@sigstore/protobuf-specs": "^0.4.1" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -14595,7 +13875,7 @@ } }, "node_modules/npm/node_modules/socks": { - "version": "2.8.3", + "version": "2.8.5", "dev": true, "inBundle": true, "license": "MIT", @@ -14609,12 +13889,12 @@ } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.4", + "version": "8.0.5", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" }, @@ -14659,7 +13939,7 @@ } }, "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.20", + "version": "3.0.21", "dev": true, "inBundle": true, "license": "CC0-1.0" @@ -14798,6 +14078,31 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -14810,6 +14115,48 @@ "inBundle": true, "license": "MIT" }, + "node_modules/npm/node_modules/tinyglobby": { + "version": "0.2.14", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/npm/node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/npm/node_modules/treeverse": { "version": "3.0.0", "dev": true, @@ -14897,7 +14244,7 @@ } }, "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "6.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -15066,7 +14413,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "license": "MIT", "engines": { "node": ">= 6" } @@ -15076,23 +14422,6 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, "engines": { "node": ">= 0.4" }, @@ -15114,7 +14443,6 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -15131,14 +14459,15 @@ } }, "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "es-object-atoms": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -15167,7 +14496,6 @@ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -15182,7 +14510,6 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -15196,12 +14523,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -15239,7 +14560,6 @@ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -15319,9 +14639,9 @@ } }, "node_modules/p-map": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", - "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", "dev": true, "engines": { "node": ">=18" @@ -15351,8 +14671,7 @@ "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, "node_modules/parent-module": { "version": "1.0.1", @@ -15367,14 +14686,14 @@ } }, "node_modules/parse-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", - "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "index-to-position": "^0.1.2", - "type-fest": "^4.7.1" + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" }, "engines": { "node": ">=18" @@ -15383,18 +14702,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-json/node_modules/type-fest": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", - "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parse-ms": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", @@ -15454,7 +14761,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -15496,37 +14802,26 @@ "node": ">=4.0.0" } }, - "node_modules/pg-numeric": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pg-numeric/-/pg-numeric-1.0.2.tgz", - "integrity": "sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/pg-protocol": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", - "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.3.tgz", + "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==", "dev": true }, "node_modules/pg-types": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.2.tgz", - "integrity": "sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", "dev": true, "dependencies": { "pg-int8": "1.0.1", - "pg-numeric": "1.0.2", - "postgres-array": "~3.0.1", - "postgres-bytea": "~3.0.0", - "postgres-date": "~2.1.0", - "postgres-interval": "^3.0.0", - "postgres-range": "^1.1.1" + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, "node_modules/picocolors": { @@ -15555,10 +14850,9 @@ } }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "license": "MIT", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "engines": { "node": ">= 6" } @@ -15638,7 +14932,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/pmtiles/-/pmtiles-4.3.0.tgz", "integrity": "sha512-wnzQeSiYT/MyO63o7AVxwt7+uKqU0QUy2lHrivM7GvecNy0m1A4voVyGey7bujnEW5Hn+ZzLdvHPoFaqrOzbPA==", - "license": "BSD-3-Clause", "dependencies": { "fflate": "^0.8.2" } @@ -15653,9 +14946,9 @@ } }, "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, "engines": { "node": ">= 0.4" @@ -15679,7 +14972,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -15704,7 +14996,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -15731,9 +15022,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.8.tgz", - "integrity": "sha512-S/TpMKVKofNvsxfau/+bw+IA6cSfB6/kmzFj5szUofHOVnFFMB2WwK+Zu07BeMD8T0n+ZnTO5uXiMvAKe2dPkA==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.10.tgz", + "integrity": "sha512-k9qX+aXHBiLTRrWoCJuUFI6F1iF6QJQUXNVWJVSbqZgj57jDhBlOvD8gNUGl35tgqDivbGLhZeW3Ongz4feuKA==", "dev": true, "funding": [ { @@ -15745,12 +15036,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -15775,7 +15065,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -15802,7 +15091,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -15815,9 +15103,9 @@ } }, "node_modules/postcss-custom-media": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz", - "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==", + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", + "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", "dev": true, "funding": [ { @@ -15829,12 +15117,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" }, "engines": { "node": ">=18" @@ -15844,9 +15131,9 @@ } }, "node_modules/postcss-custom-properties": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz", - "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==", + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", + "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", "dev": true, "funding": [ { @@ -15858,11 +15145,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -15874,9 +15160,9 @@ } }, "node_modules/postcss-custom-selectors": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz", - "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", + "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", "dev": true, "funding": [ { @@ -15888,11 +15174,10 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", "postcss-selector-parser": "^7.0.0" }, "engines": { @@ -15917,7 +15202,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -15929,9 +15213,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", - "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.2.tgz", + "integrity": "sha512-7qTqnL7nfLRyJK/AHSVrrXOuvDDzettC+wGoienURV8v2svNbu6zJC52ruZtHaO6mfcagFmuTGFdzRsJKB3k5Q==", "dev": true, "funding": [ { @@ -15943,9 +15227,8 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -15971,7 +15254,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -15997,7 +15279,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -16032,7 +15313,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "engines": { "node": ">=18" }, @@ -16055,7 +15335,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -16071,7 +15350,6 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -16088,7 +15366,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "license": "MIT", "dependencies": { "camelcase-css": "^2.0.1" }, @@ -16104,9 +15381,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.8.tgz", - "integrity": "sha512-plV21I86Hg9q8omNz13G9fhPtLopIWH06bt/Cb5cs1XnaGU2kUtEitvVd4vtQb/VqCdNUHK5swKn3QFmMRbpDg==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.10.tgz", + "integrity": "sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==", "dev": true, "funding": [ { @@ -16118,12 +15395,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -16147,7 +15423,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" @@ -16183,7 +15458,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16208,7 +15482,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.1.1" }, @@ -16223,7 +15496,6 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -16233,9 +15505,9 @@ } }, "node_modules/postcss-nesting": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz", - "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", + "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", "dev": true, "funding": [ { @@ -16247,9 +15519,8 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/selector-resolve-nested": "^3.0.0", + "@csstools/selector-resolve-nested": "^3.1.0", "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0" }, @@ -16260,29 +15531,6 @@ "postcss": "^8.4" } }, - "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz", - "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, "node_modules/postcss-opacity-percentage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", @@ -16298,7 +15546,6 @@ "url": "https://liberapay.com/mrcgrtz" } ], - "license": "MIT", "engines": { "node": ">=18" }, @@ -16321,7 +15568,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16356,7 +15602,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16368,9 +15613,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.5.tgz", - "integrity": "sha512-LQybafF/K7H+6fAs4SIkgzkSCixJy0/h0gubDIAP3Ihz+IQBRwsjyvBnAZ3JUHD+A/ITaxVRPDxn//a3Qy4pDw==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.4.tgz", + "integrity": "sha512-q+lXgqmTMdB0Ty+EQ31SuodhdfZetUlwCA/F0zRcd/XdxjzI+Rl2JhZNz5US2n/7t9ePsvuhCnEN4Bmu86zXlA==", "dev": true, "funding": [ { @@ -16382,64 +15627,64 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { - "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.8", - "@csstools/postcss-color-mix-function": "^3.0.8", - "@csstools/postcss-content-alt-text": "^2.0.4", - "@csstools/postcss-exponential-functions": "^2.0.7", + "@csstools/postcss-cascade-layers": "^5.0.2", + "@csstools/postcss-color-function": "^4.0.10", + "@csstools/postcss-color-mix-function": "^3.0.10", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.0", + "@csstools/postcss-content-alt-text": "^2.0.6", + "@csstools/postcss-exponential-functions": "^2.0.9", "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.8", - "@csstools/postcss-gradients-interpolation-method": "^5.0.8", - "@csstools/postcss-hwb-function": "^4.0.8", - "@csstools/postcss-ic-unit": "^4.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.10", + "@csstools/postcss-gradients-interpolation-method": "^5.0.10", + "@csstools/postcss-hwb-function": "^4.0.10", + "@csstools/postcss-ic-unit": "^4.0.2", "@csstools/postcss-initial": "^2.0.1", - "@csstools/postcss-is-pseudo-class": "^5.0.1", - "@csstools/postcss-light-dark-function": "^2.0.7", + "@csstools/postcss-is-pseudo-class": "^5.0.3", + "@csstools/postcss-light-dark-function": "^2.0.9", "@csstools/postcss-logical-float-and-clear": "^3.0.0", "@csstools/postcss-logical-overflow": "^2.0.0", "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", "@csstools/postcss-logical-resize": "^3.0.0", - "@csstools/postcss-logical-viewport-units": "^3.0.3", - "@csstools/postcss-media-minmax": "^2.0.7", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", + "@csstools/postcss-logical-viewport-units": "^3.0.4", + "@csstools/postcss-media-minmax": "^2.0.9", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", "@csstools/postcss-nested-calc": "^4.0.0", "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.8", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/postcss-random-function": "^1.0.3", - "@csstools/postcss-relative-color-syntax": "^3.0.8", + "@csstools/postcss-oklab-function": "^4.0.10", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-random-function": "^2.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.10", "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-sign-functions": "^1.1.2", - "@csstools/postcss-stepped-value-functions": "^4.0.7", + "@csstools/postcss-sign-functions": "^1.1.4", + "@csstools/postcss-stepped-value-functions": "^4.0.9", "@csstools/postcss-text-decoration-shorthand": "^4.0.2", - "@csstools/postcss-trigonometric-functions": "^4.0.7", + "@csstools/postcss-trigonometric-functions": "^4.0.9", "@csstools/postcss-unset-value": "^4.0.0", - "autoprefixer": "^10.4.19", - "browserslist": "^4.24.4", + "autoprefixer": "^10.4.21", + "browserslist": "^4.25.0", "css-blank-pseudo": "^7.0.1", "css-has-pseudo": "^7.0.2", "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.2.3", + "cssdb": "^8.3.0", "postcss-attribute-case-insensitive": "^7.0.1", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.8", + "postcss-color-functional-notation": "^7.0.10", "postcss-color-hex-alpha": "^10.0.0", "postcss-color-rebeccapurple": "^10.0.0", - "postcss-custom-media": "^11.0.5", - "postcss-custom-properties": "^14.0.4", - "postcss-custom-selectors": "^8.0.4", + "postcss-custom-media": "^11.0.6", + "postcss-custom-properties": "^14.0.6", + "postcss-custom-selectors": "^8.0.5", "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.0", + "postcss-double-position-gradients": "^6.0.2", "postcss-focus-visible": "^10.0.1", "postcss-focus-within": "^9.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^6.0.0", "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.8", + "postcss-lab-function": "^7.0.10", "postcss-logical": "^8.1.0", - "postcss-nesting": "^13.0.1", + "postcss-nesting": "^13.0.2", "postcss-opacity-percentage": "^3.0.0", "postcss-overflow-shorthand": "^6.0.0", "postcss-page-break": "^3.0.4", @@ -16470,7 +15715,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -16505,7 +15749,6 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -16521,7 +15764,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, - "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -16536,50 +15778,44 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/postgres-array": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", - "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", "dev": true, "engines": { - "node": ">=12" + "node": ">=4" } }, "node_modules/postgres-bytea": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", - "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", "dev": true, - "dependencies": { - "obuf": "~1.1.2" - }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, "node_modules/postgres-date": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", - "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", "dev": true, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, "node_modules/postgres-interval": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", - "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", "dev": true, + "dependencies": { + "xtend": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/postgres-range": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.4.tgz", - "integrity": "sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==", - "dev": true - }, "node_modules/potpack": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", @@ -16595,9 +15831,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "peer": true, "bin": { @@ -16623,9 +15859,9 @@ } }, "node_modules/pretty-ms": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", - "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", + "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", "dev": true, "dependencies": { "parse-ms": "^4.0.0" @@ -16661,9 +15897,9 @@ "dev": true }, "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", + "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", "hasInstallScript": true, "dependencies": { "@protobufjs/aspromise": "^1.1.2", @@ -16693,7 +15929,6 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -16718,10 +15953,9 @@ ] }, "node_modules/quick-lru": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.0.0.tgz", - "integrity": "sha512-MX8gB7cVYTrYcFfAnfLlhRd0+Toyl8yX8uBx1MrX7K0jegiz9TumwOK27ldXrgDlHRdVi+MqU9Ssw6dr4BNreg==", - "license": "MIT", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.0.1.tgz", + "integrity": "sha512-kLjThirJMkWKutUKbZ8ViqFc09tDQhlbQo2MNuVeLWbRauqYP96Sm6nzlQ24F0HFjUNZ4i9+AgldJ9H6DZXi7g==", "engines": { "node": ">=18" }, @@ -16732,8 +15966,7 @@ "node_modules/quickselect": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", - "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", - "license": "ISC" + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==" }, "node_modules/rc": { "version": "1.2.8", @@ -16769,7 +16002,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -16781,7 +16013,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -16794,7 +16025,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", - "license": "MIT", "peerDependencies": { "react": "*" } @@ -16806,13 +16036,12 @@ "dev": true }, "node_modules/react-map-gl": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-8.0.1.tgz", - "integrity": "sha512-VQjLcZdtyJCPXxy5xVL2QIgfA+YG3v+PzSdt07WWbVmXFhV4wUuy6DZSQYDdfqVH2BujKo/ImdL5zfEJApRnpg==", - "license": "MIT", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-8.0.4.tgz", + "integrity": "sha512-SHdpvFIvswsZBg6BCPcwY/nbKuCo3sJM1Cj7Sd+gA3gFRFOixD+KtZ2XSuUWq2WySL2emYEXEgrLZoXsV4Ut4Q==", "dependencies": { - "@vis.gl/react-mapbox": "8.0.1", - "@vis.gl/react-maplibre": "8.0.1" + "@vis.gl/react-mapbox": "8.0.4", + "@vis.gl/react-maplibre": "8.0.4" }, "peerDependencies": { "mapbox-gl": ">=1.13.0", @@ -16830,10 +16059,9 @@ } }, "node_modules/react-textarea-autosize": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.8.tgz", - "integrity": "sha512-iUiIj70JefrTuSJ4LbVFiSqWiHHss5L63L717bqaWHMgkm9sz6eEvro4vZ3uQfGJbevzwT6rHOszHKA8RkhRMg==", - "license": "MIT", + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.9.tgz", + "integrity": "sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==", "dependencies": { "@babel/runtime": "^7.20.13", "use-composed-ref": "^1.3.0", @@ -16850,7 +16078,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "license": "MIT", "dependencies": { "pify": "^2.3.0" } @@ -16859,7 +16086,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16881,18 +16107,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-package-up/node_modules/type-fest": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", - "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/read-pkg": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", @@ -16912,39 +16126,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "dev": true, - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", - "dev": true, - "dependencies": { - "hosted-git-info": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", - "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16975,7 +16163,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -16988,7 +16175,6 @@ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -17006,18 +16192,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -17034,9 +16213,9 @@ } }, "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", "dev": true, "dependencies": { "@pnpm/npm-conf": "^2.1.0" @@ -17055,17 +16234,20 @@ } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -17084,7 +16266,6 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -17098,37 +16279,14 @@ } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rspack-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/rspack-resolver/-/rspack-resolver-1.2.2.tgz", - "integrity": "sha512-Fwc19jMBA3g+fxDJH2B4WxwZjE0VaaOL7OX/A4Wn5Zv7bOD/vyPZhzXfaO73Xc2GAlfi96g5fGUa378WbIGfFw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/JounQin" - }, - "optionalDependencies": { - "@unrs/rspack-resolver-binding-darwin-arm64": "1.2.2", - "@unrs/rspack-resolver-binding-darwin-x64": "1.2.2", - "@unrs/rspack-resolver-binding-freebsd-x64": "1.2.2", - "@unrs/rspack-resolver-binding-linux-arm-gnueabihf": "1.2.2", - "@unrs/rspack-resolver-binding-linux-arm64-gnu": "1.2.2", - "@unrs/rspack-resolver-binding-linux-arm64-musl": "1.2.2", - "@unrs/rspack-resolver-binding-linux-x64-gnu": "1.2.2", - "@unrs/rspack-resolver-binding-linux-x64-musl": "1.2.2", - "@unrs/rspack-resolver-binding-wasm32-wasi": "1.2.2", - "@unrs/rspack-resolver-binding-win32-arm64-msvc": "1.2.2", - "@unrs/rspack-resolver-binding-win32-x64-msvc": "1.2.2" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -17161,7 +16319,6 @@ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -17187,7 +16344,6 @@ "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -17204,7 +16360,6 @@ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -17221,7 +16376,6 @@ "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } @@ -17230,22 +16384,20 @@ "version": "3.0.10", "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz", "integrity": "sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==", - "license": "MIT", "dependencies": { "compute-scroll-into-view": "^3.0.2" } }, "node_modules/semantic-release": { - "version": "24.2.3", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.3.tgz", - "integrity": "sha512-KRhQG9cUazPavJiJEFIJ3XAMjgfd0fcK3B+T26qOl8L0UG5aZUjeRfREO0KM5InGtYwxqiiytkJrbcYoLDEv0A==", + "version": "24.2.6", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.6.tgz", + "integrity": "sha512-D0cwjlO5RZzHHxAcsoF1HxiRLfC3ehw+ay+zntzFs6PNX6aV0JzKNG15mpxPipBYa/l4fHly88dHvgDyqwb1Ww==", "dev": true, - "license": "MIT", "dependencies": { "@semantic-release/commit-analyzer": "^13.0.0-beta.1", "@semantic-release/error": "^4.0.0", "@semantic-release/github": "^11.0.0", - "@semantic-release/npm": "^12.0.0", + "@semantic-release/npm": "^12.0.2", "@semantic-release/release-notes-generator": "^14.0.0-beta.1", "aggregate-error": "^5.0.0", "cosmiconfig": "^9.0.0", @@ -17260,8 +16412,8 @@ "hosted-git-info": "^8.0.0", "import-from-esm": "^2.0.0", "lodash-es": "^4.17.21", - "marked": "^12.0.0", - "marked-terminal": "^7.0.0", + "marked": "^15.0.0", + "marked-terminal": "^7.3.0", "micromatch": "^4.0.2", "p-each-series": "^3.0.0", "p-reduce": "^3.0.0", @@ -17288,49 +16440,6 @@ "node": ">=18" } }, - "node_modules/semantic-release/node_modules/@semantic-release/github": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-11.0.1.tgz", - "integrity": "sha512-Z9cr0LgU/zgucbT9cksH0/pX9zmVda9hkDPcgIE0uvjMQ8w/mElDivGjx1w1pEQ+MuQJ5CBq3VCF16S6G4VH3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/core": "^6.0.0", - "@octokit/plugin-paginate-rest": "^11.0.0", - "@octokit/plugin-retry": "^7.0.0", - "@octokit/plugin-throttling": "^9.0.0", - "@semantic-release/error": "^4.0.0", - "aggregate-error": "^5.0.0", - "debug": "^4.3.4", - "dir-glob": "^3.0.1", - "globby": "^14.0.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "issue-parser": "^7.0.0", - "lodash-es": "^4.17.21", - "mime": "^4.0.0", - "p-filter": "^4.0.0", - "url-join": "^5.0.0" - }, - "engines": { - "node": ">=20.8.1" - }, - "peerDependencies": { - "semantic-release": ">=24.1.0" - } - }, - "node_modules/semantic-release/node_modules/@sindresorhus/merge-streams": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/aggregate-error": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", @@ -17374,48 +16483,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/execa": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.0.tgz", - "integrity": "sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==", - "dev": true, - "dependencies": { - "@sindresorhus/merge-streams": "^4.0.0", - "cross-spawn": "^7.0.3", - "figures": "^6.1.0", - "get-stream": "^9.0.0", - "human-signals": "^8.0.0", - "is-plain-obj": "^4.1.0", - "is-stream": "^4.0.1", - "npm-run-path": "^6.0.0", - "pretty-ms": "^9.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^4.0.0", - "yoctocolors": "^2.0.0" - }, - "engines": { - "node": "^18.19.0 || >=20.5.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/semantic-release/node_modules/execa/node_modules/get-stream": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", - "dev": true, - "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -17428,41 +16495,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/hosted-git-info": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz", - "integrity": "sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==", - "dev": true, - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/semantic-release/node_modules/human-signals": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", - "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", - "dev": true, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/semantic-release/node_modules/import-from-esm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-2.0.0.tgz", - "integrity": "sha512-YVt14UZCgsX1vZQ3gKjkWVdBdHQ6eu3MPU1TBgL1H5orXe2+jWD006WCPPtOuwlQm10NuzOW5WawiF1Q9veW8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4", - "import-meta-resolve": "^4.0.0" - }, - "engines": { - "node": ">=18.20" - } - }, "node_modules/semantic-release/node_modules/indent-string": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", @@ -17475,34 +16507,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/is-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/npm-run-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", - "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0", - "unicorn-magic": "^0.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/p-reduce": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", @@ -17515,18 +16519,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -17536,46 +16528,10 @@ "node": ">=8" } }, - "node_modules/semantic-release/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/semantic-release/node_modules/strip-final-newline": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", - "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "bin": { "semver": "bin/semver.js" }, @@ -17605,19 +16561,9 @@ "dev": true, "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/serialize-to-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-3.1.2.tgz", - "integrity": "sha512-owllqNuDDEimQat7EPG0tH7JjO090xKNzUtYz6X+Sk2BXDnOCilDdNLwjWeFywG9xkJul1ULvtUQa9O4pUaY0w==", - "optional": true, - "peer": true, - "engines": { - "node": ">=4.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/set-function-length": { @@ -17657,7 +16603,6 @@ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, - "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -17671,7 +16616,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -17744,7 +16688,6 @@ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -17764,7 +16707,6 @@ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" @@ -17781,7 +16723,6 @@ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -17800,7 +16741,6 @@ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -17816,10 +16756,15 @@ } }, "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==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/signale": { "version": "1.4.0", @@ -17954,7 +16899,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17963,7 +16907,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17972,7 +16915,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", - "license": "MIT", "dependencies": { "bytewise": "^1.1.0", "get-value": "^2.0.2", @@ -18035,9 +16977,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", "dev": true }, "node_modules/splaytree-ts": { @@ -18049,7 +16991,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "license": "MIT", "dependencies": { "extend-shallow": "^3.0.0" }, @@ -18061,7 +17002,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "license": "MIT", "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -18074,7 +17014,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4" }, @@ -18095,16 +17034,16 @@ "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "dev": true, "dependencies": { - "internal-slot": "^1.0.4" + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -18138,20 +17077,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==", - "license": "MIT", + "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": { @@ -18159,7 +17094,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -18172,44 +17106,25 @@ "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==", - "license": "MIT" - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/string-width/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==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } + "node_modules/string-width/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/string.prototype.includes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", - "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/string.prototype.matchall": { @@ -18217,7 +17132,6 @@ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -18255,7 +17169,6 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -18277,7 +17190,6 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -18324,7 +17236,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -18332,6 +17243,22 @@ "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/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/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -18342,12 +17269,15 @@ } }, "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-json-comments": { @@ -18355,7 +17285,6 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -18367,7 +17296,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", - "license": "MIT", "dependencies": { "client-only": "0.0.1" }, @@ -18390,7 +17318,6 @@ "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -18445,9 +17372,9 @@ } }, "node_modules/supports-hyperlinks": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", - "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", "dev": true, "dependencies": { "has-flag": "^4.0.0", @@ -18457,7 +17384,7 @@ "node": ">=14.18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -18472,26 +17399,24 @@ } }, "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz", + "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==", "dev": true, "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" + "@pkgr/core": "^0.2.4" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/synckit" } }, "node_modules/tailwind-merge": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" @@ -18501,7 +17426,6 @@ "version": "0.1.20", "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.1.20.tgz", "integrity": "sha512-AMh7x313t/V+eTySKB0Dal08RHY7ggYK0MSn/ad8wKWOrDUIzyiWNayRUm2PIJ4VRkvRnfNuyRuKbLV3EN+ewQ==", - "license": "MIT", "dependencies": { "tailwind-merge": "^1.14.0" }, @@ -18517,7 +17441,6 @@ "version": "1.14.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" @@ -18527,7 +17450,6 @@ "version": "3.4.17", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -18564,7 +17486,6 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -18669,13 +17590,12 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", - "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, - "license": "MIT", "dependencies": { - "fdir": "^6.4.3", + "fdir": "^6.4.4", "picomatch": "^4.0.2" }, "engines": { @@ -18686,11 +17606,10 @@ } }, "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", - "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", "dev": true, - "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -18705,7 +17624,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -18716,8 +17634,7 @@ "node_modules/tinyqueue": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", - "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", - "license": "ISC" + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==" }, "node_modules/to-regex-range": { "version": "5.0.1", @@ -18747,7 +17664,6 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.12" }, @@ -18758,15 +17674,13 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "license": "Apache-2.0" + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -18791,12 +17705,23 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -18811,7 +17736,6 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -18831,7 +17755,6 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, - "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -18853,7 +17776,6 @@ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -18873,7 +17795,6 @@ "version": "5.8.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -18886,7 +17807,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", - "license": "MIT", "dependencies": { "typewise-core": "^1.2.0" } @@ -18894,8 +17814,7 @@ "node_modules/typewise-core": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", - "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==", - "license": "MIT" + "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==" }, "node_modules/uglify-js": { "version": "3.19.3", @@ -18915,7 +17834,6 @@ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -18930,10 +17848,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" }, "node_modules/unicode-emoji-modifier-base": { "version": "1.0.0", @@ -18945,9 +17862,9 @@ } }, "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, "engines": { "node": ">=18" @@ -18960,7 +17877,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "license": "MIT", "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -18987,9 +17903,9 @@ } }, "node_modules/universal-user-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", - "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz", + "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==", "dev": true }, "node_modules/universalify": { @@ -19001,6 +17917,40 @@ "node": ">= 10.0.0" } }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, "node_modules/update-browserslist-db": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", @@ -19019,7 +17969,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -19036,7 +17985,6 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -19054,7 +18002,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.4.0.tgz", "integrity": "sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==", - "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -19065,10 +18012,9 @@ } }, "node_modules/use-isomorphic-layout-effect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", - "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", - "license": "MIT", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz", + "integrity": "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -19082,7 +18028,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.3.0.tgz", "integrity": "sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==", - "license": "MIT", "dependencies": { "use-isomorphic-layout-effect": "^1.1.1" }, @@ -19108,7 +18053,6 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], - "license": "MIT", "bin": { "uuid": "dist/esm/bin/uuid" } @@ -19152,7 +18096,6 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, - "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -19172,7 +18115,6 @@ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, - "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -19218,7 +18160,6 @@ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, - "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -19254,7 +18195,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -19272,7 +18212,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -19285,55 +18224,37 @@ "url": "https://github.com/chalk/wrap-ansi?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==", - "license": "MIT" - }, - "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==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", + "node_modules/wrap-ansi/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==", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/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==", - "license": "MIT", + "node_modules/wrap-ansi/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==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/wrap-ansi/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==", - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -19363,15 +18284,14 @@ } }, "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "license": "ISC", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14" + "node": ">= 14.6" } }, "node_modules/yargs": { @@ -19393,35 +18313,6 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "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/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", diff --git a/package.json b/package.json index c5b2a849..2f30743d 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "react-dom": "18.3.1", "react-icons": "^5.5.0", "react-map-gl": "^8.0.1", - "sharp": "^0.33.4", + "sharp": "^0.33.5", "tailwindcss": "^3.4.6", "typescript": "5.8.2" }, diff --git a/src/app/(content-pages)/page.tsx b/src/app/(content-pages)/page.tsx index 28afb59c..e18d0c31 100644 --- a/src/app/(content-pages)/page.tsx +++ b/src/app/(content-pages)/page.tsx @@ -1,5 +1,6 @@ import { InfoGraphicSection } from '@/components/InfoGraphicSection'; import { NumberedIconCard } from '@/components/NumberedIconCard'; +import DataDisclaimerModal from '@/components/DataDisclaimerModal'; import imageCleaning from '@/images/cleaningLot.jpg'; import imageDirty from '@/images/dirtyLot.jpg'; import imageGunCrimes from '@/images/graphic-guncrimes.png'; @@ -37,6 +38,7 @@ const images = [ const LandingPage: FC = () => { return ( <> +

Cleaning and greening vacant properties can{' '} diff --git a/src/components/DataDisclaimerModal.tsx b/src/components/DataDisclaimerModal.tsx index 31d1b3a7..c5f7ab56 100644 --- a/src/components/DataDisclaimerModal.tsx +++ b/src/components/DataDisclaimerModal.tsx @@ -1,3 +1,5 @@ +'use client'; + import { Modal, ModalContent, @@ -55,12 +57,41 @@ export default function DataDisclaimerModal() {

- The City of Philadelphia recently stopped collecting key - information used in determining which properties in the city are - likely vacant. We are currently in conversations with relevant - partners about how to address this challenge. In the meantime, - please be advised that the vacancy data that we are showing here - have not been updated since July of 2024. + 🚨 Note: Clean & Green Philly ceased active + development and maintainence in July of 2025. For more + information, please see{' '} + + our letter to stakeholders + + . The site, codebase, and data will{' '} + + remain available and open source + {' '} + for the foreseeable future. +

+

+ The data shown in the map are current as of July 2025, other than + the vacant properties data, which are from June of 2024, which is{' '} + + when the City of Philadelphia last collected accurate vacancy + data + + .

From 7025b97e0688771a83ea4a51c46f6f98b643bca7 Mon Sep 17 00:00:00 2001 From: nlebovits Date: Wed, 9 Jul 2025 14:55:48 -0300 Subject: [PATCH 14/18] chore: add FAQ, tweak disclaimer --- src/app/(content-pages)/about/AboutPage.tsx | 168 +++++++++++++++----- src/components/DataDisclaimerModal.tsx | 19 ++- 2 files changed, 144 insertions(+), 43 deletions(-) diff --git a/src/app/(content-pages)/about/AboutPage.tsx b/src/app/(content-pages)/about/AboutPage.tsx index d53d84e1..ffdfc27c 100644 --- a/src/app/(content-pages)/about/AboutPage.tsx +++ b/src/app/(content-pages)/about/AboutPage.tsx @@ -125,55 +125,141 @@ export default function AboutPage() {

-

Contributors

-

- Clean & Green Philly was built by a team of Code for Philly - volunteers. The project was created and led by{' '} +

+ Clean & Green Philly: Frequently Asked Questions (FAQ) +

+

+ This FAQ explains how Clean & Green Philly works. For information + about the project’s closure, support, and data policies, please + see{' '} - Nissim Lebovits + our README in our GitHub repository - .{' '} - - Will Budreau - {' '} - was responsible for user testing and research,{' '} - - Brandon Cohen - {' '} - was the lead developer, and{' '} - - {' '} - Nathaniel Sidwell - {' '} - led the UX team. Thanks, too, to the many other contributors along the - way. + .

+ +
+
+

+ Who can use Clean & Green Philly and what can I do with it? +

+

+ Clean & Green Philly is for residents, community organizations, + nonprofits, government agencies, and anyone interested in + improving Philadelphia neighborhoods. You can use it to find + current information on vacant properties, identify which + properties need attention most urgently, learn about interventions + like cleaning or greening, and connect to resources and community + partners. +

+
+ +
+

+ What can’t Clean & Green Philly do? +

+

+ Clean & Green Philly does not own or manage properties, grant + legal access or ownership, provide direct funding, guarantee + outcomes, or resolve land disputes. We are not affiliated with the + City of Philadelphia. You must follow City and legal processes for + property access. We connect you to resources and opportunities but + don’t replace the work of City agencies or nonprofits. +

+
+ +
+

+ What do the priority levels mean? +

+

+ Priority levels are determined by gun crime density, L&I code + violations, L&I complaints density, tree canopy coverage, and + whether the property is already maintained by PHS LandCare: +

+
    +
  • + High Priority (red): Properties in areas with + gun crime rates more than one standard deviation above average + and either have code violations, high complaint density, or are + not in PHS LandCare. Also includes properties with medium gun + crime rates that have violations/complaints but aren’t in + PHS LandCare and have very low tree canopy (less than 70% + coverage). +
  • +
  • + Medium Priority (yellow): Properties in areas + with gun crime rates between average and one standard deviation + above average that have violations/complaints and are in PHS + LandCare, or have violations/complaints but aren’t in PHS + LandCare and have adequate tree canopy. Also includes properties + with high gun crime rates that are in PHS LandCare but + don’t have violations/complaints and have adequate tree + canopy. +
  • +
  • + Low Priority (green): Properties in areas with + gun crime rates at or below average, or properties with medium + gun crime rates that have no violations/complaints. +
  • +
+
+ +
+

+ All the vacant properties in my area are ‘Low + Priority’ but there are real issues here. Does this mean my + neighborhood doesn’t matter? +

+

+ No, your neighborhood absolutely matters. We use a very narrow + definition of ‘high priority’ - only about 10% of + vacant properties get this label. This doesn’t mean the + other 90% don’t have real problems. We’re trying to + help people focus limited time and resources on the places where + intervention might have the biggest impact first. A ‘Low + Priority’ rating isn’t a judgment about your + neighborhood - it’s about helping everyone be strategic with + where to start. +

+
+ +
+

+ What types of vacancy does Clean and Green Philly NOT show? +

+

+ We focus on vacant land and properties suitable for cleaning, + greening, or community use. We do not currently map land already + used for community gardens, vacant commercial storefronts, + industrial sites, occupied but underused buildings, short-term + vacancies, vacant units inside occupied apartment buildings, or + land not suitable for greening due to legal or environmental + barriers. +

+
+
+
+ +
+

Acknowledgements

- Our efforts have been informed and advanced by local residents, - community leaders, City staff, faculty at the University of - Pennsylvania, Temple University, and Thomas Jefferson University; and - many others. Special thanks are due to the Code for Philly leadership, - Jon Geeting, Dante Leonard, Mjumbe Poe, and Vicky Tam. + Clean & Green Philly was built by a team of more than fifty Code for + Philly volunteers. The project was founded and led by Nissim Lebovits. + Amanda Soskin was Executive Director. Special thanks are due to our + board members, Conor Carroll, Dante Leonard, and Claude Schraeder; to + Jon Geeting and Will Tung at the Center for Philadelphia’s Urban + Future; to our tech leads, Will Budreau, Brandon Cohen, Collum + Freedman, Tommy Moorman, Arielle Moylen, Marvie Mulder, Hannah Vy + Nyugen, Tracy Tran, Gary Pang, and Nico Zigouras; and to all of the + local residents, community leaders, City staff, and faculty at the + University of Pennsylvania, Temple University, and Thomas Jefferson + University who informed and supported our work.

Lastly, we are grateful to Dr. Eugenia South and her colleagues, whose diff --git a/src/components/DataDisclaimerModal.tsx b/src/components/DataDisclaimerModal.tsx index c5f7ab56..d657b7a1 100644 --- a/src/components/DataDisclaimerModal.tsx +++ b/src/components/DataDisclaimerModal.tsx @@ -88,11 +88,26 @@ export default function DataDisclaimerModal() { rel="noopener noreferrer" className="text-blue-600 hover:text-blue-800 underline" > - when the City of Philadelphia last collected accurate vacancy - data + when the City of Philadelphia last collected reasonably reliable + vacancy data .

+

+ For more information on the scope and history of this project, + please see our{' '} + + about page + + . +

+

+ Thank you for being part of the C&GP journey. We are grateful for + your support and hope our work continues to benefit the community. +

Date: Wed, 9 Jul 2025 16:25:53 -0300 Subject: [PATCH 15/18] chore: update faq, disclaimer --- src/app/(content-pages)/about/AboutPage.tsx | 20 ++++++++++---------- src/components/DataDisclaimerModal.tsx | 10 ++++++++-- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/app/(content-pages)/about/AboutPage.tsx b/src/app/(content-pages)/about/AboutPage.tsx index ffdfc27c..819ec074 100644 --- a/src/app/(content-pages)/about/AboutPage.tsx +++ b/src/app/(content-pages)/about/AboutPage.tsx @@ -124,9 +124,9 @@ export default function AboutPage() { />
-
+

- Clean & Green Philly: Frequently Asked Questions (FAQ) + Frequently Asked Questions

This FAQ explains how Clean & Green Philly works. For information @@ -213,19 +213,19 @@ export default function AboutPage() {

All the vacant properties in my area are ‘Low - Priority’ but there are real issues here. Does this mean my + Priority’ but there are real issues. Does this mean my neighborhood doesn’t matter?

No, your neighborhood absolutely matters. We use a very narrow definition of ‘high priority’ - only about 10% of vacant properties get this label. This doesn’t mean the - other 90% don’t have real problems. We’re trying to - help people focus limited time and resources on the places where - intervention might have the biggest impact first. A ‘Low - Priority’ rating isn’t a judgment about your - neighborhood - it’s about helping everyone be strategic with - where to start. + other 90% don’t have real challenges. Clean & Green Philly + was created to help residents and local organizations focus + limited time and resources on the places where intervention might + have the biggest impact first. A ‘Low Priority’ rating + isn’t a judgment about a neighborhood - it’s about + helping everyone be strategic with where to start.

@@ -256,7 +256,7 @@ export default function AboutPage() { Jon Geeting and Will Tung at the Center for Philadelphia’s Urban Future; to our tech leads, Will Budreau, Brandon Cohen, Collum Freedman, Tommy Moorman, Arielle Moylen, Marvie Mulder, Hannah Vy - Nyugen, Tracy Tran, Gary Pang, and Nico Zigouras; and to all of the + Nyugen, Gary Pang, Tracy Tran, and Nico Zigouras; and to all of the local residents, community leaders, City staff, and faculty at the University of Pennsylvania, Temple University, and Thomas Jefferson University who informed and supported our work. diff --git a/src/components/DataDisclaimerModal.tsx b/src/components/DataDisclaimerModal.tsx index d657b7a1..14c76722 100644 --- a/src/components/DataDisclaimerModal.tsx +++ b/src/components/DataDisclaimerModal.tsx @@ -94,8 +94,14 @@ export default function DataDisclaimerModal() { .

- For more information on the scope and history of this project, - please see our{' '} + For more information on the scope and history of this project, and{' '} + + frequently asked questions + + , please see our{' '} Date: Wed, 9 Jul 2025 17:36:04 -0300 Subject: [PATCH 16/18] chore: add pmtiles and parquet to backup data with LFS tracking --- data/.gitattributes | 2 ++ data/backup_data/all_properties_2025_07_09.parquet | 3 +++ data/backup_data/vacant_properties_2025_07_09.pmtiles | 3 +++ 3 files changed, 8 insertions(+) create mode 100644 data/.gitattributes create mode 100644 data/backup_data/all_properties_2025_07_09.parquet create mode 100644 data/backup_data/vacant_properties_2025_07_09.pmtiles diff --git a/data/.gitattributes b/data/.gitattributes new file mode 100644 index 00000000..e84bd227 --- /dev/null +++ b/data/.gitattributes @@ -0,0 +1,2 @@ +backup_data/*.parquet filter=lfs diff=lfs merge=lfs -text +backup_data/*.pmtiles filter=lfs diff=lfs merge=lfs -text diff --git a/data/backup_data/all_properties_2025_07_09.parquet b/data/backup_data/all_properties_2025_07_09.parquet new file mode 100644 index 00000000..44e5a956 --- /dev/null +++ b/data/backup_data/all_properties_2025_07_09.parquet @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49ef5d3e7f05edb52f94195dd0bab6312154478097f08d06316186956fe43f81 +size 97703217 diff --git a/data/backup_data/vacant_properties_2025_07_09.pmtiles b/data/backup_data/vacant_properties_2025_07_09.pmtiles new file mode 100644 index 00000000..02bff2e2 --- /dev/null +++ b/data/backup_data/vacant_properties_2025_07_09.pmtiles @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62d1cec2f016055774449c324ecd012540ee921fec9abefcd6321bf02111d671 +size 8141995 From 015539515c32d78fbe003a50fb2dac74d20784a7 Mon Sep 17 00:00:00 2001 From: nlebovits Date: Wed, 9 Jul 2025 17:54:37 -0300 Subject: [PATCH 17/18] fix: refactor pmtiles generation to allow local writing --- data/Dockerfile | 1 + data/src/classes/featurelayer.py | 107 +-------- data/src/classes/loaders.py | 276 +++++++++++++++-------- data/src/config/config.py | 7 +- data/src/data_utils/vacant_properties.py | 5 + data/src/main.py | 18 ++ 6 files changed, 208 insertions(+), 206 deletions(-) diff --git a/data/Dockerfile b/data/Dockerfile index f41e6ff4..1c627aa7 100644 --- a/data/Dockerfile +++ b/data/Dockerfile @@ -38,6 +38,7 @@ RUN apt-get update && apt-get install -y \ && rm -rf /var/lib/apt/lists/* COPY --from=tippecanoe /usr/local/bin/tippecanoe /usr/local/bin/tippecanoe +COPY --from=tippecanoe /usr/local/bin/tile-join /usr/local/bin/tile-join COPY --from=dependencies /app /app ENV GDAL_VERSION=3.6.2 \ diff --git a/data/src/classes/featurelayer.py b/data/src/classes/featurelayer.py index c12721e6..7c12b9ca 100644 --- a/data/src/classes/featurelayer.py +++ b/data/src/classes/featurelayer.py @@ -1,6 +1,5 @@ import logging as log import os -import subprocess import traceback from concurrent.futures import ThreadPoolExecutor, as_completed @@ -11,15 +10,14 @@ from shapely import wkb from tqdm import tqdm +from src.classes.bucket_manager import GCSBucketManager +from src.classes.file_manager import FileManager, FileType, LoadType +from src.classes.loaders import generate_pmtiles from src.config.config import ( FORCE_RELOAD, USE_CRS, log_level, - min_tiles_file_size_in_bytes, - write_production_tiles_file, ) -from src.classes.bucket_manager import GCSBucketManager -from src.classes.file_manager import FileManager, FileType, LoadType from src.loaders import load_carto_data, load_esri_data log.basicConfig(level=log_level) @@ -281,101 +279,4 @@ def build_and_publish(self, tiles_file_id_prefix: str) -> None: Raises: ValueError: Raised if the generated PMTiles file is smaller than the minimum allowed size, indicating a potential corruption or incomplete file. """ - zoom_threshold: int = 13 - - # Export the GeoDataFrame to a temporary GeoJSON file - temp_geojson_points: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_points.geojson" - ) - temp_geojson_polygons: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_polygons.geojson" - ) - temp_pmtiles_points: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_points.pmtiles" - ) - temp_pmtiles_polygons: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_polygons.pmtiles" - ) - temp_merged_pmtiles: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_merged.pmtiles" - ) - - # Reproject - gdf_wm = self.gdf.to_crs(epsg=4326) - gdf_wm.to_file(temp_geojson_polygons, driver="GeoJSON") - - # Create points dataset - self.centroid_gdf = self.gdf.copy() - self.centroid_gdf["geometry"] = self.centroid_gdf["geometry"].centroid - self.centroid_gdf = self.centroid_gdf.to_crs(epsg=4326) - self.centroid_gdf.to_file(temp_geojson_points, driver="GeoJSON") - - # Command for generating PMTiles for points up to zoom level zoom_threshold - points_command: list[str] = [ - "tippecanoe", - f"--output={temp_pmtiles_points}", - f"--maximum-zoom={zoom_threshold}", - "--minimum-zoom=10", - "-zg", - "-aC", - "-r0", - temp_geojson_points, - "-l", - "vacant_properties_tiles_points", - "--force", - ] - - # Command for generating PMTiles for polygons from zoom level zoom_threshold - polygons_command: list[str] = [ - "tippecanoe", - f"--output={temp_pmtiles_polygons}", - f"--minimum-zoom={zoom_threshold}", - "--maximum-zoom=16", - "-zg", - "--no-tile-size-limit", - temp_geojson_polygons, - "-l", - "vacant_properties_tiles_polygons", - "--force", - ] - - # Command for merging the two PMTiles files into a single output file - merge_command: list[str] = [ - "tile-join", - f"--output={temp_merged_pmtiles}", - "--no-tile-size-limit", - temp_pmtiles_polygons, - temp_pmtiles_points, - "--force", - ] - - # Run the commands - for command in [points_command, polygons_command, merge_command]: - subprocess.run(command) - - write_files: list[str] = [f"{tiles_file_id_prefix}_staging.pmtiles"] - - if write_production_tiles_file: - write_files.append(f"{tiles_file_id_prefix}.pmtiles") - - # Check whether the temp saved tiles files is big enough. - file_size: int = os.stat(temp_merged_pmtiles).st_size - if file_size < min_tiles_file_size_in_bytes: - raise ValueError( - f"{temp_merged_pmtiles} is {file_size} bytes in size but should be at least {min_tiles_file_size_in_bytes}. Therefore, we are not uploading any files to the GCP bucket. The file may be corrupt or incomplete." - ) - - bucket = google_cloud_bucket(require_write_access=True) - if bucket is None: - print("Skipping PMTiles upload due to read-only bucket access.") - return - - # Upload PMTiles to Google Cloud Storage - bucket = google_cloud_bucket() - for file in write_files: - blob = bucket.blob(file) - try: - blob.upload_from_filename(temp_merged_pmtiles) - print(f"PMTiles upload successful for {file}!") - except Exception as e: - print(f"PMTiles upload failed for {file}: {e}") + generate_pmtiles(self.gdf, tiles_file_id_prefix) diff --git a/data/src/classes/loaders.py b/data/src/classes/loaders.py index d7d42d64..02d58bb3 100644 --- a/data/src/classes/loaders.py +++ b/data/src/classes/loaders.py @@ -25,6 +25,183 @@ from src.validation.base import BaseValidator, ValidationResult +def generate_pmtiles( + gdf: gpd.GeoDataFrame, + tiles_file_id_prefix: str, + upload_to_gcs: bool = True, + save_locally: bool = False, + local_file_manager: Optional[FileManager] = None, + local_file_label: Optional[str] = None, +) -> str: + """ + Generate PMTiles from a GeoDataFrame with options to upload to GCS and/or save locally. + + Args: + gdf (gpd.GeoDataFrame): The GeoDataFrame to convert to PMTiles + tiles_file_id_prefix (str): The ID prefix used for naming the PMTiles files + upload_to_gcs (bool): Whether to upload to Google Cloud Storage + save_locally (bool): Whether to save a local copy + local_file_manager (Optional[FileManager]): File manager for local saving + local_file_label (Optional[str]): File label for local saving + + Returns: + str: Path to the generated PMTiles file + + Raises: + ValueError: Raised if the generated PMTiles file is smaller than the minimum allowed size + """ + pipeline_logger = get_logger("pipeline") + pipeline_logger.info("Starting PMTiles generation.") + + zoom_threshold: int = 13 + + # Export the GeoDataFrame to temporary GeoJSON files + temp_geojson_points: str = ( + f"storage/temp/temp_{tiles_file_id_prefix}_points.geojson" + ) + temp_geojson_polygons: str = ( + f"storage/temp/temp_{tiles_file_id_prefix}_polygons.geojson" + ) + temp_pmtiles_points: str = ( + f"storage/temp/temp_{tiles_file_id_prefix}_points.pmtiles" + ) + temp_pmtiles_polygons: str = ( + f"storage/temp/temp_{tiles_file_id_prefix}_polygons.pmtiles" + ) + temp_merged_pmtiles: str = ( + f"storage/temp/temp_{tiles_file_id_prefix}_merged.pmtiles" + ) + + # Ensure temp directory exists + os.makedirs("storage/temp", exist_ok=True) + + try: + # Reproject to WGS84 for PMTiles + gdf_wm = gdf.to_crs(epsg=4326) + gdf_wm.to_file(temp_geojson_polygons, driver="GeoJSON") + + # Create points dataset (centroids) + centroid_gdf = gdf.copy() + centroid_gdf["geometry"] = centroid_gdf["geometry"].centroid + centroid_gdf = centroid_gdf.to_crs(epsg=4326) + centroid_gdf.to_file(temp_geojson_points, driver="GeoJSON") + + # Command for generating PMTiles for points up to zoom level zoom_threshold + points_command: list[str] = [ + "tippecanoe", + f"--output={temp_pmtiles_points}", + f"--maximum-zoom={zoom_threshold}", + "--minimum-zoom=10", + "-zg", + "-aC", + "-r0", + temp_geojson_points, + "-l", + "vacant_properties_tiles_points", + "--force", + ] + + # Command for generating PMTiles for polygons from zoom level zoom_threshold + polygons_command: list[str] = [ + "tippecanoe", + f"--output={temp_pmtiles_polygons}", + f"--minimum-zoom={zoom_threshold}", + "--maximum-zoom=16", + "-zg", + "--no-tile-size-limit", + temp_geojson_polygons, + "-l", + "vacant_properties_tiles_polygons", + "--force", + ] + + # Command for merging the two PMTiles files into a single output file + merge_command: list[str] = [ + "tile-join", + f"--output={temp_merged_pmtiles}", + "--no-tile-size-limit", + temp_pmtiles_polygons, + temp_pmtiles_points, + "--force", + ] + + # Run the commands + pipeline_logger.info("Running tippecanoe commands for PMTiles generation...") + for command in [points_command, polygons_command, merge_command]: + subprocess.run(command) + + # Check whether the temp saved tiles files is big enough + file_size: int = os.stat(temp_merged_pmtiles).st_size + if file_size < min_tiles_file_size_in_bytes: + raise ValueError( + f"{temp_merged_pmtiles} is {file_size} bytes in size but should be at least {min_tiles_file_size_in_bytes}. The file may be corrupt or incomplete." + ) + + # Save local copy if requested + if save_locally and local_file_manager and local_file_label: + local_pmtiles_path = local_file_manager.get_file_path( + local_file_label, LoadType.PIPELINE_CACHE, FileType.PMTILES + ) + import shutil + + shutil.copy2(temp_merged_pmtiles, local_pmtiles_path) + pipeline_logger.info(f"PMTiles saved locally to: {local_pmtiles_path}") + + # Upload to GCS if requested + if upload_to_gcs: + bucket = google_cloud_bucket(require_write_access=True) + if bucket is None: + pipeline_logger.warning( + "Skipping PMTiles upload due to read-only bucket access." + ) + else: + write_files: list[str] = [f"{tiles_file_id_prefix}_staging.pmtiles"] + if write_production_tiles_file: + write_files.append(f"{tiles_file_id_prefix}.pmtiles") + + # Upload PMTiles to Google Cloud Storage + bucket = google_cloud_bucket() + for file in write_files: + blob = bucket.blob(file) + try: + blob.upload_from_filename(temp_merged_pmtiles) + pipeline_logger.info(f"PMTiles upload successful for {file}!") + except Exception as e: + pipeline_logger.error(f"PMTiles upload failed for {file}: {e}") + + pipeline_logger.info( + f"PMTiles generation completed. File size: {file_size / (1024 * 1024):.2f} MB" + ) + + # Clean up temporary files + for temp_file in [ + temp_geojson_points, + temp_geojson_polygons, + temp_pmtiles_points, + temp_pmtiles_polygons, + temp_merged_pmtiles, + ]: + if os.path.exists(temp_file): + os.remove(temp_file) + pipeline_logger.debug(f"Cleaned up temporary file: {temp_file}") + + return temp_merged_pmtiles + + except Exception as e: + pipeline_logger.error(f"Error generating PMTiles: {str(e)}") + # Clean up temporary files on error + for temp_file in [ + temp_geojson_points, + temp_geojson_polygons, + temp_pmtiles_points, + temp_pmtiles_polygons, + temp_merged_pmtiles, + ]: + if os.path.exists(temp_file): + os.remove(temp_file) + raise + + # Esri data loader def load_esri_data(esri_urls: List[str], input_crs: str, extra_query_args: dict = None): """ @@ -732,104 +909,7 @@ def build_and_publish(self, tiles_file_id_prefix: str) -> None: Raises: ValueError: Raised if the generated PMTiles file is smaller than the minimum allowed size, indicating a potential corruption or incomplete file. """ - zoom_threshold: int = 13 - - # Export the GeoDataFrame to a temporary GeoJSON file - temp_geojson_points: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_points.geojson" - ) - temp_geojson_polygons: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_polygons.geojson" - ) - temp_pmtiles_points: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_points.pmtiles" - ) - temp_pmtiles_polygons: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_polygons.pmtiles" - ) - temp_merged_pmtiles: str = ( - f"storage/temp/temp_{tiles_file_id_prefix}_merged.pmtiles" - ) - - # Reproject - gdf_wm = self.gdf.to_crs(epsg=4326) - gdf_wm.to_file(temp_geojson_polygons, driver="GeoJSON") - - # Create points dataset - self.centroid_gdf = self.gdf.copy() - self.centroid_gdf["geometry"] = self.centroid_gdf["geometry"].centroid - self.centroid_gdf = self.centroid_gdf.to_crs(epsg=4326) - self.centroid_gdf.to_file(temp_geojson_points, driver="GeoJSON") - - # Command for generating PMTiles for points up to zoom level zoom_threshold - points_command: list[str] = [ - "tippecanoe", - f"--output={temp_pmtiles_points}", - f"--maximum-zoom={zoom_threshold}", - "--minimum-zoom=10", - "-zg", - "-aC", - "-r0", - temp_geojson_points, - "-l", - "vacant_properties_tiles_points", - "--force", - ] - - # Command for generating PMTiles for polygons from zoom level zoom_threshold - polygons_command: list[str] = [ - "tippecanoe", - f"--output={temp_pmtiles_polygons}", - f"--minimum-zoom={zoom_threshold}", - "--maximum-zoom=16", - "-zg", - "--no-tile-size-limit", - temp_geojson_polygons, - "-l", - "vacant_properties_tiles_polygons", - "--force", - ] - - # Command for merging the two PMTiles files into a single output file - merge_command: list[str] = [ - "tile-join", - f"--output={temp_merged_pmtiles}", - "--no-tile-size-limit", - temp_pmtiles_polygons, - temp_pmtiles_points, - "--force", - ] - - # Run the commands - for command in [points_command, polygons_command, merge_command]: - subprocess.run(command) - - write_files: list[str] = [f"{tiles_file_id_prefix}_staging.pmtiles"] - - if write_production_tiles_file: - write_files.append(f"{tiles_file_id_prefix}.pmtiles") - - # Check whether the temp saved tiles files is big enough. - file_size: int = os.stat(temp_merged_pmtiles).st_size - if file_size < min_tiles_file_size_in_bytes: - raise ValueError( - f"{temp_merged_pmtiles} is {file_size} bytes in size but should be at least {min_tiles_file_size_in_bytes}. Therefore, we are not uploading any files to the GCP bucket. The file may be corrupt or incomplete." - ) - - bucket = google_cloud_bucket(require_write_access=True) - if bucket is None: - print("Skipping PMTiles upload due to read-only bucket access.") - return - - # Upload PMTiles to Google Cloud Storage - bucket = google_cloud_bucket() - for file in write_files: - blob = bucket.blob(file) - try: - blob.upload_from_filename(temp_merged_pmtiles) - print(f"PMTiles upload successful for {file}!") - except Exception as e: - print(f"PMTiles upload failed for {file}: {e}") + generate_pmtiles(self.gdf, tiles_file_id_prefix) def _load_from_cache(self, cache_key: str) -> Optional[gpd.GeoDataFrame]: """ diff --git a/data/src/config/config.py b/data/src/config/config.py index 0c843306..0991ee55 100644 --- a/data/src/config/config.py +++ b/data/src/config/config.py @@ -3,7 +3,7 @@ from contextlib import contextmanager from pathlib import Path -FORCE_RELOAD = False +FORCE_RELOAD = True """ During the data load, whether to query the various GIS API services for the data to load. If True, will query the API services and report on data differences. If false will read the cached data.""" @@ -20,10 +20,7 @@ """ overall log level for the project """ # Centralized logger configuration -ENABLED_LOGGERS = { - "pipeline", - "data_quality", -} +ENABLED_LOGGERS = {} """ Set of enabled logger types. Add/remove logger types to control what logging is active. Available types: "cache", "performance", "pipeline", "geometry_debug", "data_quality" Examples: diff --git a/data/src/data_utils/vacant_properties.py b/data/src/data_utils/vacant_properties.py index 4f6b00db..fc9e0f52 100644 --- a/data/src/data_utils/vacant_properties.py +++ b/data/src/data_utils/vacant_properties.py @@ -210,6 +210,11 @@ def vacant_properties( # Final check for null percentages check_null_percentage(df) + # Filter out specific properties that have been flagged as not vacant by owners + # Property 372086100 was flagged for us by the owner on July 8th, 2025 via email + df = df[df["opa_id"] != "372086100"] + print("Filtered out property 372086100 as requested by owner (July 8th, 2025)") + # Add "vacant" column to input GeoDataFrame input_gdf["vacant"] = input_gdf["opa_id"].isin(df["opa_id"]) diff --git a/data/src/main.py b/data/src/main.py index 5baefe0f..45ce041e 100644 --- a/data/src/main.py +++ b/data/src/main.py @@ -8,6 +8,7 @@ from src.classes.data_diff import DiffReport from src.classes.file_manager import FileManager, FileType, LoadType +from src.classes.loaders import generate_pmtiles from src.classes.slack_reporters import SlackReporter from src.config.config import ( enable_statistical_summaries, @@ -238,6 +239,23 @@ def main(): # Publish only vacant properties dataset = dataset[dataset["vacant"]] + # Generate and save local PMTiles copy from VACANT properties only + try: + vacant_file_label = file_manager.generate_file_label("vacant_properties") + generate_pmtiles( + dataset, + "vacant_properties", + upload_to_gcs=False, + save_locally=True, + local_file_manager=file_manager, + local_file_label=vacant_file_label, + ) + print( + f"PMTiles saved locally in storage/pipeline_cache/{vacant_file_label}.pmtiles" + ) + except Exception as e: + print(f"Warning: Failed to generate local PMTiles: {str(e)}") + # Finalize pipeline_logger.info("ETL process completed successfully.") From f0543d9a484b81967b92f82550a3f53d07feccf5 Mon Sep 17 00:00:00 2001 From: nlebovits Date: Wed, 9 Jul 2025 18:39:45 -0300 Subject: [PATCH 18/18] style: eslint --- src/components/Hotjar.tsx | 3 + .../PropertyAccessOptionContainer.tsx | 55 ++++++++++++- src/components/PropertyCard.tsx | 12 ++- src/components/PropertyMap.tsx | 79 +++++++++++++++++-- src/components/SinglePropertyDetail.tsx | 11 ++- src/utilities/toTitleCase.ts | 4 +- 6 files changed, 146 insertions(+), 18 deletions(-) diff --git a/src/components/Hotjar.tsx b/src/components/Hotjar.tsx index d28856fe..a30fb9cb 100644 --- a/src/components/Hotjar.tsx +++ b/src/components/Hotjar.tsx @@ -13,6 +13,9 @@ const Hotjar = () => { r=o.createElement('script'); r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; + r.onerror = function() { + console.warn('Hotjar script failed to load'); + }; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); `; diff --git a/src/components/PropertyAccessOptionContainer.tsx b/src/components/PropertyAccessOptionContainer.tsx index fe648ff6..59db300e 100644 --- a/src/components/PropertyAccessOptionContainer.tsx +++ b/src/components/PropertyAccessOptionContainer.tsx @@ -7,6 +7,43 @@ const determineCardEnums = (property: any) => { const available = new Set(); const unavailable = new Set(); + // Debug logging for Boolean fields + console.log('Property Boolean fields:', { + side_yard_eligible: { + value: property.side_yard_eligible, + type: typeof property.side_yard_eligible, + isTrue: property.side_yard_eligible === true, + isYes: property.side_yard_eligible === 'Yes', + isTrueString: property.side_yard_eligible === 'True', + willMatch: + property.side_yard_eligible === true || + property.side_yard_eligible === 'Yes' || + property.side_yard_eligible === 'True', + }, + tactical_urbanism: { + value: property.tactical_urbanism, + type: typeof property.tactical_urbanism, + isTrue: property.tactical_urbanism === true, + isYes: property.tactical_urbanism === 'Yes', + isTrueString: property.tactical_urbanism === 'True', + willMatch: + property.tactical_urbanism === true || + property.tactical_urbanism === 'Yes' || + property.tactical_urbanism === 'True', + }, + conservatorship: { + value: property.conservatorship, + type: typeof property.conservatorship, + isTrue: property.conservatorship === true, + isYes: property.conservatorship === 'Yes', + isTrueString: property.conservatorship === 'True', + willMatch: + property.conservatorship === true || + property.conservatorship === 'Yes' || + property.conservatorship === 'True', + }, + }); + if (property.access_process === 'Private Land Use Agreement') { best = 'PRIVATE_LAND_USE'; } @@ -30,19 +67,31 @@ const determineCardEnums = (property: any) => { unavailable.add('LAND_BANK'); } - if (property.side_yard_eligible === 'Yes') { + if ( + property.side_yard_eligible === true || + property.side_yard_eligible === 'Yes' || + property.side_yard_eligible === 'True' + ) { neighbor = 'SIDE_YARD'; } else { unavailable.add('SIDE_YARD'); } - if (property.tactical_urbanism === 'Yes') { + if ( + property.tactical_urbanism === true || + property.tactical_urbanism === 'Yes' || + property.tactical_urbanism === 'True' + ) { available.add('TACTICAL_URBANISM'); } else { unavailable.add('TACTICAL_URBANISM'); } - if (property.conservatorship === 'Yes') { + if ( + property.conservatorship === true || + property.conservatorship === 'Yes' || + property.conservatorship === 'True' + ) { available.add('CONSERVATORSHIP'); } else { unavailable.add('CONSERVATORSHIP'); diff --git a/src/components/PropertyCard.tsx b/src/components/PropertyCard.tsx index cb318098..d929ccbb 100644 --- a/src/components/PropertyCard.tsx +++ b/src/components/PropertyCard.tsx @@ -21,11 +21,15 @@ function getPriorityClass(priorityLevel: string) { } const PropertyCard = ({ feature, setSelectedProperty }: PropertyCardProps) => { - const { address, gun_crimes_density_label, priority_level, opa_id } = - feature.properties; + const { + standardized_street_address, + gun_crimes_density_label, + priority_level, + opa_id, + } = feature.properties; const image = `https://storage.googleapis.com/cleanandgreenphl/${opa_id}.jpg`; - const formattedAddress = toTitleCase(address); + const formattedAddress = toTitleCase(standardized_street_address); const priorityClass = getPriorityClass(priority_level); const handleClick = () => setSelectedProperty(feature); @@ -59,7 +63,7 @@ const PropertyCard = ({ feature, setSelectedProperty }: PropertyCardProps) => { className="font-bold heading-lg focus:bg-gray-100" onKeyDown={handleKeyDown} > - {formattedAddress} + {formattedAddress ?? 'Address not available'}

{gun_crimes_density_label} Gun Crime Rate diff --git a/src/components/PropertyMap.tsx b/src/components/PropertyMap.tsx index 7cfa8fef..6a7ce41a 100644 --- a/src/components/PropertyMap.tsx +++ b/src/components/PropertyMap.tsx @@ -241,7 +241,7 @@ const PropertyMap: FC = ({ const features = map.queryRenderedFeatures(bbox, { layers }); - //Get count of features if they are clustered + // Get count of features if they are clustered const clusteredFeatureCount = features.reduce( (acc: number, feature: MapGeoJSONFeature) => { if (feature.properties?.clustered) { @@ -361,6 +361,13 @@ const PropertyMap: FC = ({ const updateFilter = () => { if (!map) return; + // If no filters are applied (appFilter is empty), show all properties + if (Object.keys(appFilter).length === 0) { + map.setFilter('vacant_properties_tiles_points', null); + map.setFilter('vacant_properties_tiles_polygons', null); + return; + } + const isAnyFilterEmpty = Object.values(appFilter).some((filterItem) => { return filterItem.values.length === 0; }); @@ -368,7 +375,6 @@ const PropertyMap: FC = ({ if (isAnyFilterEmpty) { map.setFilter('vacant_properties_tiles_points', ['==', ['id'], '']); map.setFilter('vacant_properties_tiles_polygons', ['==', ['id'], '']); - return; } @@ -384,7 +390,24 @@ const PropertyMap: FC = ({ 0, ]); } else { - thisFilterGroup.push(['in', ['get', property], item]); + // Handle Boolean fields that might be mixed format + if ( + [ + 'tactical_urbanism', + 'conservatorship', + 'side_yard_eligible', + ].includes(property) + ) { + // For Boolean fields, check Boolean true, string 'Yes', and string 'True' + thisFilterGroup.push([ + 'any', + ['==', ['get', property], true], + ['==', ['get', property], 'Yes'], + ['==', ['get', property], 'True'], + ]); + } else { + thisFilterGroup.push(['in', ['get', property], item]); + } } if (Object.keys(subZoning).includes(item)) { subZoning[item].forEach((subZone: string) => { @@ -408,8 +431,49 @@ const PropertyMap: FC = ({ [] as any[] ); - map.setFilter('vacant_properties_tiles_points', ['all', ...mapFilter]); - map.setFilter('vacant_properties_tiles_polygons', ['all', ...mapFilter]); + // Check if we have access-related filters + const accessProperties = [ + 'tactical_urbanism', + 'conservatorship', + 'side_yard_eligible', + 'access_process', + ]; + const hasAccessFilters = Object.keys(appFilter).some( + (property) => + accessProperties.includes(property) && + appFilter[property].values.length > 0 + ); + + let finalFilter: any; + if (hasAccessFilters && mapFilter.length > 1) { + // If we have access filters and other filters, use OR for access filters + const accessFilterIndices = Object.keys(appFilter) + .map((property, index) => ({ property, index })) + .filter( + ({ property }) => + accessProperties.includes(property) && + appFilter[property].values.length > 0 + ) + .map(({ index }) => index); + + const accessFilters = accessFilterIndices.map((i) => mapFilter[i]); + const otherFilters = mapFilter.filter( + (_, i) => !accessFilterIndices.includes(i) + ); + + if (otherFilters.length > 0) { + finalFilter = ['all', ['any', ...accessFilters], ...otherFilters]; + } else { + finalFilter = ['any', ...accessFilters]; + } + } else { + // Use original logic for all other cases + finalFilter = + mapFilter.length > 0 ? ['all', ...mapFilter] : ['==', ['id'], '']; + } + + map.setFilter('vacant_properties_tiles_points', finalFilter); + map.setFilter('vacant_properties_tiles_polygons', finalFilter); }; if (map) { @@ -528,7 +592,10 @@ const PropertyMap: FC = ({ onClose={handlePopupClose} >
- {toTitleCase(popupInfo.feature.address)} + + {toTitleCase(popupInfo.feature.standardized_street_address) ?? + 'Address not available'} + {/* keeping invisible to maintain spacing for built-in close button */}
diff --git a/src/components/SinglePropertyDetail.tsx b/src/components/SinglePropertyDetail.tsx index f601bc2c..1439e519 100644 --- a/src/components/SinglePropertyDetail.tsx +++ b/src/components/SinglePropertyDetail.tsx @@ -88,7 +88,7 @@ const SinglePropertyDetail = ({ if (!properties) return null; const { - address, + standardized_street_address, council_district, gun_crimes_density_label, market_value, @@ -106,7 +106,9 @@ const SinglePropertyDetail = ({ phs_care_program, } = properties; const image = `https://storage.googleapis.com/cleanandgreenphl/${opa_id}.jpg`; - const atlasUrl = `https://atlas.phila.gov/${address}`; + const atlasUrl = standardized_street_address + ? `https://atlas.phila.gov/${standardized_street_address}` + : '#'; const priorityClass = getPriorityClass(priority_level); const priorityBgClassName = priority_level.includes('High') @@ -247,7 +249,7 @@ const SinglePropertyDetail = ({
{`Property - {address.toLowerCase()} + {standardized_street_address?.toLowerCase() || + 'Address not available'}