diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000..b009dfb9d9 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +lts/* diff --git a/CHANGELOG.md b/CHANGELOG.md index d5a6856151..24a3352e3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ You can also check the runtime, to avoid having to rebuild the application when the key is rotated - Use AGENTS.md instead of CLAUDE.md and adjust context according to recent findings of studies about the impact of context files for coding AIs + - Remove LINDASOld endpoint configurations - Documentation - added publiccode.yml for discoverability @@ -1440,6 +1441,7 @@ visualize.admin.ch are now noticeable faster. #### Performance - Improved performance of cube data fetching + - Added LRU cache to min max queries - Added query cache to bulk queries - Ordered filter so that non-discriminant filter are last diff --git a/app/.env.development b/app/.env.development index 6dd4a1c1e2..8c19a7a6e2 100644 --- a/app/.env.development +++ b/app/.env.development @@ -2,7 +2,7 @@ DATABASE_URL=postgres://postgres:password@localhost:5432/visualization_tool ENDPOINT=sparql+https://cached.lindas.admin.ch/query SPARQL_GEO_ENDPOINT=https://geo.ld.admin.ch/query GRAPHQL_ENDPOINT=/api/graphql -WHITELISTED_DATA_SOURCES=["Prod", "Prod-uncached", "Int", "Int-uncached", "Test", "Test-uncached", "LINDASold-Prod", "LINDASold-Prod-uncached", "LINDASold-Int", "LINDASold-Int-uncached", "LINDASold-Test", "LINDASold-Test-uncached"] +WHITELISTED_DATA_SOURCES=["Prod", "Prod-uncached", "Int", "Int-uncached", "Test", "Test-uncached"] SENTRY_IGNORE_API_RESOLUTION_ERROR=1 MAPTILER_API_KEY=123 ADFS_PROFILE_URL=https://www.myaccount-r.eiam.admin.ch/ diff --git a/app/configurator/components/add-dataset-drawer.mock.ts b/app/configurator/components/add-dataset-drawer.mock.ts index 7cd75acc52..2c5a1607ed 100644 --- a/app/configurator/components/add-dataset-drawer.mock.ts +++ b/app/configurator/components/add-dataset-drawer.mock.ts @@ -5,7 +5,7 @@ export const photovoltaikChartStateMock: ConfiguratorStateConfiguringChart = { state: "CONFIGURING_CHART", dataSource: { type: "sparql", - url: "https://lindas-cached.int.cluster.ldbar.ch/query", + url: "https://int.cached.lindas.admin.ch/query", }, layout: { activeField: "y", diff --git a/app/pages/_pivot.tsx b/app/pages/_pivot.tsx index 052e172d2c..79ec36e30d 100644 --- a/app/pages/_pivot.tsx +++ b/app/pages/_pivot.tsx @@ -36,7 +36,7 @@ const Card = styled(MUICard)({ }); const intDatasource = { - sourceUrl: "https://lindas-cached.int.cluster.ldbar.ch/query", + sourceUrl: "https://int.cached.lindas.admin.ch/query", sourceType: "sparql", }; diff --git a/app/test/__fixtures/config/int/bathing-water-quality-hierarchie.json b/app/test/__fixtures/config/int/bathing-water-quality-hierarchie.json index 7db20bbe1f..632f742d1f 100644 --- a/app/test/__fixtures/config/int/bathing-water-quality-hierarchie.json +++ b/app/test/__fixtures/config/int/bathing-water-quality-hierarchie.json @@ -17,7 +17,7 @@ }, "dataSet": "https://environment.ld.admin.ch/foen/ubd0104/11", "dataSource": { - "url": "https://lindas-cached.int.cluster.ldbar.ch/query", + "url": "https://int.cached.lindas.admin.ch/query", "type": "sparql" }, "chartConfig": { diff --git a/app/test/__fixtures/config/int/column-heavy-metals.json b/app/test/__fixtures/config/int/column-heavy-metals.json index 99188da29b..2cd74d391a 100644 --- a/app/test/__fixtures/config/int/column-heavy-metals.json +++ b/app/test/__fixtures/config/int/column-heavy-metals.json @@ -18,7 +18,7 @@ "dataSet": "https://environment.ld.admin.ch/foen/ubd0066/15", "dataSource": { "type": "sparql", - "url": "https://lindas-cached.int.cluster.ldbar.ch/query" + "url": "https://int.cached.lindas.admin.ch/query" }, "chartConfig": { "version": "1.2.1", diff --git a/app/test/__fixtures/config/int/map-nfi.json b/app/test/__fixtures/config/int/map-nfi.json index 9e5962399a..d1f90c3b57 100644 --- a/app/test/__fixtures/config/int/map-nfi.json +++ b/app/test/__fixtures/config/int/map-nfi.json @@ -5,7 +5,7 @@ "dataSet": "https://environment.ld.admin.ch/foen/nfi/nfi_C-98/cube/2023-1", "dataSource": { "type": "sparql", - "url": "https://lindas-cached.int.cluster.ldbar.ch/query" + "url": "https://int.cached.lindas.admin.ch/query" }, "meta": { "title": { diff --git a/app/test/__fixtures/config/int/pie-red-list.json b/app/test/__fixtures/config/int/pie-red-list.json index 3fa56bcf32..f05c1892e5 100644 --- a/app/test/__fixtures/config/int/pie-red-list.json +++ b/app/test/__fixtures/config/int/pie-red-list.json @@ -4,7 +4,7 @@ "dataSet": "https://environment.ld.admin.ch/foen/UBD003002/5", "dataSource": { "type": "sparql", - "url": "https://lindas-cached.int.cluster.ldbar.ch/query" + "url": "https://int.cached.lindas.admin.ch/query" }, "meta": { "title": { diff --git a/app/test/__fixtures/config/int/scatterplot-palmer-penguins.json b/app/test/__fixtures/config/int/scatterplot-palmer-penguins.json index da9534effc..f69bbaac9a 100644 --- a/app/test/__fixtures/config/int/scatterplot-palmer-penguins.json +++ b/app/test/__fixtures/config/int/scatterplot-palmer-penguins.json @@ -5,7 +5,7 @@ "dataSet": "https://environment.ld.admin.ch/foen/palmer-penguins/18", "dataSource": { "type": "sparql", - "url": "https://lindas-cached.int.cluster.ldbar.ch/query" + "url": "https://int.cached.lindas.admin.ch/query" }, "meta": { "title": { diff --git a/e2e/color-mapping-maps.spec.ts b/e2e/color-mapping-maps.spec.ts index 20c939d0d9..2f6499b756 100644 --- a/e2e/color-mapping-maps.spec.ts +++ b/e2e/color-mapping-maps.spec.ts @@ -35,10 +35,8 @@ test("@noci should be possible to de-select options from color component in maps }) ); - const filtersButton = await filterControlSection.findByRole("button", { - name: "Edit filters", - }); - await filtersButton.click(); + await page.getByRole("button", { name: "Edit filters" }).click(); + const filters = selectors.edition.filterDrawer().within(); await (await filters.findByText("Canton of Zurich")).click(); await (await filters.findByText("Apply filters")).click(); diff --git a/e2e/edition.spec.ts b/e2e/edition.spec.ts index d693eeb922..0b5d853727 100644 --- a/e2e/edition.spec.ts +++ b/e2e/edition.spec.ts @@ -4,7 +4,8 @@ import offentlicheAusgabenChartConfigFixture from "./fixtures/offentliche-ausgab const { expect, test } = setup(); -test("should be possible to edit filters of a hierarchy", async ({ +// skipped due to probable issues with query for multiple cubes (see chart config) +test.skip("should be possible to edit filters of a hierarchy", async ({ page, screen, selectors, diff --git a/e2e/fixtures/hierarchy-test-13-municipality-population.json b/e2e/fixtures/hierarchy-test-13-municipality-population.json index c92110848b..96c15ab207 100644 --- a/e2e/fixtures/hierarchy-test-13-municipality-population.json +++ b/e2e/fixtures/hierarchy-test-13-municipality-population.json @@ -3,7 +3,7 @@ "dataSet": "https://environment.ld.admin.ch/foen/fab_hierarchy_test12_switzerland_canton_municipality/5", "dataSource": { "type": "sparql", - "url": "https://lindas-cached.int.cluster.ldbar.ch/query" + "url": "https://int.cached.lindas.admin.ch/query" }, "meta": { "title": { "de": "", "fr": "", "it": "", "en": "" }, diff --git a/e2e/fixtures/offentliche-ausgaben-chart-config.json b/e2e/fixtures/offentliche-ausgaben-chart-config.json index 9db834c16b..5fc0f35e13 100644 --- a/e2e/fixtures/offentliche-ausgaben-chart-config.json +++ b/e2e/fixtures/offentliche-ausgaben-chart-config.json @@ -1,137 +1,142 @@ { + "version": "5.2.0", "state": "CONFIGURING_CHART", - "dataSet": "https://environment.ld.admin.ch/foen/fab_Offentliche_Ausgaben_test3/7", "dataSource": { "type": "sparql", - "url": "https://lindas-cached.int.cluster.ldbar.ch/query" + "url": "https://cached.lindas.admin.ch/query" }, - "meta": { - "title": { "de": "", "fr": "", "it": "", "en": "" }, - "description": { "de": "", "fr": "", "it": "", "en": "" } - }, - "chartConfig": { - "version": "1.2.1", - "chartType": "column", - "filters": { - "https://environment.ld.admin.ch/foen/fab_Offentliche_Ausgaben_test3/kurzel": { - "type": "single", - "value": "Bd" + "layout": { + "type": "tab", + "meta": { + "title": { + "de": "", + "en": "", + "fr": "", + "it": "" }, - "https://environment.ld.admin.ch/foen/fab_Offentliche_Ausgaben_test3/code": { - "type": "multi", - "values": { - "https://ld.admin.ch/cube/dimension/cofog/gf02": true, - "https://ld.admin.ch/cube/dimension/cofog/gf07": true, - "https://ld.admin.ch/cube/dimension/cofog/gf10": true - } - } - }, - "interactiveFiltersConfig": { - "legend": { "active": false, "componentIri": "" }, - "timeRange": { - "active": false, - "componentIri": "", - "presets": { "type": "range", "from": "", "to": "" } + "description": { + "de": "", + "en": "", + "fr": "", + "it": "" }, - "dataFilters": { "active": false, "componentIris": [] } + "label": { + "de": "", + "en": "", + "fr": "", + "it": "" + } }, - "fields": { - "x": { - "componentIri": "https://environment.ld.admin.ch/foen/fab_Offentliche_Ausgaben_test3/jahr", - "sorting": { "sortingType": "byDimensionLabel", "sortingOrder": "asc" } + "blocks": [ + { + "type": "chart", + "key": "aK2t_tmCrG35", + "initialized": false + } + ] + }, + "chartConfigs": [ + { + "key": "aK2t_tmCrG35", + "version": "5.2.0", + "meta": { + "title": { + "en": "", + "de": "", + "fr": "", + "it": "" + }, + "description": { + "en": "", + "de": "", + "fr": "", + "it": "" + }, + "label": { + "en": "", + "de": "", + "fr": "", + "it": "" + } }, - "y": { - "componentIri": "https://environment.ld.admin.ch/foen/fab_Offentliche_Ausgaben_test3/in-pct" + "cubes": [ + { + "iri": "https://environment.ld.admin.ch/foen/EFV_cofog_international/2", + "filters": { + "https://environment.ld.admin.ch/foen/EFV_cofog_international(VISUALIZE.ADMIN_COMPONENT_ID_SEPARATOR)https://environment.ld.admin.ch/foen/EFV_cofog_international/cofog": { + "type": "single", + "value": "https://ld.admin.ch/cube/dimension/cofog/gf01" + }, + "https://environment.ld.admin.ch/foen/EFV_cofog_international(VISUALIZE.ADMIN_COMPONENT_ID_SEPARATOR)https://environment.ld.admin.ch/foen/EFV_cofog_international/country": { + "type": "single", + "value": "https://environment.ld.admin.ch/foen/EFV_cofog_international/Country/AUS" + } + } + } + ], + "interactiveFiltersConfig": { + "legend": { + "active": false, + "componentId": "" + }, + "timeRange": { + "active": false, + "componentId": "https://environment.ld.admin.ch/foen/EFV_cofog_international(VISUALIZE.ADMIN_COMPONENT_ID_SEPARATOR)https://environment.ld.admin.ch/foen/EFV_cofog_international/jahr", + "presets": { + "type": "range", + "from": "", + "to": "" + } + }, + "dataFilters": { + "active": false, + "componentIds": [], + "defaultValueOverrides": {}, + "filterTypes": {}, + "defaultOpen": true + }, + "calculation": { + "active": false, + "type": "identity" + } }, - "segment": { - "componentIri": "https://environment.ld.admin.ch/foen/fab_Offentliche_Ausgaben_test3/code", - "palette": "category10", - "type": "stacked", - "sorting": { "sortingType": "byDimensionLabel", "sortingOrder": "asc" }, - "colorMapping": { - "https://ld.admin.ch/cube/dimension/cofog/gf01": "#1f77b4", - "https://ld.admin.ch/cube/dimension/cofog/gf0101": "#ff7f0e", - "https://ld.admin.ch/cube/dimension/cofog/gf0102": "#2ca02c", - "https://ld.admin.ch/cube/dimension/cofog/gf0103": "#d62728", - "https://ld.admin.ch/cube/dimension/cofog/gf0104": "#9467bd", - "https://ld.admin.ch/cube/dimension/cofog/gf0105": "#8c564b", - "https://ld.admin.ch/cube/dimension/cofog/gf0106": "#e377c2", - "https://ld.admin.ch/cube/dimension/cofog/gf0107": "#7f7f7f", - "https://ld.admin.ch/cube/dimension/cofog/gf0108": "#bcbd22", - "https://ld.admin.ch/cube/dimension/cofog/gf02": "#17becf", - "https://ld.admin.ch/cube/dimension/cofog/gf0201": "#1f77b4", - "https://ld.admin.ch/cube/dimension/cofog/gf0202": "#ff7f0e", - "https://ld.admin.ch/cube/dimension/cofog/gf0203": "#2ca02c", - "https://ld.admin.ch/cube/dimension/cofog/gf0204": "#d62728", - "https://ld.admin.ch/cube/dimension/cofog/gf0205": "#9467bd", - "https://ld.admin.ch/cube/dimension/cofog/gf03": "#8c564b", - "https://ld.admin.ch/cube/dimension/cofog/gf0301": "#e377c2", - "https://ld.admin.ch/cube/dimension/cofog/gf0302": "#7f7f7f", - "https://ld.admin.ch/cube/dimension/cofog/gf0303": "#bcbd22", - "https://ld.admin.ch/cube/dimension/cofog/gf0304": "#17becf", - "https://ld.admin.ch/cube/dimension/cofog/gf0305": "#1f77b4", - "https://ld.admin.ch/cube/dimension/cofog/gf0306": "#ff7f0e", - "https://ld.admin.ch/cube/dimension/cofog/gf04": "#2ca02c", - "https://ld.admin.ch/cube/dimension/cofog/gf0401": "#d62728", - "https://ld.admin.ch/cube/dimension/cofog/gf0402": "#9467bd", - "https://ld.admin.ch/cube/dimension/cofog/gf0403": "#8c564b", - "https://ld.admin.ch/cube/dimension/cofog/gf0404": "#e377c2", - "https://ld.admin.ch/cube/dimension/cofog/gf0405": "#7f7f7f", - "https://ld.admin.ch/cube/dimension/cofog/gf0406": "#bcbd22", - "https://ld.admin.ch/cube/dimension/cofog/gf0407": "#17becf", - "https://ld.admin.ch/cube/dimension/cofog/gf0408": "#1f77b4", - "https://ld.admin.ch/cube/dimension/cofog/gf0409": "#ff7f0e", - "https://ld.admin.ch/cube/dimension/cofog/gf05": "#2ca02c", - "https://ld.admin.ch/cube/dimension/cofog/gf0501": "#d62728", - "https://ld.admin.ch/cube/dimension/cofog/gf0502": "#9467bd", - "https://ld.admin.ch/cube/dimension/cofog/gf0503": "#8c564b", - "https://ld.admin.ch/cube/dimension/cofog/gf0504": "#e377c2", - "https://ld.admin.ch/cube/dimension/cofog/gf0505": "#7f7f7f", - "https://ld.admin.ch/cube/dimension/cofog/gf0506": "#bcbd22", - "https://ld.admin.ch/cube/dimension/cofog/gf06": "#17becf", - "https://ld.admin.ch/cube/dimension/cofog/gf0601": "#1f77b4", - "https://ld.admin.ch/cube/dimension/cofog/gf0602": "#ff7f0e", - "https://ld.admin.ch/cube/dimension/cofog/gf0603": "#2ca02c", - "https://ld.admin.ch/cube/dimension/cofog/gf0604": "#d62728", - "https://ld.admin.ch/cube/dimension/cofog/gf0605": "#9467bd", - "https://ld.admin.ch/cube/dimension/cofog/gf0606": "#8c564b", - "https://ld.admin.ch/cube/dimension/cofog/gf07": "#e377c2", - "https://ld.admin.ch/cube/dimension/cofog/gf0701": "#7f7f7f", - "https://ld.admin.ch/cube/dimension/cofog/gf0702": "#bcbd22", - "https://ld.admin.ch/cube/dimension/cofog/gf0703": "#17becf", - "https://ld.admin.ch/cube/dimension/cofog/gf0704": "#1f77b4", - "https://ld.admin.ch/cube/dimension/cofog/gf0705": "#ff7f0e", - "https://ld.admin.ch/cube/dimension/cofog/gf0706": "#2ca02c", - "https://ld.admin.ch/cube/dimension/cofog/gf08": "#d62728", - "https://ld.admin.ch/cube/dimension/cofog/gf0801": "#9467bd", - "https://ld.admin.ch/cube/dimension/cofog/gf0802": "#8c564b", - "https://ld.admin.ch/cube/dimension/cofog/gf0803": "#e377c2", - "https://ld.admin.ch/cube/dimension/cofog/gf0804": "#7f7f7f", - "https://ld.admin.ch/cube/dimension/cofog/gf0805": "#bcbd22", - "https://ld.admin.ch/cube/dimension/cofog/gf0806": "#17becf", - "https://ld.admin.ch/cube/dimension/cofog/gf09": "#1f77b4", - "https://ld.admin.ch/cube/dimension/cofog/gf0901": "#ff7f0e", - "https://ld.admin.ch/cube/dimension/cofog/gf0902": "#2ca02c", - "https://ld.admin.ch/cube/dimension/cofog/gf0903": "#d62728", - "https://ld.admin.ch/cube/dimension/cofog/gf0904": "#9467bd", - "https://ld.admin.ch/cube/dimension/cofog/gf0905": "#8c564b", - "https://ld.admin.ch/cube/dimension/cofog/gf0906": "#e377c2", - "https://ld.admin.ch/cube/dimension/cofog/gf0907": "#7f7f7f", - "https://ld.admin.ch/cube/dimension/cofog/gf0908": "#bcbd22", - "https://ld.admin.ch/cube/dimension/cofog/gf10": "#17becf", - "https://ld.admin.ch/cube/dimension/cofog/gf1001": "#1f77b4", - "https://ld.admin.ch/cube/dimension/cofog/gf1002": "#ff7f0e", - "https://ld.admin.ch/cube/dimension/cofog/gf1003": "#2ca02c", - "https://ld.admin.ch/cube/dimension/cofog/gf1004": "#d62728", - "https://ld.admin.ch/cube/dimension/cofog/gf1005": "#9467bd", - "https://ld.admin.ch/cube/dimension/cofog/gf1006": "#8c564b", - "https://ld.admin.ch/cube/dimension/cofog/gf1007": "#e377c2", - "https://ld.admin.ch/cube/dimension/cofog/gf1008": "#7f7f7f", - "https://ld.admin.ch/cube/dimension/cofog/gf1009": "#bcbd22", - "https://ld.admin.ch/cube/dimension/cofog/gftot": "#17becf" + "annotations": [], + "limits": {}, + "conversionUnitsByComponentId": {}, + "chartType": "column", + "fields": { + "x": { + "componentId": "https://environment.ld.admin.ch/foen/EFV_cofog_international(VISUALIZE.ADMIN_COMPONENT_ID_SEPARATOR)https://environment.ld.admin.ch/foen/EFV_cofog_international/jahr", + "sorting": { + "sortingType": "byAuto", + "sortingOrder": "asc" + } + }, + "y": { + "componentId": "https://environment.ld.admin.ch/foen/EFV_cofog_international(VISUALIZE.ADMIN_COMPONENT_ID_SEPARATOR)https://environment.ld.admin.ch/foen/EFV_cofog_international/domesticcurrency" + }, + "color": { + "type": "single", + "paletteId": "category10", + "color": "#1d4ed8" } + }, + "activeField": "y" + } + ], + "activeChartKey": "aK2t_tmCrG35", + "dashboardFilters": { + "timeRange": { + "active": false, + "timeUnit": "", + "presets": { + "from": "", + "to": "" } + }, + "dataFilters": { + "componentIds": [], + "filters": {} } - }, - "activeField": "segment" + } } diff --git a/e2e/high-filter-value-count.spec.ts b/e2e/high-filter-value-count.spec.ts index fbf1eb8e19..c7f0ba137e 100644 --- a/e2e/high-filter-value-count.spec.ts +++ b/e2e/high-filter-value-count.spec.ts @@ -4,6 +4,7 @@ const { test } = setup(); /** * @todo Works locally but not on CI + * @todo Changed to an existing dataset - but it's not clear if it has enough values */ const testFn = process.env.CI ? test.skip : test; @@ -12,8 +13,8 @@ testFn( async ({ page, selectors, actions }) => { test.setTimeout(300_000); await actions.chart.createFrom({ - iri: "https://environment.ld.admin.ch/foen/fab_hierarchy_test13_switzerland_canton_municipality/3", - dataSource: "Int", + iri: "https://environment.ld.admin.ch/foen/ubd01041prod/11", + dataSource: "Prod", }); await selectors.edition.drawerLoaded(); await actions.editor.changeRegularChartType("Map"); diff --git a/e2e/limits.spec.ts b/e2e/limits.spec.ts index 197b6003ff..6de90044ed 100644 --- a/e2e/limits.spec.ts +++ b/e2e/limits.spec.ts @@ -32,7 +32,7 @@ const CONFIGURATOR_STATE = { state: "CONFIGURING_CHART", dataSource: { type: "sparql", - url: "https://lindas-cached.int.cluster.ldbar.ch/query", + url: "https://int.cached.lindas.admin.ch/query", }, layout: { type: "tab", diff --git a/e2e/query-hierarchies.spec.ts b/e2e/query-hierarchies.spec.ts index ded192c733..9577afa86b 100644 --- a/e2e/query-hierarchies.spec.ts +++ b/e2e/query-hierarchies.spec.ts @@ -94,7 +94,7 @@ const runTest = async ({ const res = await client .query(DimensionHierarchyDocument, { cubeIri: cubeIri, - sourceUrl: "https://lindas-cached.int.cluster.ldbar.ch/query", + sourceUrl: "https://int.cached.lindas.admin.ch/query", sourceType: "sparql", dimensionIri: "https://environment.ld.admin.ch/foen/nfi/unitOfReference", locale, diff --git a/e2e/sorting.spec.ts b/e2e/sorting.spec.ts index 86f72abfdd..6431a1a221 100644 --- a/e2e/sorting.spec.ts +++ b/e2e/sorting.spec.ts @@ -198,7 +198,8 @@ test.skip("Map legend preview table sorting", async ({ const cells = await selectors.datasetPreview.columnCells("Danger ratings"); }); -test("Sorting with values with same label as other values in the tree", async ({ +// dataset currently not available after LINDASNext migration +test.skip("Sorting with values with same label as other values in the tree", async ({ selectors, page, replayFromHAR, diff --git a/yarn.lock b/yarn.lock index a17219b329..d825895d1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -277,29 +277,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.6.tgz#103f466803fa0f059e82ccac271475470570d74c" integrity sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg== -"@babel/core@7.12.9": - version "7.12.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" - integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.5" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.7" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.9" - "@babel/types" "^7.12.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.0.0", "@babel/core@^7.10.5", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.18.9", "@babel/core@^7.21.0", "@babel/core@^7.23.0", "@babel/core@^7.24.4", "@babel/core@^7.26.10", "@babel/core@^7.7.7": +"@babel/core@7.12.9", "@babel/core@^7.0.0", "@babel/core@^7.10.5", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.14.6", "@babel/core@^7.18.9", "@babel/core@^7.21.0", "@babel/core@^7.23.0", "@babel/core@^7.24.4", "@babel/core@^7.26.10", "@babel/core@^7.7.7": version "7.29.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322" integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA== @@ -329,17 +307,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.12.5", "@babel/generator@^7.29.0": - version "7.29.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50" - integrity sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw== - dependencies: - "@babel/parser" "^7.29.0" - "@babel/types" "^7.29.0" - "@jridgewell/gen-mapping" "^0.3.12" - "@jridgewell/trace-mapping" "^0.3.28" - jsesc "^3.0.2" - "@babel/generator@^7.21.1": version "7.28.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e" @@ -404,6 +371,17 @@ "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" +"@babel/generator@^7.29.0": + version "7.29.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50" + integrity sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw== + dependencies: + "@babel/parser" "^7.29.0" + "@babel/types" "^7.29.0" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + "@babel/helper-annotate-as-pure@^7.14.5": version "7.14.5" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz" @@ -682,15 +660,6 @@ "@babel/traverse" "^7.28.6" "@babel/types" "^7.28.6" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.28.6": - version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e" - integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA== - dependencies: - "@babel/helper-module-imports" "^7.28.6" - "@babel/helper-validator-identifier" "^7.28.5" - "@babel/traverse" "^7.28.6" - "@babel/helper-module-transforms@^7.14.5": version "7.15.8" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz" @@ -725,6 +694,15 @@ "@babel/helper-validator-identifier" "^7.25.9" "@babel/traverse" "^7.25.9" +"@babel/helper-module-transforms@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e" + integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA== + dependencies: + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/traverse" "^7.28.6" + "@babel/helper-optimise-call-expression@^7.14.5", "@babel/helper-optimise-call-expression@^7.15.4": version "7.15.4" resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz" @@ -988,14 +966,6 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.12.5": - version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.2.tgz#9cfbccb02b8e229892c0b07038052cc1a8709c49" - integrity sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw== - dependencies: - "@babel/template" "^7.28.6" - "@babel/types" "^7.29.0" - "@babel/helpers@^7.28.6": version "7.28.6" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7" @@ -1041,15 +1011,10 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@7.12.16": - version "7.12.16" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz#cc31257419d2c3189d394081635703f549fc1ed4" - integrity sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw== - -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.12.7", "@babel/parser@^7.15.4", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4", "@babel/parser@^7.22.0", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.24.0", "@babel/parser@^7.24.4", "@babel/parser@^7.24.5", "@babel/parser@^7.25.4", "@babel/parser@^7.25.9", "@babel/parser@^7.26.2", "@babel/parser@^7.27.0", "@babel/parser@^7.28.3", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0": - version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.2.tgz#58bd50b9a7951d134988a1ae177a35ef9a703ba1" - integrity sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA== +"@babel/parser@7.12.16", "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.6", "@babel/parser@^7.15.4", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4", "@babel/parser@^7.22.0", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.24.0", "@babel/parser@^7.24.4", "@babel/parser@^7.24.5", "@babel/parser@^7.25.4", "@babel/parser@^7.25.9", "@babel/parser@^7.26.2", "@babel/parser@^7.27.0", "@babel/parser@^7.28.3", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0": + version "7.29.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.3.tgz#116f70a77958307fceac27747573032f8a62f88e" + integrity sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA== dependencies: "@babel/types" "^7.29.0" @@ -2242,15 +2207,6 @@ resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.26.10.tgz#1fce13e5a331a9dafff192b5db41350d72d44bed" integrity sha512-AYXK0hLWfEaK9WAePJqs30qro09a8w7X3YZzjukqtLXreE7xBZYdi5EMrP87T4UrVqmQ9tIX6L6SeTu5LDh3zw== -"@babel/template@^7.12.7", "@babel/template@^7.28.6": - version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" - integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ== - dependencies: - "@babel/code-frame" "^7.28.6" - "@babel/parser" "^7.28.6" - "@babel/types" "^7.28.6" - "@babel/template@^7.15.4": version "7.15.4" resolved "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz" @@ -2296,6 +2252,15 @@ "@babel/parser" "^7.27.0" "@babel/types" "^7.27.0" +"@babel/template@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" + integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/parser" "^7.28.6" + "@babel/types" "^7.28.6" + "@babel/traverse@7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz" @@ -2326,19 +2291,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.12.9", "@babel/traverse@^7.29.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a" - integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA== - dependencies: - "@babel/code-frame" "^7.29.0" - "@babel/generator" "^7.29.0" - "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.29.0" - "@babel/template" "^7.28.6" - "@babel/types" "^7.29.0" - debug "^4.3.1" - "@babel/traverse@^7.18.9": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" @@ -2410,6 +2362,19 @@ "@babel/types" "^7.28.6" debug "^4.3.1" +"@babel/traverse@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a" + integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA== + dependencies: + "@babel/code-frame" "^7.29.0" + "@babel/generator" "^7.29.0" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.29.0" + "@babel/template" "^7.28.6" + "@babel/types" "^7.29.0" + debug "^4.3.1" + "@babel/types@7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz" @@ -2427,14 +2392,6 @@ "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" -"@babel/types@^7.12.7", "@babel/types@^7.25.4", "@babel/types@^7.29.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7" - integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" - "@babel/types@^7.16.7": version "7.17.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" @@ -2505,6 +2462,14 @@ "@babel/helper-validator-identifier" "^7.24.5" to-fast-properties "^2.0.0" +"@babel/types@^7.25.4", "@babel/types@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7" + integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/types@^7.25.9", "@babel/types@^7.26.0": version "7.26.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff" @@ -15980,7 +15945,7 @@ fwd-stream@^1.0.4: dependencies: readable-stream "~1.0.26-4" -gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: +gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== @@ -17489,7 +17454,7 @@ is-core-module@^2.13.0: dependencies: hasown "^2.0.0" -is-core-module@^2.15.1, is-core-module@^2.16.0, is-core-module@^2.16.1: +is-core-module@^2.15.1, is-core-module@^2.16.0: version "2.16.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== @@ -23222,16 +23187,6 @@ resolve@^1.21.0, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.3.2: - version "1.22.12" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f" - integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== - dependencies: - es-errors "^1.3.0" - is-core-module "^2.16.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - resolve@^2.0.0-next.5: version "2.0.0-next.5" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" @@ -23585,11 +23540,6 @@ semver-compare@^1.0.0: resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^5.4.1: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"