diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 3640af5a..b019a96d 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -6,12 +6,20 @@ module.exports = { 'plugin:react-hooks/recommended', 'eslint:recommended', 'plugin:@typescript-eslint/recommended', - 'plugin:prettier/recommended' + 'plugin:prettier/recommended', ], env: { - "browser": true + browser: true, }, rules: { - "prettier/prettier": "warn", + 'prettier/prettier': 'warn', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + caughtErrorsIgnorePattern: '^_', + }, + ], }, }; diff --git a/.github/config/.licenserc.yaml b/.github/config/.licenserc.yaml index 17acef94..c06861dc 100644 --- a/.github/config/.licenserc.yaml +++ b/.github/config/.licenserc.yaml @@ -1,26 +1,28 @@ header: - license: - spdx-id: MPL-2.0 - pattern: | - Copyright copyright \d{4}, RTE \(http:\/\/www\.rte-france\.com\) - This Source Code Form is subject to the terms of the Mozilla Public - License, v\. 2\.0\. If a copy of the MPL was not distributed with this - file, You can obtain one at http:\/\/mozilla\.org\/MPL\/2\.0\/\. + license: + spdx-id: MPL-2.0 + pattern: | + Copyright copyright \d{4}, RTE \(http:\/\/www\.rte-france\.com\) + This Source Code Form is subject to the terms of the Mozilla Public + License, v\. 2\.0\. If a copy of the MPL was not distributed with this + file, You can obtain one at http:\/\/mozilla\.org\/MPL\/2\.0\/\. - paths-ignore: - - 'dist' - - 'licenses' - - '**/*.md' - - 'LICENSE' - - 'NOTICE' - - 'Dockerfile' - - '**/.*' - - '**/*.txt' - - '**/*.json' - - '**/*.yaml' - - '**/*.yml' - - '**/*.svg' - - '**/*.css' - - '**/*.conf' + paths-ignore: + - 'dist' + - 'licenses' + - '**/*.md' + - 'LICENSE' + - 'NOTICE' + - 'Dockerfile' + - '**/.*' + - '**/*.txt' + - '**/*.json' + - '**/*.yaml' + - '**/*.yml' + - '**/*.svg' + - '**/*.css' + - '**/*.conf' + - '**/*.frag' + - '**/*.vert' - comment: on-failure + comment: on-failure diff --git a/.gitignore b/.gitignore index 9902e3c0..e46a8299 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,6 @@ /demo/dist +# packages +/packages/*/node_modules +/packages/*/dist diff --git a/demo/index.html b/demo/index.html index d389127c..106a03bf 100644 --- a/demo/index.html +++ b/demo/index.html @@ -4,29 +4,30 @@ License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - + - - - - - - SVG Viewers Examples - - - -
-
-
-
-
-
-
-
-
- - + + + + + + + SVG Viewers Examples + + + +
+
+
+
+
+
+
+
+
+ + diff --git a/demo/src/App.jsx b/demo/src/App.tsx similarity index 88% rename from demo/src/App.jsx rename to demo/src/App.tsx index 52730f2f..11ab2c2a 100644 --- a/demo/src/App.jsx +++ b/demo/src/App.tsx @@ -5,21 +5,23 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import React, { useEffect, useRef } from 'react'; -import { NetworkMap, GeoData } from '../../src/'; +import { GeoData, NetworkMap } from '@/index'; import { - createTheme, - ThemeProvider, StyledEngineProvider, + ThemeProvider, + createTheme, } from '@mui/material/styles'; +import { useEffect, useRef } from 'react'; import DemoMapEquipments from './map-viewer/demo-map-equipments'; -import sposdata from './map-viewer/data/spos.json'; +import { NetworkMapRef } from '@/components/network-map-viewer/network/network-map'; +import { Equipment } from '@powsybl/network-map-layers'; +import { addNadToDemo, addSldToDemo } from './diagram-viewers/add-diagrams'; +import lmapdata from './map-viewer/data/lmap.json'; import lposdata from './map-viewer/data/lpos.json'; import smapdata from './map-viewer/data/smap.json'; -import lmapdata from './map-viewer/data/lmap.json'; -import { addNadToDemo, addSldToDemo } from './diagram-viewers/add-diagrams'; +import sposdata from './map-viewer/data/spos.json'; function App() { const INITIAL_ZOOM = 9; @@ -33,7 +35,12 @@ function App() { }, []); //called after a click (right mouse click) on an equipment (line or substation) - function showEquipmentMenu(equipment, x, y, type) { + function showEquipmentMenu( + equipment: Equipment, + x: number, + y: number, + type: string + ) { console.log( '# Show equipment menu: ' + JSON.stringify(equipment) + @@ -46,6 +53,7 @@ function App() { palette: { mode: 'dark', }, + // @ts-expect-error: TODO not present in ThemeOptions link: { color: 'green', }, @@ -69,7 +77,7 @@ function App() { const mapEquipments = new DemoMapEquipments(smapdata, lmapdata); useEffect(() => { - const handleContextmenu = (e) => { + const handleContextmenu = (e: MouseEvent) => { e.preventDefault(); }; document.addEventListener('contextmenu', handleContextmenu); @@ -78,7 +86,7 @@ function App() { }; }, []); - const networkMapRef = useRef(); + const networkMapRef = useRef(null); const filteredNominalVoltages = [380.0, 225.0, 110.0]; return ( @@ -138,12 +146,12 @@ function App() { onPolygonChanged={() => { console.log( 'Selected Substations: ', - networkMapRef.current.getSelectedSubstations() + networkMapRef.current?.getSelectedSubstations() .length ); console.log( 'Selected Lines: ', - networkMapRef.current.getSelectedLines() + networkMapRef.current?.getSelectedLines() .length ); }} diff --git a/demo/src/diagram-viewers/add-diagrams.js b/demo/src/diagram-viewers/add-diagrams.ts similarity index 74% rename from demo/src/diagram-viewers/add-diagrams.js rename to demo/src/diagram-viewers/add-diagrams.ts index 41c68430..540e8376 100644 --- a/demo/src/diagram-viewers/add-diagrams.js +++ b/demo/src/diagram-viewers/add-diagrams.ts @@ -6,20 +6,27 @@ */ import NadSvgExample from './data/nad-example.svg'; +import SldSvgExampleMeta from './data/sld-example-meta.json' assert { type: 'json' }; import SldSvgExample from './data/sld-example.svg'; -import SldSvgExampleMeta from './data/sld-example-meta.json'; +import SldSvgSubExampleMeta from './data/sld-sub-example-meta.json' assert { type: 'json' }; import SldSvgSubExample from './data/sld-sub-example.svg'; -import SldSvgSubExampleMeta from './data/sld-sub-example-meta.json'; -import { NetworkAreaDiagramViewer } from '../../../src/components/network-area-diagram-viewer/network-area-diagram-viewer'; -import { SingleLineDiagramViewer } from '../../../src/components/single-line-diagram-viewer/single-line-diagram-viewer'; +import { NetworkAreaDiagramViewer } from '@/components/network-area-diagram-viewer/network-area-diagram-viewer'; +import { + HandleTogglePopoverType, + OnBreakerCallbackType, + OnBusCallbackType, + OnFeederCallbackType, + OnNextVoltageCallbackType, + SingleLineDiagramViewer, +} from '@powsybl/single-line-diagram-viewer'; export const addNadToDemo = () => { fetch(NadSvgExample) .then((response) => response.text()) .then((svgContent) => { new NetworkAreaDiagramViewer( - document.getElementById('svg-container'), + document.getElementById('svg-container')!, svgContent, 500, 600, @@ -29,7 +36,7 @@ export const addNadToDemo = () => { document .getElementById('svg-container') - .getElementsByTagName('svg')[0] + ?.getElementsByTagName('svg')[0] .setAttribute('style', 'border:2px; border-style:solid;'); }); }; @@ -39,7 +46,7 @@ export const addSldToDemo = () => { .then((response) => response.text()) .then((svgContent) => { new SingleLineDiagramViewer( - document.getElementById('svg-container-sld'), + document.getElementById('svg-container-sld')!, svgContent, //svg content null, //svg metadata 'voltage-level', @@ -57,7 +64,7 @@ export const addSldToDemo = () => { document .getElementById('svg-container-sld') - .getElementsByTagName('svg')[0] + ?.getElementsByTagName('svg')[0] .setAttribute('style', 'border:2px; border-style:solid;'); }); @@ -65,7 +72,7 @@ export const addSldToDemo = () => { .then((response) => response.text()) .then((svgContent) => { new SingleLineDiagramViewer( - document.getElementById('svg-container-sld-with-callbacks'), + document.getElementById('svg-container-sld-with-callbacks')!, svgContent, //svg content SldSvgExampleMeta, //svg metadata 'voltage-level', @@ -83,7 +90,7 @@ export const addSldToDemo = () => { document .getElementById('svg-container-sld-with-callbacks') - .getElementsByTagName('svg')[0] + ?.getElementsByTagName('svg')[0] .setAttribute('style', 'border:2px; border-style:solid;'); }); @@ -91,7 +98,7 @@ export const addSldToDemo = () => { .then((response) => response.text()) .then((svgContent) => { new SingleLineDiagramViewer( - document.getElementById('svg-container-sldsub-with-callbacks'), + document.getElementById('svg-container-sldsub-with-callbacks')!, svgContent, //svg content SldSvgSubExampleMeta, //svg metadata 'substation', @@ -109,28 +116,39 @@ export const addSldToDemo = () => { document .getElementById('svg-container-sldsub-with-callbacks') - .getElementsByTagName('svg')[0] + ?.getElementsByTagName('svg')[0] .setAttribute('style', 'border:2px; border-style:solid;'); }); }; -const handleNextVL = (id) => { +const handleNextVL: OnNextVoltageCallbackType = (id: string) => { const msg = 'Clicked on navigation arrow, dest VL is ' + id; console.log(msg); }; -const handleSwitch = (id, switch_status, element) => { +const handleSwitch: OnBreakerCallbackType = ( + id: string, + switch_status: boolean, + element: EventTarget | null +) => { const msg = 'Clicked on switch: ' + id + ', switch_status: ' + (switch_status ? 'close' : 'open') + '. elementId: ' + - element.id; + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO no "id" prop existing + (element as any).id; console.log(msg); }; -const handleFeeder = (id, feederType, svgId, x, y) => { +const handleFeeder: OnFeederCallbackType = ( + id: string, + feederType: string | null, + svgId: string, + x: number, + y: number +) => { const msg = 'Clicked on feeder: ' + id + @@ -145,17 +163,22 @@ const handleFeeder = (id, feederType, svgId, x, y) => { console.log(msg); }; -const handleBus = (id, svgId, x, y) => { +const handleBus: OnBusCallbackType = ( + id: string, + svgId: string, + x: number, + y: number +) => { const msg = 'Clicked on bus: ' + id + ', svgId: ' + svgId + 'x: ' + x + ', y: ' + y; console.log(msg); }; -const handleTogglePopover = ( - shouldDisplay, - anchorEl, - equipmentId, - equipmentType +const handleTogglePopover: HandleTogglePopoverType = ( + shouldDisplay: boolean, + anchorEl: EventTarget | null, + equipmentId: string, + equipmentType: string ) => { if (shouldDisplay) { const msg = diff --git a/demo/src/diagram-viewers/data/sld-sub-example-meta.json b/demo/src/diagram-viewers/data/sld-sub-example-meta.json index ca7766de..4b81447f 100644 --- a/demo/src/diagram-viewers/data/sld-sub-example-meta.json +++ b/demo/src/diagram-viewers/data/sld-sub-example-meta.json @@ -1,2301 +1,2298 @@ { - "components": [ - { - "type": "BUSBAR_SECTION", - "size": { - "width": 0, - "height": 0 - }, - "styleClass": "sld-busbar-section" - }, - { - "type": "GENERATOR", - "anchorPoints": [ + "components": [ { - "x": 0, - "y": -6, - "orientation": "VERTICAL" + "type": "BUSBAR_SECTION", + "size": { + "width": 0, + "height": 0 + }, + "styleClass": "sld-busbar-section" }, { - "x": 0, - "y": 6, - "orientation": "VERTICAL" + "type": "GENERATOR", + "anchorPoints": [ + { + "x": 0, + "y": -6, + "orientation": "VERTICAL" + }, + { + "x": 0, + "y": 6, + "orientation": "VERTICAL" + }, + { + "x": -6, + "y": 0, + "orientation": "HORIZONTAL" + }, + { + "x": 6, + "y": 0, + "orientation": "HORIZONTAL" + } + ], + "size": { + "width": 12, + "height": 12 + }, + "styleClass": "sld-generator" }, { - "x": -6, - "y": 0, - "orientation": "HORIZONTAL" + "type": "PHASE_SHIFT_TRANSFORMER", + "anchorPoints": [ + { + "x": 0, + "y": -7.5, + "orientation": "VERTICAL" + }, + { + "x": 0, + "y": 7.5, + "orientation": "VERTICAL" + } + ], + "size": { + "width": 14, + "height": 15 + }, + "transformations": { + "LEFT": "ROTATION", + "RIGHT": "ROTATION", + "DOWN": "ROTATION" + }, + "styleClass": "sld-pst" }, { - "x": 6, - "y": 0, - "orientation": "HORIZONTAL" - } - ], - "size": { - "width": 12, - "height": 12 - }, - "styleClass": "sld-generator" - }, - { - "type": "PHASE_SHIFT_TRANSFORMER", - "anchorPoints": [ - { - "x": 0, - "y": -7.5, - "orientation": "VERTICAL" - }, - { - "x": 0, - "y": 7.5, - "orientation": "VERTICAL" - } - ], - "size": { - "width": 14, - "height": 15 - }, - "transformations": { - "LEFT": "ROTATION", - "RIGHT": "ROTATION", - "DOWN": "ROTATION" - }, - "styleClass": "sld-pst" - }, - { - "type": "ARROW_REACTIVE", - "size": { - "width": 10, - "height": 10 - }, - "transformations": { - "LEFT": "ROTATION", - "RIGHT": "ROTATION" - }, - "styleClass": "sld-arrow-q" - }, - { - "type": "ARROW_ACTIVE", - "size": { - "width": 10, - "height": 10 - }, - "transformations": { - "LEFT": "ROTATION", - "RIGHT": "ROTATION" - }, - "styleClass": "sld-arrow-p" - }, - { - "type": "LOAD", - "anchorPoints": [ - { - "x": 0, - "y": -4.5, - "orientation": "VERTICAL" - }, - { - "x": 0, - "y": 4.5, - "orientation": "VERTICAL" - } - ], - "size": { - "width": 16, - "height": 9 - }, - "transformations": { - "LEFT": "ROTATION", - "RIGHT": "ROTATION" - }, - "styleClass": "sld-load" - }, - { - "type": "NODE", - "anchorPoints": [ - { - "x": 0, - "y": 0, - "orientation": "NONE" - } - ], - "size": { - "width": 8, - "height": 8 - }, - "styleClass": "sld-node" - }, - { - "type": "PHASE_SHIFT_TRANSFORMER_LEG", - "anchorPoints": [ - { - "x": 0, - "y": 0, - "orientation": "NONE" - } - ], - "size": { - "width": 0, - "height": 0 - } - }, - { - "type": "CAPACITOR", - "anchorPoints": [ - { - "x": 0, - "y": -6, - "orientation": "VERTICAL" - }, - { - "x": 0, - "y": 6, - "orientation": "VERTICAL" - } - ], - "size": { - "width": 12, - "height": 12 - }, - "transformations": { - "LEFT": "ROTATION", - "RIGHT": "ROTATION" - }, - "styleClass": "sld-capacitor" - }, - { - "type": "BUS_CONNECTION", - "anchorPoints": [ - { - "x": 0, - "y": 0, - "orientation": "VERTICAL" - } - ], - "size": { - "width": 8, - "height": 8 - }, - "styleClass": "sld-bus-connection" - }, - { - "type": "THREE_WINDINGS_TRANSFORMER_LEG", - "anchorPoints": [ - { - "x": 0, - "y": 0, - "orientation": "NONE" - } - ], - "size": { - "width": 0, - "height": 0 - } - }, - { - "type": "TWO_WINDINGS_TRANSFORMER_LEG", - "anchorPoints": [ - { - "x": 0, - "y": 0, - "orientation": "NONE" - } - ], - "size": { - "width": 0, - "height": 0 - } - }, - { - "type": "TWO_WINDINGS_TRANSFORMER", - "anchorPoints": [ - { - "x": 0, - "y": -8, - "orientation": "VERTICAL" - }, - { - "x": 0, - "y": 8, - "orientation": "VERTICAL" - } - ], - "size": { - "width": 10, - "height": 15 - }, - "transformations": { - "LEFT": "ROTATION", - "RIGHT": "ROTATION", - "DOWN": "ROTATION" - }, - "styleClass": "sld-two-wt" - }, - { - "type": "THREE_WINDINGS_TRANSFORMER", - "anchorPoints": [ - { - "x": -7, - "y": 0, - "orientation": "HORIZONTAL" - }, - { - "x": 7, - "y": 0, - "orientation": "HORIZONTAL" - }, - { - "x": 0, - "y": 12, - "orientation": "VERTICAL" - } - ], - "size": { - "width": 16, - "height": 24 - }, - "transformations": { - "LEFT": "ROTATION", - "RIGHT": "ROTATION", - "DOWN": "FLIP" - }, - "styleClass": "sld-three-wt" - }, - { - "type": "DANGLING_LINE", - "anchorPoints": [ - { - "x": 0, - "y": 0, - "orientation": "NONE" - } - ], - "size": { - "width": 0, - "height": 0 - } - }, - { - "type": "LINE", - "anchorPoints": [ - { - "x": 0, - "y": 0, - "orientation": "NONE" - } - ], - "size": { - "width": 0, - "height": 0 - } - }, - { - "type": "BREAKER", - "anchorPoints": [ - { - "x": 0, - "y": -10, - "orientation": "VERTICAL" - }, - { - "x": 0, - "y": 10, - "orientation": "VERTICAL" - } - ], - "size": { - "width": 20, - "height": 20 - }, - "transformations": { - "LEFT": "ROTATION", - "RIGHT": "ROTATION" - }, - "styleClass": "sld-breaker" - } - ], - "nodes": [ - { - "id": "LABEL_VL_469df5f7-058f-4451-a998-57a48e8a56fe", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "open": false, - "vlabel": true, - "labels": [] - }, - { - "id": "id3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "3b394dab-ab47-4022-98be-8123c6dfe7d4", - "labels": [] - }, - { - "id": "idd771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "CAPACITOR", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "d771118f-36e9-4115-a128-cc3d9ce3e3da", - "labels": [ - { - "id": "d771118f-36e9-4115-a128-cc3d9ce3e3da_N_LABEL", - "positionName": "N_LABEL" - } - ] - }, - { - "id": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "0e8cd279-ad5d-485a-b3a9-093ae8714b72", - "labels": [] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "nextVId": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "THREE_WINDINGS_TRANSFORMER_LEG", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "labels": [ - { - "id": "84ed55f4-61f5-4d9d-8755-bba7b877a246_TWO_N_LABEL", - "positionName": "N_LABEL" - } - ] - }, - { - "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "96c2b5c8-8e28-4b08-96d2-ca9b09cdbd83", - "labels": [] - }, - { - "id": "idBUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "componentType": "BUSBAR_SECTION", - "open": false, - "vlabel": false, - "equipmentId": "INTERNAL_929ba893-c9dc-44d7-b1fd-30834bd3ab85_0FictitiousBus", - "labels": [] - }, - { - "id": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUSBAR_SECTION", - "open": false, - "vlabel": false, - "equipmentId": "5caf27ed-d2f8-458a-834a-6b3193a982e6", - "labels": [ - { - "id": "5caf27ed-d2f8-458a-834a-6b3193a982e6_NW_LABEL", - "positionName": "NW_LABEL" - } - ] - }, - { - "id": "id63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUSBAR_SECTION", - "open": false, - "vlabel": false, - "equipmentId": "63f25be7-7592-4cf1-8401-5772046ef2ae", - "labels": [ - { - "id": "63f25be7-7592-4cf1-8401-5772046ef2ae_NW_LABEL", - "positionName": "NW_LABEL" - } - ] - }, - { - "id": "idfd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", - "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "componentType": "BUSBAR_SECTION", - "open": false, - "vlabel": false, - "equipmentId": "fd649fe1-bdf5-4062-98ea-bbb66f50402d", - "labels": [ - { - "id": "fd649fe1-bdf5-4062-98ea-bbb66f50402d_NW_LABEL", - "positionName": "NW_LABEL" - } - ] - }, - { - "id": "id969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "969470b9-e74c-40d2-b3f7-bcfd88400fd1", - "labels": [] - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "nextVId": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "THREE_WINDINGS_TRANSFORMER_LEG", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "labels": [ - { - "id": "84ed55f4-61f5-4d9d-8755-bba7b877a246_ONE_N_LABEL", - "positionName": "N_LABEL" - } - ] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "LOAD", - "open": false, - "direction": "BOTTOM", - "vlabel": false, - "equipmentId": "1c6beed6-1acf-42e7-ba55-0cc9f04bddd8", - "labels": [ - { - "id": "1c6beed6-1acf-42e7-ba55-0cc9f04bddd8_S_LABEL", - "positionName": "S_LABEL" - } - ] - }, - { - "id": "idBUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "componentType": "GENERATOR", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "3a3b27be-b18b-4385-b557-6735d733baf0", - "labels": [ - { - "id": "3a3b27be-b18b-4385-b557-6735d733baf0_N_LABEL", - "positionName": "N_LABEL" - } - ] - }, - { - "id": "idBUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "BUSBAR_SECTION", - "open": false, - "vlabel": false, - "equipmentId": "364c9ca2-0d1d-4363-8f46-e586f8f66a8c", - "labels": [ - { - "id": "364c9ca2-0d1d-4363-8f46-e586f8f66a8c_NW_LABEL", - "positionName": "NW_LABEL" - } - ] - }, - { - "id": "idddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "ddc148fc-3abd-459d-aec1-396283e0def6", - "labels": [] - }, - { - "id": "idcb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "LOAD", - "open": false, - "direction": "BOTTOM", - "vlabel": false, - "equipmentId": "cb459405-cc14-4215-a45c-416789205904", - "labels": [ - { - "id": "cb459405-cc14-4215-a45c-416789205904_S_LABEL", - "positionName": "S_LABEL" - } - ] - }, - { - "id": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BUSBAR_SECTION", - "open": false, - "vlabel": false, - "equipmentId": "64901aec-5a8a-4bcb-8ca7-a3ddbfcd0e6c", - "labels": [ - { - "id": "64901aec-5a8a-4bcb-8ca7-a3ddbfcd0e6c_NW_LABEL", - "positionName": "NW_LABEL" - } - ] - }, - { - "id": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "DANGLING_LINE", - "open": false, - "direction": "BOTTOM", - "vlabel": false, - "equipmentId": "78736387-5f60-4832-b3fe-d50daf81b0a6", - "labels": [ - { - "id": "78736387-5f60-4832-b3fe-d50daf81b0a6_S_LABEL", - "positionName": "S_LABEL" - } - ] - }, - { - "id": "idb18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "DANGLING_LINE", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "b18cd1aa-7808-49b9-a7cf-605eaf07b006", - "labels": [ - { - "id": "b18cd1aa-7808-49b9-a7cf-605eaf07b006_N_LABEL", - "positionName": "N_LABEL" - } - ] - }, - { - "id": "ida603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "a603d890-5d9d-42ef-98d0-acf47d121c0e", - "labels": [] - }, - { - "id": "idBUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "38dfcc80-600f-44e2-8f71-fb595b4f00ac", - "labels": [] - }, - { - "id": "idBUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "nextVId": "69ef0dbd-da79-4eef-a02f-690cb8a28361", - "componentType": "LINE", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "ffbabc27-1ccd-4fdc-b037-e341706c8d29", - "labels": [ - { - "id": "ffbabc27-1ccd-4fdc-b037-e341706c8d29_ONE_N_LABEL", - "positionName": "N_LABEL" - } - ] - }, - { - "id": "idBUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "nextVId": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "PHASE_SHIFT_TRANSFORMER_LEG", - "open": false, - "direction": "BOTTOM", - "vlabel": false, - "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", - "labels": [ - { - "id": "b94318f6-6d24-4f56-96b9-df2531ad6543_ONE_S_LABEL", - "positionName": "S_LABEL" - } - ] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "6b564930-b5e2-49d3-9d06-e1de28d6fd65", - "labels": [] - }, - { - "id": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "LABEL_VL_4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "open": false, - "vlabel": true, - "labels": [] - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246", - "vid": "", - "componentType": "THREE_WINDINGS_TRANSFORMER", - "open": false, - "vlabel": false, - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "labels": [] - }, - { - "id": "idc8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUSBAR_SECTION", - "open": false, - "vlabel": false, - "equipmentId": "c8ce5e08-5ee3-42d9-aa44-5792db252d9f", - "labels": [ - { - "id": "c8ce5e08-5ee3-42d9-aa44-5792db252d9f_NW_LABEL", - "positionName": "NW_LABEL" - } - ] - }, - { - "id": "id2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "BREAKER", - "open": true, - "vlabel": false, - "equipmentId": "2922c1dd-4113-466e-8cad-002572f3f557", - "labels": [] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "ided0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "DANGLING_LINE", - "open": false, - "direction": "BOTTOM", - "vlabel": false, - "equipmentId": "ed0c5d75-4a54-43c8-b782-b20d7431630b", - "labels": [ - { - "id": "ed0c5d75-4a54-43c8-b782-b20d7431630b_S_LABEL", - "positionName": "S_LABEL" - } - ] - }, - { - "id": "LABEL_VL_b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "open": false, - "vlabel": true, - "labels": [] - }, - { - "id": "idBUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "componentType": "GENERATOR", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "550ebe0d-f2b2-48c1-991f-cebea43a21aa", - "labels": [ - { - "id": "550ebe0d-f2b2-48c1-991f-cebea43a21aa_N_LABEL", - "positionName": "N_LABEL" - } - ] - }, - { - "id": "LABEL_VL_8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "open": false, - "vlabel": true, - "labels": [] - }, - { - "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idb58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "nextVId": "69ef0dbd-da79-4eef-a02f-690cb8a28361", - "componentType": "LINE", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "b58bf21a-096a-4dae-9a01-3f03b60c24c7", - "labels": [ - { - "id": "b58bf21a-096a-4dae-9a01-3f03b60c24c7_ONE_N_LABEL", - "positionName": "N_LABEL" - } - ] - }, - { - "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "nextVId": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "TWO_WINDINGS_TRANSFORMER_LEG", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", - "labels": [ - { - "id": "e482b89a-fa84-4ea9-8e70-a83d44790957_ONE_N_LABEL", - "positionName": "N_LABEL" - } - ] - }, - { - "id": "id14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "14d55344-c118-4f54-a430-72f16d12bf7b", - "labels": [] - }, - { - "id": "LABEL_VL_929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "open": false, - "vlabel": true, - "labels": [] - }, - { - "id": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "nextVId": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "PHASE_SHIFT_TRANSFORMER_LEG", - "open": false, - "direction": "BOTTOM", - "vlabel": false, - "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", - "labels": [ - { - "id": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0_ONE_S_LABEL", - "positionName": "S_LABEL" - } - ] - }, - { - "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "nextVId": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "PHASE_SHIFT_TRANSFORMER_LEG", - "open": false, - "direction": "BOTTOM", - "vlabel": false, - "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", - "labels": [ - { - "id": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0_TWO_S_LABEL", - "positionName": "S_LABEL" - } - ] - }, - { - "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "nextVId": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", - "componentType": "TWO_WINDINGS_TRANSFORMER_LEG", - "open": false, - "direction": "BOTTOM", - "vlabel": false, - "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", - "labels": [ - { - "id": "e482b89a-fa84-4ea9-8e70-a83d44790957_TWO_S_LABEL", - "positionName": "S_LABEL" + "type": "ARROW_REACTIVE", + "size": { + "width": 10, + "height": 10 + }, + "transformations": { + "LEFT": "ROTATION", + "RIGHT": "ROTATION" + }, + "styleClass": "sld-arrow-q" + }, + { + "type": "ARROW_ACTIVE", + "size": { + "width": 10, + "height": 10 + }, + "transformations": { + "LEFT": "ROTATION", + "RIGHT": "ROTATION" + }, + "styleClass": "sld-arrow-p" + }, + { + "type": "LOAD", + "anchorPoints": [ + { + "x": 0, + "y": -4.5, + "orientation": "VERTICAL" + }, + { + "x": 0, + "y": 4.5, + "orientation": "VERTICAL" + } + ], + "size": { + "width": 16, + "height": 9 + }, + "transformations": { + "LEFT": "ROTATION", + "RIGHT": "ROTATION" + }, + "styleClass": "sld-load" + }, + { + "type": "NODE", + "anchorPoints": [ + { + "x": 0, + "y": 0, + "orientation": "NONE" + } + ], + "size": { + "width": 8, + "height": 8 + }, + "styleClass": "sld-node" + }, + { + "type": "PHASE_SHIFT_TRANSFORMER_LEG", + "anchorPoints": [ + { + "x": 0, + "y": 0, + "orientation": "NONE" + } + ], + "size": { + "width": 0, + "height": 0 + } + }, + { + "type": "CAPACITOR", + "anchorPoints": [ + { + "x": 0, + "y": -6, + "orientation": "VERTICAL" + }, + { + "x": 0, + "y": 6, + "orientation": "VERTICAL" + } + ], + "size": { + "width": 12, + "height": 12 + }, + "transformations": { + "LEFT": "ROTATION", + "RIGHT": "ROTATION" + }, + "styleClass": "sld-capacitor" + }, + { + "type": "BUS_CONNECTION", + "anchorPoints": [ + { + "x": 0, + "y": 0, + "orientation": "VERTICAL" + } + ], + "size": { + "width": 8, + "height": 8 + }, + "styleClass": "sld-bus-connection" + }, + { + "type": "THREE_WINDINGS_TRANSFORMER_LEG", + "anchorPoints": [ + { + "x": 0, + "y": 0, + "orientation": "NONE" + } + ], + "size": { + "width": 0, + "height": 0 + } + }, + { + "type": "TWO_WINDINGS_TRANSFORMER_LEG", + "anchorPoints": [ + { + "x": 0, + "y": 0, + "orientation": "NONE" + } + ], + "size": { + "width": 0, + "height": 0 + } + }, + { + "type": "TWO_WINDINGS_TRANSFORMER", + "anchorPoints": [ + { + "x": 0, + "y": -8, + "orientation": "VERTICAL" + }, + { + "x": 0, + "y": 8, + "orientation": "VERTICAL" + } + ], + "size": { + "width": 10, + "height": 15 + }, + "transformations": { + "LEFT": "ROTATION", + "RIGHT": "ROTATION", + "DOWN": "ROTATION" + }, + "styleClass": "sld-two-wt" + }, + { + "type": "THREE_WINDINGS_TRANSFORMER", + "anchorPoints": [ + { + "x": -7, + "y": 0, + "orientation": "HORIZONTAL" + }, + { + "x": 7, + "y": 0, + "orientation": "HORIZONTAL" + }, + { + "x": 0, + "y": 12, + "orientation": "VERTICAL" + } + ], + "size": { + "width": 16, + "height": 24 + }, + "transformations": { + "LEFT": "ROTATION", + "RIGHT": "ROTATION", + "DOWN": "FLIP" + }, + "styleClass": "sld-three-wt" + }, + { + "type": "DANGLING_LINE", + "anchorPoints": [ + { + "x": 0, + "y": 0, + "orientation": "NONE" + } + ], + "size": { + "width": 0, + "height": 0 + } + }, + { + "type": "LINE", + "anchorPoints": [ + { + "x": 0, + "y": 0, + "orientation": "NONE" + } + ], + "size": { + "width": 0, + "height": 0 + } + }, + { + "type": "BREAKER", + "anchorPoints": [ + { + "x": 0, + "y": -10, + "orientation": "VERTICAL" + }, + { + "x": 0, + "y": 10, + "orientation": "VERTICAL" + } + ], + "size": { + "width": 20, + "height": 20 + }, + "transformations": { + "LEFT": "ROTATION", + "RIGHT": "ROTATION" + }, + "styleClass": "sld-breaker" } - ] - }, - { - "id": "idBUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0", - "vid": "", - "componentType": "PHASE_SHIFT_TRANSFORMER", - "open": false, - "vlabel": false, - "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", - "labels": [] - }, - { - "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957", - "vid": "", - "componentType": "TWO_WINDINGS_TRANSFORMER", - "open": false, - "vlabel": false, - "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", - "labels": [] - }, - { - "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "CAPACITOR", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "002b0a40-3957-46db-b84a-30420083558f", - "labels": [ - { - "id": "002b0a40-3957-46db-b84a-30420083558f_N_LABEL", - "positionName": "N_LABEL" + ], + "nodes": [ + { + "id": "LABEL_VL_469df5f7-058f-4451-a998-57a48e8a56fe", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "open": false, + "vlabel": true, + "labels": [] + }, + { + "id": "id3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "3b394dab-ab47-4022-98be-8123c6dfe7d4", + "labels": [] + }, + { + "id": "idd771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "CAPACITOR", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "d771118f-36e9-4115-a128-cc3d9ce3e3da", + "labels": [ + { + "id": "d771118f-36e9-4115-a128-cc3d9ce3e3da_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "0e8cd279-ad5d-485a-b3a9-093ae8714b72", + "labels": [] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "nextVId": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "THREE_WINDINGS_TRANSFORMER_LEG", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "labels": [ + { + "id": "84ed55f4-61f5-4d9d-8755-bba7b877a246_TWO_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "96c2b5c8-8e28-4b08-96d2-ca9b09cdbd83", + "labels": [] + }, + { + "id": "idBUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "componentType": "BUSBAR_SECTION", + "open": false, + "vlabel": false, + "equipmentId": "INTERNAL_929ba893-c9dc-44d7-b1fd-30834bd3ab85_0FictitiousBus", + "labels": [] + }, + { + "id": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUSBAR_SECTION", + "open": false, + "vlabel": false, + "equipmentId": "5caf27ed-d2f8-458a-834a-6b3193a982e6", + "labels": [ + { + "id": "5caf27ed-d2f8-458a-834a-6b3193a982e6_NW_LABEL", + "positionName": "NW_LABEL" + } + ] + }, + { + "id": "id63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUSBAR_SECTION", + "open": false, + "vlabel": false, + "equipmentId": "63f25be7-7592-4cf1-8401-5772046ef2ae", + "labels": [ + { + "id": "63f25be7-7592-4cf1-8401-5772046ef2ae_NW_LABEL", + "positionName": "NW_LABEL" + } + ] + }, + { + "id": "idfd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", + "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "componentType": "BUSBAR_SECTION", + "open": false, + "vlabel": false, + "equipmentId": "fd649fe1-bdf5-4062-98ea-bbb66f50402d", + "labels": [ + { + "id": "fd649fe1-bdf5-4062-98ea-bbb66f50402d_NW_LABEL", + "positionName": "NW_LABEL" + } + ] + }, + { + "id": "id969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "969470b9-e74c-40d2-b3f7-bcfd88400fd1", + "labels": [] + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "nextVId": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "THREE_WINDINGS_TRANSFORMER_LEG", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "labels": [ + { + "id": "84ed55f4-61f5-4d9d-8755-bba7b877a246_ONE_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "LOAD", + "open": false, + "direction": "BOTTOM", + "vlabel": false, + "equipmentId": "1c6beed6-1acf-42e7-ba55-0cc9f04bddd8", + "labels": [ + { + "id": "1c6beed6-1acf-42e7-ba55-0cc9f04bddd8_S_LABEL", + "positionName": "S_LABEL" + } + ] + }, + { + "id": "idBUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "componentType": "GENERATOR", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "3a3b27be-b18b-4385-b557-6735d733baf0", + "labels": [ + { + "id": "3a3b27be-b18b-4385-b557-6735d733baf0_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "idBUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "BUSBAR_SECTION", + "open": false, + "vlabel": false, + "equipmentId": "364c9ca2-0d1d-4363-8f46-e586f8f66a8c", + "labels": [ + { + "id": "364c9ca2-0d1d-4363-8f46-e586f8f66a8c_NW_LABEL", + "positionName": "NW_LABEL" + } + ] + }, + { + "id": "idddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "ddc148fc-3abd-459d-aec1-396283e0def6", + "labels": [] + }, + { + "id": "idcb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "LOAD", + "open": false, + "direction": "BOTTOM", + "vlabel": false, + "equipmentId": "cb459405-cc14-4215-a45c-416789205904", + "labels": [ + { + "id": "cb459405-cc14-4215-a45c-416789205904_S_LABEL", + "positionName": "S_LABEL" + } + ] + }, + { + "id": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BUSBAR_SECTION", + "open": false, + "vlabel": false, + "equipmentId": "64901aec-5a8a-4bcb-8ca7-a3ddbfcd0e6c", + "labels": [ + { + "id": "64901aec-5a8a-4bcb-8ca7-a3ddbfcd0e6c_NW_LABEL", + "positionName": "NW_LABEL" + } + ] + }, + { + "id": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "DANGLING_LINE", + "open": false, + "direction": "BOTTOM", + "vlabel": false, + "equipmentId": "78736387-5f60-4832-b3fe-d50daf81b0a6", + "labels": [ + { + "id": "78736387-5f60-4832-b3fe-d50daf81b0a6_S_LABEL", + "positionName": "S_LABEL" + } + ] + }, + { + "id": "idb18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "DANGLING_LINE", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "b18cd1aa-7808-49b9-a7cf-605eaf07b006", + "labels": [ + { + "id": "b18cd1aa-7808-49b9-a7cf-605eaf07b006_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "ida603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "a603d890-5d9d-42ef-98d0-acf47d121c0e", + "labels": [] + }, + { + "id": "idBUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "38dfcc80-600f-44e2-8f71-fb595b4f00ac", + "labels": [] + }, + { + "id": "idBUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "nextVId": "69ef0dbd-da79-4eef-a02f-690cb8a28361", + "componentType": "LINE", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "ffbabc27-1ccd-4fdc-b037-e341706c8d29", + "labels": [ + { + "id": "ffbabc27-1ccd-4fdc-b037-e341706c8d29_ONE_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "idBUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "nextVId": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "PHASE_SHIFT_TRANSFORMER_LEG", + "open": false, + "direction": "BOTTOM", + "vlabel": false, + "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", + "labels": [ + { + "id": "b94318f6-6d24-4f56-96b9-df2531ad6543_ONE_S_LABEL", + "positionName": "S_LABEL" + } + ] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "6b564930-b5e2-49d3-9d06-e1de28d6fd65", + "labels": [] + }, + { + "id": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "LABEL_VL_4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "open": false, + "vlabel": true, + "labels": [] + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246", + "vid": "", + "componentType": "THREE_WINDINGS_TRANSFORMER", + "open": false, + "vlabel": false, + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "labels": [] + }, + { + "id": "idc8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUSBAR_SECTION", + "open": false, + "vlabel": false, + "equipmentId": "c8ce5e08-5ee3-42d9-aa44-5792db252d9f", + "labels": [ + { + "id": "c8ce5e08-5ee3-42d9-aa44-5792db252d9f_NW_LABEL", + "positionName": "NW_LABEL" + } + ] + }, + { + "id": "id2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "BREAKER", + "open": true, + "vlabel": false, + "equipmentId": "2922c1dd-4113-466e-8cad-002572f3f557", + "labels": [] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "ided0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "DANGLING_LINE", + "open": false, + "direction": "BOTTOM", + "vlabel": false, + "equipmentId": "ed0c5d75-4a54-43c8-b782-b20d7431630b", + "labels": [ + { + "id": "ed0c5d75-4a54-43c8-b782-b20d7431630b_S_LABEL", + "positionName": "S_LABEL" + } + ] + }, + { + "id": "LABEL_VL_b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "open": false, + "vlabel": true, + "labels": [] + }, + { + "id": "idBUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "componentType": "GENERATOR", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "550ebe0d-f2b2-48c1-991f-cebea43a21aa", + "labels": [ + { + "id": "550ebe0d-f2b2-48c1-991f-cebea43a21aa_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "LABEL_VL_8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "open": false, + "vlabel": true, + "labels": [] + }, + { + "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idb58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "nextVId": "69ef0dbd-da79-4eef-a02f-690cb8a28361", + "componentType": "LINE", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "b58bf21a-096a-4dae-9a01-3f03b60c24c7", + "labels": [ + { + "id": "b58bf21a-096a-4dae-9a01-3f03b60c24c7_ONE_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "nextVId": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "TWO_WINDINGS_TRANSFORMER_LEG", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", + "labels": [ + { + "id": "e482b89a-fa84-4ea9-8e70-a83d44790957_ONE_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "id14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "14d55344-c118-4f54-a430-72f16d12bf7b", + "labels": [] + }, + { + "id": "LABEL_VL_929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "open": false, + "vlabel": true, + "labels": [] + }, + { + "id": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "nextVId": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "PHASE_SHIFT_TRANSFORMER_LEG", + "open": false, + "direction": "BOTTOM", + "vlabel": false, + "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", + "labels": [ + { + "id": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0_ONE_S_LABEL", + "positionName": "S_LABEL" + } + ] + }, + { + "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "nextVId": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "PHASE_SHIFT_TRANSFORMER_LEG", + "open": false, + "direction": "BOTTOM", + "vlabel": false, + "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", + "labels": [ + { + "id": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0_TWO_S_LABEL", + "positionName": "S_LABEL" + } + ] + }, + { + "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "vid": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "nextVId": "4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386", + "componentType": "TWO_WINDINGS_TRANSFORMER_LEG", + "open": false, + "direction": "BOTTOM", + "vlabel": false, + "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", + "labels": [ + { + "id": "e482b89a-fa84-4ea9-8e70-a83d44790957_TWO_S_LABEL", + "positionName": "S_LABEL" + } + ] + }, + { + "id": "idBUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0", + "vid": "", + "componentType": "PHASE_SHIFT_TRANSFORMER", + "open": false, + "vlabel": false, + "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", + "labels": [] + }, + { + "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957", + "vid": "", + "componentType": "TWO_WINDINGS_TRANSFORMER", + "open": false, + "vlabel": false, + "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", + "labels": [] + }, + { + "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "CAPACITOR", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "002b0a40-3957-46db-b84a-30420083558f", + "labels": [ + { + "id": "002b0a40-3957-46db-b84a-30420083558f_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "nextVId": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "PHASE_SHIFT_TRANSFORMER_LEG", + "open": false, + "direction": "TOP", + "vlabel": false, + "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", + "labels": [ + { + "id": "b94318f6-6d24-4f56-96b9-df2531ad6543_TWO_N_LABEL", + "positionName": "N_LABEL" + } + ] + }, + { + "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", + "componentType": "NODE", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", + "componentType": "BREAKER", + "open": false, + "vlabel": false, + "equipmentId": "6e86cd52-4594-435e-92ce-6dc673288ab4", + "labels": [] + }, + { + "id": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "idBUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "nextVId": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "componentType": "THREE_WINDINGS_TRANSFORMER_LEG", + "open": false, + "direction": "BOTTOM", + "vlabel": false, + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "labels": [ + { + "id": "84ed55f4-61f5-4d9d-8755-bba7b877a246_THREE_S_LABEL", + "positionName": "S_LABEL" + } + ] + }, + { + "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543", + "vid": "", + "componentType": "PHASE_SHIFT_TRANSFORMER", + "open": false, + "vlabel": false, + "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", + "labels": [] + }, + { + "id": "idBUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", + "componentType": "BUS_CONNECTION", + "open": false, + "vlabel": false, + "labels": [] } - ] - }, - { - "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "nextVId": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "PHASE_SHIFT_TRANSFORMER_LEG", - "open": false, - "direction": "TOP", - "vlabel": false, - "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", - "labels": [ - { - "id": "b94318f6-6d24-4f56-96b9-df2531ad6543_TWO_N_LABEL", - "positionName": "N_LABEL" + ], + "wires": [ + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_95_BUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "nodeId2": "idBUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "nodeId2": "idcb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", + "nodeId2": "id38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4_95_BUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "nodeId2": "idBUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_95_BUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "nodeId2": "idBUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1_95_BUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "nodeId2": "idBUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", + "nodeId1": "id550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", + "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", + "nodeId1": "id78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_95_BUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "nodeId2": "idBUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_BUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", + "nodeId1": "idBUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "nodeId2": "idffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_BUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_95_fd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", + "nodeId1": "idBUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "nodeId2": "idfd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", + "nodeId1": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", + "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", + "nodeId2": "id2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72_95_BUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "nodeId2": "idBUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", + "nodeId2": "id969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "nodeId1": "idBUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_95_BUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "nodeId2": "idBUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "nodeId1": "id969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "nodeId1": "id3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "nodeId1": "idBUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "nodeId1": "id6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_95_BUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "nodeId2": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65_95_BUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "nodeId2": "idBUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "nodeId1": "idddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_95_63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", + "nodeId1": "idBUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "nodeId2": "id63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "nodeId1": "id38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac_95_BUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "nodeId2": "idBUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "nodeId1": "idBUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", + "nodeId1": "idb18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "nodeId1": "idBUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_95_BUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "nodeId2": "idBUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_BUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_95_fd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", + "nodeId1": "idBUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "nodeId2": "idfd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", + "nodeId2": "id0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "nodeId1": "idBUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "nodeId1": "idBUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", + "nodeId1": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", + "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b_95_BUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "nodeId2": "idBUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "nodeId2": "id1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", + "nodeId1": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", + "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", + "straight": false, + "snakeLine": false + }, + { + "id": "idEDGE_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", + "nodeId1": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", + "nodeId2": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957", + "straight": false, + "snakeLine": true + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", + "nodeId2": "id96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "nodeId1": "id14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "nodeId1": "id6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_BUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", + "nodeId1": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_95_c8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", + "nodeId1": "idBUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", + "nodeId2": "idc8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "nodeId1": "idBUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", + "nodeId2": "id14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", + "nodeId1": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "nodeId1": "ida603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", + "nodeId2": "id6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "nodeId2": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "nodeId1": "idBUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", + "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "nodeId2": "ided0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "nodeId1": "id2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "straight": false, + "snakeLine": false + }, + { + "id": "idEDGE_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "nodeId1": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "nodeId2": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957", + "straight": false, + "snakeLine": true + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", + "nodeId1": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", + "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", + "straight": false, + "snakeLine": false + }, + { + "id": "idEDGE_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", + "nodeId1": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", + "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246", + "straight": false, + "snakeLine": true + }, + { + "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "nodeId2": "id3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", + "nodeId2": "ida603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "nodeId2": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", + "straight": false, + "snakeLine": false + }, + { + "id": "idEDGE_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", + "nodeId1": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", + "nodeId2": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0", + "straight": false, + "snakeLine": true + }, + { + "id": "idEDGE_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", + "nodeId1": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", + "nodeId2": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0", + "straight": false, + "snakeLine": true + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4_95_63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", + "nodeId1": "idBUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", + "nodeId2": "id63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_95_BUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "nodeId2": "idBUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904_95_BUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "nodeId2": "idBUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "straight": false, + "snakeLine": false + }, + { + "id": "idEDGE_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "nodeId1": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246", + "straight": false, + "snakeLine": true + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "nodeId1": "id96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "straight": false, + "snakeLine": false + }, + { + "id": "idEDGE_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "nodeId1": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", + "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246", + "straight": false, + "snakeLine": true + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557_95_BUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "nodeId2": "idBUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6_95_BUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "nodeId2": "idBUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "nodeId1": "idBUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", + "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "nodeId1": "idBUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", + "nodeId1": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", + "nodeId2": "id6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_95_BUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "nodeId2": "idBUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6_95_c8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", + "nodeId1": "idBUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", + "nodeId2": "idc8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4_95_BUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "nodeId2": "idBUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "nodeId1": "idBUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", + "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "nodeId1": "id0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "nodeId1": "idBUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", + "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83_95_BUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "nodeId2": "idBUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e_95_BUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "nodeId2": "idBUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", + "straight": false, + "snakeLine": false + }, + { + "id": "idEDGE_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", + "nodeId1": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", + "nodeId2": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543", + "straight": false, + "snakeLine": true + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "nodeId2": "idd771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_95_BUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "nodeId2": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "nodeId1": "idBUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", + "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "nodeId2": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "nodeId1": "idBUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", + "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "nodeId2": "idb58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", + "straight": false, + "snakeLine": false + }, + { + "id": "idEDGE_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", + "nodeId1": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", + "nodeId2": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543", + "straight": false, + "snakeLine": true + }, + { + "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "nodeId1": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", + "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "nodeId1": "idBUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", + "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "nodeId2": "id002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", + "straight": false, + "snakeLine": false + }, + { + "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_95_BUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "nodeId2": "idBUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", + "straight": false, + "snakeLine": false } - ] - }, - { - "id": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "vid": "b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c", - "componentType": "NODE", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "vid": "8bbd7e74-ae20-4dce-8780-c20f8e18c2e0", - "componentType": "BREAKER", - "open": false, - "vlabel": false, - "equipmentId": "6e86cd52-4594-435e-92ce-6dc673288ab4", - "labels": [] - }, - { - "id": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "idBUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "vid": "469df5f7-058f-4451-a998-57a48e8a56fe", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "nextVId": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "componentType": "THREE_WINDINGS_TRANSFORMER_LEG", - "open": false, - "direction": "BOTTOM", - "vlabel": false, - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "labels": [ - { - "id": "84ed55f4-61f5-4d9d-8755-bba7b877a246_THREE_S_LABEL", - "positionName": "S_LABEL" + ], + "lines": [], + "feederInfos": [ + { + "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO_ARROW_REACTIVE", + "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", + "side": "TWO" + }, + { + "id": "ided0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_ARROW_ACTIVE", + "equipmentId": "ed0c5d75-4a54-43c8-b782-b20d7431630b" + }, + { + "id": "id3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_ARROW_REACTIVE", + "equipmentId": "3a3b27be-b18b-4385-b557-6735d733baf0" + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE_ARROW_ACTIVE", + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "side": "ONE" + }, + { + "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO_ARROW_ACTIVE", + "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", + "side": "TWO" + }, + { + "id": "idb58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_ARROW_ACTIVE", + "equipmentId": "b58bf21a-096a-4dae-9a01-3f03b60c24c7", + "side": "ONE" + }, + { + "id": "id78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6_ARROW_REACTIVE", + "equipmentId": "78736387-5f60-4832-b3fe-d50daf81b0a6" + }, + { + "id": "idffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_ARROW_REACTIVE", + "equipmentId": "ffbabc27-1ccd-4fdc-b037-e341706c8d29", + "side": "ONE" + }, + { + "id": "idb58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_ARROW_REACTIVE", + "equipmentId": "b58bf21a-096a-4dae-9a01-3f03b60c24c7", + "side": "ONE" + }, + { + "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO_ARROW_REACTIVE", + "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", + "side": "TWO" + }, + { + "id": "id3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_ARROW_ACTIVE", + "equipmentId": "3a3b27be-b18b-4385-b557-6735d733baf0" + }, + { + "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE_ARROW_ACTIVE", + "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", + "side": "ONE" + }, + { + "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_ARROW_ACTIVE", + "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", + "side": "TWO" + }, + { + "id": "id78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6_ARROW_ACTIVE", + "equipmentId": "78736387-5f60-4832-b3fe-d50daf81b0a6" + }, + { + "id": "idd771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_ARROW_ACTIVE", + "equipmentId": "d771118f-36e9-4115-a128-cc3d9ce3e3da" + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_ARROW_REACTIVE", + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "side": "TWO" + }, + { + "id": "id550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa_ARROW_REACTIVE", + "equipmentId": "550ebe0d-f2b2-48c1-991f-cebea43a21aa" + }, + { + "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE_ARROW_REACTIVE", + "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", + "side": "ONE" + }, + { + "id": "id1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_ARROW_REACTIVE", + "equipmentId": "1c6beed6-1acf-42e7-ba55-0cc9f04bddd8" + }, + { + "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO_ARROW_ACTIVE", + "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", + "side": "TWO" + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_ARROW_REACTIVE", + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "side": "THREE" + }, + { + "id": "id1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_ARROW_ACTIVE", + "equipmentId": "1c6beed6-1acf-42e7-ba55-0cc9f04bddd8" + }, + { + "id": "idffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_ARROW_ACTIVE", + "equipmentId": "ffbabc27-1ccd-4fdc-b037-e341706c8d29", + "side": "ONE" + }, + { + "id": "id550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa_ARROW_ACTIVE", + "equipmentId": "550ebe0d-f2b2-48c1-991f-cebea43a21aa" + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_ARROW_ACTIVE", + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "side": "TWO" + }, + { + "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE_ARROW_ACTIVE", + "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", + "side": "ONE" + }, + { + "id": "idd771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_ARROW_REACTIVE", + "equipmentId": "d771118f-36e9-4115-a128-cc3d9ce3e3da" + }, + { + "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE_ARROW_REACTIVE", + "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", + "side": "ONE" + }, + { + "id": "ided0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_ARROW_REACTIVE", + "equipmentId": "ed0c5d75-4a54-43c8-b782-b20d7431630b" + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_ARROW_ACTIVE", + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "side": "THREE" + }, + { + "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE_ARROW_ACTIVE", + "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", + "side": "ONE" + }, + { + "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE_ARROW_REACTIVE", + "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", + "side": "ONE" + }, + { + "id": "id002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_ARROW_REACTIVE", + "equipmentId": "002b0a40-3957-46db-b84a-30420083558f" + }, + { + "id": "idb18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006_ARROW_REACTIVE", + "equipmentId": "b18cd1aa-7808-49b9-a7cf-605eaf07b006" + }, + { + "id": "id002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_ARROW_ACTIVE", + "equipmentId": "002b0a40-3957-46db-b84a-30420083558f" + }, + { + "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE_ARROW_REACTIVE", + "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", + "side": "ONE" + }, + { + "id": "idcb459405_45_cc14_45_4215_45_a45c_45_416789205904_ARROW_ACTIVE", + "equipmentId": "cb459405-cc14-4215-a45c-416789205904" + }, + { + "id": "idcb459405_45_cc14_45_4215_45_a45c_45_416789205904_ARROW_REACTIVE", + "equipmentId": "cb459405-cc14-4215-a45c-416789205904" + }, + { + "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_ARROW_REACTIVE", + "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", + "side": "TWO" + }, + { + "id": "idb18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006_ARROW_ACTIVE", + "equipmentId": "b18cd1aa-7808-49b9-a7cf-605eaf07b006" } - ] - }, - { - "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543", - "vid": "", - "componentType": "PHASE_SHIFT_TRANSFORMER", - "open": false, - "vlabel": false, - "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", - "labels": [] - }, - { - "id": "idBUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "vid": "929ba893-c9dc-44d7-b1fd-30834bd3ab85", - "componentType": "BUS_CONNECTION", - "open": false, - "vlabel": false, - "labels": [] - } - ], - "wires": [ - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_95_BUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "nodeId2": "idBUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "nodeId2": "idcb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", - "nodeId2": "id38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4_95_BUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "nodeId2": "idBUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_95_BUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "nodeId2": "idBUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1_95_BUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "nodeId2": "idBUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", - "nodeId1": "id550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", - "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", - "nodeId1": "id78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_95_BUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "nodeId2": "idBUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_BUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", - "nodeId1": "idBUSCO_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "nodeId2": "idffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_BUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_95_fd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", - "nodeId1": "idBUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "nodeId2": "idfd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", - "nodeId1": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", - "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", - "nodeId2": "id2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72_95_BUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "nodeId2": "idBUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa", - "nodeId2": "id969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "nodeId1": "idBUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_95_BUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "nodeId2": "idBUSCO_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "nodeId1": "id969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_969470b9_45_e74c_45_40d2_45_b3f7_45_bcfd88400fd1", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "nodeId1": "id3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "nodeId1": "idBUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "nodeId1": "id6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_95_BUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "nodeId2": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65_95_BUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "nodeId2": "idBUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "nodeId1": "idddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_95_63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", - "nodeId1": "idBUSCO_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "nodeId2": "id63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "nodeId1": "id38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac_95_BUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "nodeId2": "idBUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "nodeId1": "idBUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", - "nodeId1": "idb18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "nodeId1": "idBUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_95_BUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "nodeId2": "idBUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_BUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_95_fd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", - "nodeId1": "idBUSCO_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "nodeId2": "idfd649fe1_45_bdf5_45_4062_45_98ea_45_bbb66f50402d", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6", - "nodeId2": "id0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "nodeId1": "idBUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "nodeId1": "idBUSCO_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", - "nodeId1": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", - "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b_95_BUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "nodeId2": "idBUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "nodeId2": "id1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", - "nodeId1": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", - "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", - "straight": false, - "snakeLine": false - }, - { - "id": "idEDGE_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", - "nodeId1": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", - "nodeId2": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957", - "straight": false, - "snakeLine": true - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", - "nodeId2": "id96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "nodeId1": "id14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "nodeId1": "id6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_BUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", - "nodeId1": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_0FictitiousBus", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_95_c8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", - "nodeId1": "idBUSCO_95_ffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE", - "nodeId2": "idc8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "nodeId1": "idBUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_b18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006", - "nodeId2": "id14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", - "nodeId1": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "nodeId1": "ida603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "nodeId2": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE", - "nodeId2": "id6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "nodeId2": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "nodeId1": "idBUSCO_95_14d55344_45_c118_45_4f54_45_a430_45_72f16d12bf7b", - "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "nodeId2": "ided0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "nodeId1": "id2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_95_INTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "nodeId1": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "nodeId2": "idINTERNAL_95_929ba893_45_c9dc_45_44d7_45_b1fd_45_30834bd3ab85_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "straight": false, - "snakeLine": false - }, - { - "id": "idEDGE_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "nodeId1": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "nodeId2": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957", - "straight": false, - "snakeLine": true - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", - "nodeId1": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", - "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", - "straight": false, - "snakeLine": false - }, - { - "id": "idEDGE_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", - "nodeId1": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE", - "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246", - "straight": false, - "snakeLine": true - }, - { - "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "nodeId2": "id3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", - "nodeId2": "ida603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "nodeId2": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0", - "straight": false, - "snakeLine": false - }, - { - "id": "idEDGE_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", - "nodeId1": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", - "nodeId2": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0", - "straight": false, - "snakeLine": true - }, - { - "id": "idEDGE_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", - "nodeId1": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO", - "nodeId2": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0", - "straight": false, - "snakeLine": true - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4_95_63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", - "nodeId1": "idBUSCO_95_3b394dab_45_ab47_45_4022_45_98be_45_8123c6dfe7d4", - "nodeId2": "id63f25be7_45_7592_45_4cf1_45_8401_45_5772046ef2ae", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_95_BUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "nodeId2": "idBUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904_95_BUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "nodeId2": "idBUSCO_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "straight": false, - "snakeLine": false - }, - { - "id": "idEDGE_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "nodeId1": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246", - "straight": false, - "snakeLine": true - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "nodeId1": "id96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "straight": false, - "snakeLine": false - }, - { - "id": "idEDGE_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "nodeId1": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE", - "nodeId2": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246", - "straight": false, - "snakeLine": true - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557_95_BUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "nodeId2": "idBUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6_95_BUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "nodeId2": "idBUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "nodeId1": "idBUSCO_95_1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8", - "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "nodeId1": "idBUSCO_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", - "nodeId1": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_a708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE", - "nodeId2": "id6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_95_BUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "nodeId2": "idBUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6_95_c8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", - "nodeId1": "idBUSCO_95_ddc148fc_45_3abd_45_459d_45_aec1_45_396283e0def6", - "nodeId2": "idc8ce5e08_45_5ee3_45_42d9_45_aa44_45_5792db252d9f", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4_95_BUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "nodeId2": "idBUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "nodeId1": "idBUSCO_95_6e86cd52_45_4594_45_435e_45_92ce_45_6dc673288ab4", - "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "nodeId1": "id0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "nodeId2": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_0e8cd279_45_ad5d_45_485a_45_b3a9_45_093ae8714b72", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "nodeId1": "idBUSCO_95_6b564930_45_b5e2_45_49d3_45_9d06_45_e1de28d6fd65", - "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83_95_BUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "nodeId2": "idBUSCO_95_96c2b5c8_45_8e28_45_4b08_45_96d2_45_ca9b09cdbd83", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e_95_BUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "nodeId2": "idBUSCO_95_a603d890_45_5d9d_45_42ef_45_98d0_45_acf47d121c0e", - "straight": false, - "snakeLine": false - }, - { - "id": "idEDGE_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", - "nodeId1": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE", - "nodeId2": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543", - "straight": false, - "snakeLine": true - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_d771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "nodeId2": "idd771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_95_BUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "nodeId2": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_BUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_95_64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "nodeId1": "idBUSCO_95_ed0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b", - "nodeId2": "id64901aec_45_5a8a_45_4bcb_45_8ca7_45_a3ddbfcd0e6c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "nodeId2": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "nodeId1": "idBUSCO_95_38dfcc80_45_600f_45_44e2_45_8f71_45_fb595b4f00ac", - "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_INTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "nodeId1": "idINTERNAL_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_b58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "nodeId2": "idb58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE", - "straight": false, - "snakeLine": false - }, - { - "id": "idEDGE_95_b94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", - "nodeId1": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO", - "nodeId2": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543", - "straight": false, - "snakeLine": true - }, - { - "id": "_95_b10b171b_45_3bc5_45_4849_45_bb1f_45_61ed9ea1ec7c_95_BUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_95_5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "nodeId1": "idBUSCO_95_84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO", - "nodeId2": "id5caf27ed_45_d2f8_45_458a_45_834a_45_6b3193a982e6", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_BUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557_95_364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "nodeId1": "idBUSCO_95_2922c1dd_45_4113_45_466e_45_8cad_45_002572f3f557", - "nodeId2": "id364c9ca2_45_0d1d_45_4363_45_8f46_45_e586f8f66a8c", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904_95_INTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "nodeId1": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "nodeId2": "idINTERNAL_95_8bbd7e74_45_ae20_45_4dce_45_8780_45_c20f8e18c2e0_95_cb459405_45_cc14_45_4215_45_a45c_45_416789205904", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_INTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "nodeId1": "idINTERNAL_95_469df5f7_45_058f_45_4451_45_a998_45_57a48e8a56fe_95_002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "nodeId2": "id002b0a40_45_3957_45_46db_45_b84a_45_30420083558f", - "straight": false, - "snakeLine": false - }, - { - "id": "_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_INTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_95_BUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "nodeId1": "idINTERNAL_95_4ba71b59_45_ee2f_45_450b_45_9f7d_45_cc2f1cc5e386_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "nodeId2": "idBUSCO_95_e482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO", - "straight": false, - "snakeLine": false - } - ], - "lines": [], - "feederInfos": [ - { - "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO_ARROW_REACTIVE", - "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", - "side": "TWO" - }, - { - "id": "ided0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_ARROW_ACTIVE", - "equipmentId": "ed0c5d75-4a54-43c8-b782-b20d7431630b" - }, - { - "id": "id3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_ARROW_REACTIVE", - "equipmentId": "3a3b27be-b18b-4385-b557-6735d733baf0" - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE_ARROW_ACTIVE", - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "side": "ONE" - }, - { - "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_TWO_ARROW_ACTIVE", - "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", - "side": "TWO" - }, - { - "id": "idb58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_ARROW_ACTIVE", - "equipmentId": "b58bf21a-096a-4dae-9a01-3f03b60c24c7", - "side": "ONE" - }, - { - "id": "id78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6_ARROW_REACTIVE", - "equipmentId": "78736387-5f60-4832-b3fe-d50daf81b0a6" - }, - { - "id": "idffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_ARROW_REACTIVE", - "equipmentId": "ffbabc27-1ccd-4fdc-b037-e341706c8d29", - "side": "ONE" - }, - { - "id": "idb58bf21a_45_096a_45_4dae_45_9a01_45_3f03b60c24c7_95_ONE_ARROW_REACTIVE", - "equipmentId": "b58bf21a-096a-4dae-9a01-3f03b60c24c7", - "side": "ONE" - }, - { - "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO_ARROW_REACTIVE", - "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", - "side": "TWO" - }, - { - "id": "id3a3b27be_45_b18b_45_4385_45_b557_45_6735d733baf0_ARROW_ACTIVE", - "equipmentId": "3a3b27be-b18b-4385-b557-6735d733baf0" - }, - { - "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE_ARROW_ACTIVE", - "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", - "side": "ONE" - }, - { - "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_ARROW_ACTIVE", - "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", - "side": "TWO" - }, - { - "id": "id78736387_45_5f60_45_4832_45_b3fe_45_d50daf81b0a6_ARROW_ACTIVE", - "equipmentId": "78736387-5f60-4832-b3fe-d50daf81b0a6" - }, - { - "id": "idd771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_ARROW_ACTIVE", - "equipmentId": "d771118f-36e9-4115-a128-cc3d9ce3e3da" - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_ARROW_REACTIVE", - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "side": "TWO" - }, - { - "id": "id550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa_ARROW_REACTIVE", - "equipmentId": "550ebe0d-f2b2-48c1-991f-cebea43a21aa" - }, - { - "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_ONE_ARROW_REACTIVE", - "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", - "side": "ONE" - }, - { - "id": "id1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_ARROW_REACTIVE", - "equipmentId": "1c6beed6-1acf-42e7-ba55-0cc9f04bddd8" - }, - { - "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_TWO_ARROW_ACTIVE", - "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", - "side": "TWO" - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_ARROW_REACTIVE", - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "side": "THREE" - }, - { - "id": "id1c6beed6_45_1acf_45_42e7_45_ba55_45_0cc9f04bddd8_ARROW_ACTIVE", - "equipmentId": "1c6beed6-1acf-42e7-ba55-0cc9f04bddd8" - }, - { - "id": "idffbabc27_45_1ccd_45_4fdc_45_b037_45_e341706c8d29_95_ONE_ARROW_ACTIVE", - "equipmentId": "ffbabc27-1ccd-4fdc-b037-e341706c8d29", - "side": "ONE" - }, - { - "id": "id550ebe0d_45_f2b2_45_48c1_45_991f_45_cebea43a21aa_ARROW_ACTIVE", - "equipmentId": "550ebe0d-f2b2-48c1-991f-cebea43a21aa" - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_TWO_ARROW_ACTIVE", - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "side": "TWO" - }, - { - "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE_ARROW_ACTIVE", - "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", - "side": "ONE" - }, - { - "id": "idd771118f_45_36e9_45_4115_45_a128_45_cc3d9ce3e3da_ARROW_REACTIVE", - "equipmentId": "d771118f-36e9-4115-a128-cc3d9ce3e3da" - }, - { - "id": "idb94318f6_45_6d24_45_4f56_45_96b9_45_df2531ad6543_95_ONE_ARROW_REACTIVE", - "equipmentId": "b94318f6-6d24-4f56-96b9-df2531ad6543", - "side": "ONE" - }, - { - "id": "ided0c5d75_45_4a54_45_43c8_45_b782_45_b20d7431630b_ARROW_REACTIVE", - "equipmentId": "ed0c5d75-4a54-43c8-b782-b20d7431630b" - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_THREE_ARROW_ACTIVE", - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "side": "THREE" - }, - { - "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE_ARROW_ACTIVE", - "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", - "side": "ONE" - }, - { - "id": "ida708c3bc_45_465d_45_4fe7_45_b6ef_45_6fa6408a62b0_95_ONE_ARROW_REACTIVE", - "equipmentId": "a708c3bc-465d-4fe7-b6ef-6fa6408a62b0", - "side": "ONE" - }, - { - "id": "id002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_ARROW_REACTIVE", - "equipmentId": "002b0a40-3957-46db-b84a-30420083558f" - }, - { - "id": "idb18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006_ARROW_REACTIVE", - "equipmentId": "b18cd1aa-7808-49b9-a7cf-605eaf07b006" - }, - { - "id": "id002b0a40_45_3957_45_46db_45_b84a_45_30420083558f_ARROW_ACTIVE", - "equipmentId": "002b0a40-3957-46db-b84a-30420083558f" - }, - { - "id": "id84ed55f4_45_61f5_45_4d9d_45_8755_45_bba7b877a246_95_ONE_ARROW_REACTIVE", - "equipmentId": "84ed55f4-61f5-4d9d-8755-bba7b877a246", - "side": "ONE" - }, - { - "id": "idcb459405_45_cc14_45_4215_45_a45c_45_416789205904_ARROW_ACTIVE", - "equipmentId": "cb459405-cc14-4215-a45c-416789205904" - }, - { - "id": "idcb459405_45_cc14_45_4215_45_a45c_45_416789205904_ARROW_REACTIVE", - "equipmentId": "cb459405-cc14-4215-a45c-416789205904" - }, - { - "id": "ide482b89a_45_fa84_45_4ea9_45_8e70_45_a83d44790957_95_TWO_ARROW_REACTIVE", - "equipmentId": "e482b89a-fa84-4ea9-8e70-a83d44790957", - "side": "TWO" - }, - { - "id": "idb18cd1aa_45_7808_45_49b9_45_a7cf_45_605eaf07b006_ARROW_ACTIVE", - "equipmentId": "b18cd1aa-7808-49b9-a7cf-605eaf07b006" + ], + "electricalNodeInfos": [], + "busInfos": [], + "layoutParams": { + "voltageLevelPadding": { + "left": 20, + "top": 60, + "right": 20, + "bottom": 60 + }, + "diagramPadding": { + "left": 20, + "top": 20, + "right": 20, + "bottom": 20 + }, + "verticalSpaceBus": 25, + "horizontalBusPadding": 20, + "cellWidth": 50, + "externCellHeight": 250, + "internCellHeight": 40, + "stackHeight": 30, + "showGrid": false, + "tooltipEnabled": false, + "showInternalNodes": false, + "scaleFactor": 1, + "drawStraightWires": false, + "horizontalSnakeLinePadding": 20, + "verticalSnakeLinePadding": 25, + "feederInfosOuterMargin": 20, + "spaceForFeederInfos": 50, + "diagramName": null, + "avoidSVGComponentsDuplication": false, + "adaptCellHeightToContent": true, + "maxComponentHeight": 12, + "minSpaceBetweenComponents": 15, + "minExternCellHeight": 80, + "labelCentered": false, + "labelDiagonal": false, + "angleLabelShift": 15, + "highlightLineState": true, + "addNodesInfos": true, + "feederInfoSymmetry": false, + "cssLocation": "EXTERNAL_NO_IMPORT", + "svgWidthAndHeightAdded": false, + "useName": true, + "feederInfosIntraMargin": 10, + "busInfoMargin": 0, + "busbarsAlignment": "FIRST", + "feederInfoPrecision": 0, + "componentsOnBusbars": ["DISCONNECTOR"] } - ], - "electricalNodeInfos": [], - "busInfos": [], - "layoutParams": { - "voltageLevelPadding": { - "left": 20, - "top": 60, - "right": 20, - "bottom": 60 - }, - "diagramPadding": { - "left": 20, - "top": 20, - "right": 20, - "bottom": 20 - }, - "verticalSpaceBus": 25, - "horizontalBusPadding": 20, - "cellWidth": 50, - "externCellHeight": 250, - "internCellHeight": 40, - "stackHeight": 30, - "showGrid": false, - "tooltipEnabled": false, - "showInternalNodes": false, - "scaleFactor": 1, - "drawStraightWires": false, - "horizontalSnakeLinePadding": 20, - "verticalSnakeLinePadding": 25, - "feederInfosOuterMargin": 20, - "spaceForFeederInfos": 50, - "diagramName": null, - "avoidSVGComponentsDuplication": false, - "adaptCellHeightToContent": true, - "maxComponentHeight": 12, - "minSpaceBetweenComponents": 15, - "minExternCellHeight": 80, - "labelCentered": false, - "labelDiagonal": false, - "angleLabelShift": 15, - "highlightLineState": true, - "addNodesInfos": true, - "feederInfoSymmetry": false, - "cssLocation": "EXTERNAL_NO_IMPORT", - "svgWidthAndHeightAdded": false, - "useName": true, - "feederInfosIntraMargin": 10, - "busInfoMargin": 0, - "busbarsAlignment": "FIRST", - "feederInfoPrecision": 0, - "componentsOnBusbars": [ - "DISCONNECTOR" - ] - } } - diff --git a/demo/src/index.jsx b/demo/src/index.tsx similarity index 99% rename from demo/src/index.jsx rename to demo/src/index.tsx index 8fc40df2..ae3b8d65 100644 --- a/demo/src/index.jsx +++ b/demo/src/index.tsx @@ -9,7 +9,7 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; import App from './App'; -const root = ReactDOM.createRoot(document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')!); root.render( diff --git a/demo/src/map-viewer/demo-map-equipments.js b/demo/src/map-viewer/demo-map-equipments.ts similarity index 68% rename from demo/src/map-viewer/demo-map-equipments.js rename to demo/src/map-viewer/demo-map-equipments.ts index 7ca007a5..e662c6a5 100644 --- a/demo/src/map-viewer/demo-map-equipments.js +++ b/demo/src/map-viewer/demo-map-equipments.ts @@ -5,15 +5,16 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { MapEquipments } from '../../../src'; +import { MapEquipments } from '@/index'; +import { Line, Substation } from '@powsybl/network-map-layers'; export default class DemoMapEquipments extends MapEquipments { - initEquipments(smapdata, lmapdata) { + initEquipments(smapdata: Substation[], lmapdata: Line[]) { this.updateSubstations(smapdata, true); this.updateLines(lmapdata, true); } - constructor(smapdata, lmapdata) { + constructor(smapdata: Substation[], lmapdata: Line[]) { super(); this.initEquipments(smapdata, lmapdata); } diff --git a/package-lock.json b/package-lock.json index 7dc505d2..479a6faf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,61 +1,70 @@ { "name": "@powsybl/diagram-viewer", - "version": "0.5.1", + "version": "0.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powsybl/diagram-viewer", - "version": "0.5.1", + "version": "0.6.0", "license": "MPL-2.0", + "workspaces": [ + "packages/network-map-layers", + "packages/single-line-diagram-viewer" + ], "dependencies": { "@mapbox/mapbox-gl-draw": "^1.4.3", - "@svgdotjs/svg.js": "^3.2.0", + "@powsybl/network-map-layers": "^0.6.0", + "@powsybl/single-line-diagram-viewer": "^0.6.0", + "@svgdotjs/svg.js": "^3.2.4", "@svgdotjs/svg.panzoom.js": "^2.1.2", "@turf/boolean-point-in-polygon": "^6.5.0", "cheap-ruler": "^3.0.2", - "deck.gl": "^8.9.35", + "deck.gl": "^9.0.31", "geolib": "^3.3.4", - "mapbox-gl": "^3.2.0", - "maplibre-gl": "^4.1.2", + "mapbox-gl": "^3.4.0", + "maplibre-gl": "^4.5.0", "react-map-gl": "^7.1.7" }, "devDependencies": { - "@babel/core": "^7.24.3", - "@babel/preset-env": "^7.24.3", - "@babel/preset-typescript": "^7.24.1", - "@mui/icons-material": "^5.15.14", - "@mui/material": "^5.15.14", - "@mui/system": "^5.15.14", + "@babel/core": "^7.24.7", + "@babel/preset-env": "^7.24.7", + "@babel/preset-typescript": "^7.24.7", + "@mui/icons-material": "^5.15.21", + "@mui/material": "^5.15.21", + "@mui/system": "^5.15.20", "@types/eslint": "^7.29.0", "@types/eslint-config-prettier": "^6.11.3", + "@types/eslint-plugin-prettier": "^3.1.3", "@types/jest": "^29.5.12", "@types/license-checker": "^25.0.6", "@types/mapbox__mapbox-gl-draw": "^1.4.6", "@types/mapbox-gl": "^3.1.0", "@types/node": "^18.19.31", - "@types/react": "^18.2.75", - "@types/react-dom": "^18.2.24", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", "@typescript-eslint/eslint-plugin": "^6.21.0", - "@vitejs/plugin-react": "^4.2.1", + "@typescript-eslint/parser": "^6.21.0", + "@vitejs/plugin-react": "^4.3.1", "babel-jest": "^29.7.0", "eslint": "^7.32.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.6", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "license-checker": "^25.0.1", "prettier": "^2.8.8", - "ts-jest": "^29.1.2", + "ts-jest": "^29.1.5", "ts-node": "^10.9.2", - "typescript": "5.1.6", - "vite": "^5.2.7", - "vite-plugin-dts": "^3.8.1", + "typescript": "5.5.3", + "vite": "^5.3.3", + "vite-plugin-dts": "^3.9.1", "vite-plugin-eslint": "^1.8.1", - "vite-plugin-externalize-deps": "^0.8.0" + "vite-plugin-externalize-deps": "^0.8.0", + "vite-plugin-svgr": "^4.2.0" }, "peerDependencies": { "@emotion/styled": "^11.11.5", @@ -67,14 +76,9 @@ "react-intl": "^6.6.4" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/@amarant/single-line-diagram-viewer": { + "resolved": "packages/single-line-diagram-viewer", + "link": true }, "node_modules/@ampproject/remapping": { "version": "2.3.0", @@ -89,12 +93,28 @@ "node": ">=6.0.0" } }, + "node_modules/@arcgis/core": { + "version": "4.30.9", + "resolved": "https://registry.npmjs.org/@arcgis/core/-/core-4.30.9.tgz", + "integrity": "sha512-tOM6QmXRikmD26uqIsFk2yxBwUpmAYJjp4vd9tl+VEfAXaLyArjHC8/op/OvyJZtfHNiL5zcSR7/YsiUddHPXA==", + "peer": true, + "dependencies": { + "@esri/arcgis-html-sanitizer": "~4.0.3", + "@esri/calcite-colors": "~6.1.0", + "@esri/calcite-components": "^2.8.5", + "@vaadin/grid": "~24.3.13", + "@zip.js/zip.js": "~2.7.44", + "luxon": "~3.4.4", + "marked": "~12.0.2", + "sortablejs": "~1.15.2" + } + }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "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==", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" }, "engines": { @@ -102,30 +122,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", - "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.1", - "@babel/parser": "^7.24.1", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -141,12 +161,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", - "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dependencies": { - "@babel/types": "^7.24.0", + "@babel/types": "^7.24.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -156,37 +175,38 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -196,19 +216,19 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.1.tgz", - "integrity": "sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "semver": "^6.3.1" }, "engines": { @@ -219,12 +239,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, @@ -236,9 +256,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -252,73 +272,75 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dependencies": { - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -328,35 +350,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -366,14 +388,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -383,100 +405,101 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", - "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "dev": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -486,10 +509,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -497,13 +519,29 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", - "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -513,14 +551,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", - "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -530,13 +568,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", - "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -633,12 +671,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", - "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -648,12 +686,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", - "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -687,12 +725,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -804,12 +842,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", - "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -835,12 +873,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", - "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -850,14 +888,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", - "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -868,14 +906,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", - "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -885,12 +923,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", - "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -900,12 +938,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.1.tgz", - "integrity": "sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -915,13 +953,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", - "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -931,13 +969,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.1.tgz", - "integrity": "sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -948,18 +986,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", - "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "globals": "^11.1.0" }, "engines": { @@ -970,13 +1008,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", - "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/template": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -986,12 +1024,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", - "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1001,13 +1039,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", - "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1017,12 +1055,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", - "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1032,12 +1070,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", - "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1048,13 +1086,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", - "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1064,12 +1102,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", - "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1080,13 +1118,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", - "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1096,14 +1134,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", - "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1113,12 +1151,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", - "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1129,12 +1167,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", - "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1144,12 +1182,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", - "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1160,12 +1198,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", - "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1175,13 +1213,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", - "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1191,14 +1229,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", - "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1208,15 +1246,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", - "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1226,13 +1264,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", - "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1242,13 +1280,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1258,12 +1296,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", - "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1273,12 +1311,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", - "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1289,12 +1327,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", - "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1305,15 +1343,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", - "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.1" + "@babel/plugin-transform-parameters": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1323,13 +1361,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", - "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1339,12 +1377,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", - "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1355,13 +1393,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", - "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", + "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1372,12 +1410,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", - "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1387,13 +1425,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", - "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1403,14 +1441,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", - "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1421,12 +1459,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", - "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1436,12 +1474,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.1.tgz", - "integrity": "sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.5.tgz", + "integrity": "sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1466,12 +1504,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", - "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1482,12 +1520,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", - "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1497,12 +1535,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", - "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1512,13 +1550,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", - "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1528,12 +1566,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", - "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1543,12 +1581,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", - "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1558,12 +1596,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", - "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1573,15 +1611,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.1.tgz", - "integrity": "sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", + "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-typescript": "^7.24.1" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1591,12 +1629,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", - "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1606,13 +1644,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", - "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1622,13 +1660,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", - "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1638,13 +1676,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", - "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1654,26 +1692,27 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.3.tgz", - "integrity": "sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", + "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.1", - "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1685,54 +1724,54 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.1", - "@babel/plugin-transform-async-generator-functions": "^7.24.3", - "@babel/plugin-transform-async-to-generator": "^7.24.1", - "@babel/plugin-transform-block-scoped-functions": "^7.24.1", - "@babel/plugin-transform-block-scoping": "^7.24.1", - "@babel/plugin-transform-class-properties": "^7.24.1", - "@babel/plugin-transform-class-static-block": "^7.24.1", - "@babel/plugin-transform-classes": "^7.24.1", - "@babel/plugin-transform-computed-properties": "^7.24.1", - "@babel/plugin-transform-destructuring": "^7.24.1", - "@babel/plugin-transform-dotall-regex": "^7.24.1", - "@babel/plugin-transform-duplicate-keys": "^7.24.1", - "@babel/plugin-transform-dynamic-import": "^7.24.1", - "@babel/plugin-transform-exponentiation-operator": "^7.24.1", - "@babel/plugin-transform-export-namespace-from": "^7.24.1", - "@babel/plugin-transform-for-of": "^7.24.1", - "@babel/plugin-transform-function-name": "^7.24.1", - "@babel/plugin-transform-json-strings": "^7.24.1", - "@babel/plugin-transform-literals": "^7.24.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", - "@babel/plugin-transform-member-expression-literals": "^7.24.1", - "@babel/plugin-transform-modules-amd": "^7.24.1", - "@babel/plugin-transform-modules-commonjs": "^7.24.1", - "@babel/plugin-transform-modules-systemjs": "^7.24.1", - "@babel/plugin-transform-modules-umd": "^7.24.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.24.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", - "@babel/plugin-transform-numeric-separator": "^7.24.1", - "@babel/plugin-transform-object-rest-spread": "^7.24.1", - "@babel/plugin-transform-object-super": "^7.24.1", - "@babel/plugin-transform-optional-catch-binding": "^7.24.1", - "@babel/plugin-transform-optional-chaining": "^7.24.1", - "@babel/plugin-transform-parameters": "^7.24.1", - "@babel/plugin-transform-private-methods": "^7.24.1", - "@babel/plugin-transform-private-property-in-object": "^7.24.1", - "@babel/plugin-transform-property-literals": "^7.24.1", - "@babel/plugin-transform-regenerator": "^7.24.1", - "@babel/plugin-transform-reserved-words": "^7.24.1", - "@babel/plugin-transform-shorthand-properties": "^7.24.1", - "@babel/plugin-transform-spread": "^7.24.1", - "@babel/plugin-transform-sticky-regex": "^7.24.1", - "@babel/plugin-transform-template-literals": "^7.24.1", - "@babel/plugin-transform-typeof-symbol": "^7.24.1", - "@babel/plugin-transform-unicode-escapes": "^7.24.1", - "@babel/plugin-transform-unicode-property-regex": "^7.24.1", - "@babel/plugin-transform-unicode-regex": "^7.24.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", @@ -1762,16 +1801,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz", - "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-syntax-jsx": "^7.24.1", - "@babel/plugin-transform-modules-commonjs": "^7.24.1", - "@babel/plugin-transform-typescript": "^7.24.1" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1787,9 +1826,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1798,33 +1837,31 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1833,12 +1870,12 @@ } }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1874,220 +1911,235 @@ } }, "node_modules/@deck.gl/aggregation-layers": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/aggregation-layers/-/aggregation-layers-8.9.35.tgz", - "integrity": "sha512-OjJhHt/ZXLIP3cs8yD2xwa9KACBOjfvJpdMkly704y6SuM0k+qSj81VwkpdOA54DCvAhQQTAYCJ4rvnwmtcPQQ==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@luma.gl/constants": "^8.5.21", - "@luma.gl/shadertools": "^8.5.21", - "@math.gl/web-mercator": "^3.6.2", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/aggregation-layers/-/aggregation-layers-9.0.31.tgz", + "integrity": "sha512-yjTZoh0TGBxMCYbFJe+UljVwVvrbOKrprT2Orf5jClqPzSK8nmO0cLGG0Mg969Sv/M+5zImmIb5xiRSISpPJQQ==", + "dependencies": { + "@luma.gl/constants": "~9.0.27", + "@luma.gl/shadertools": "~9.0.27", + "@math.gl/web-mercator": "^4.0.0", "d3-hexbin": "^0.2.1" }, "peerDependencies": { - "@deck.gl/core": "^8.0.0", - "@deck.gl/layers": "^8.0.0", - "@luma.gl/core": "^8.0.0" + "@deck.gl/core": "^9.0.0", + "@deck.gl/layers": "^9.0.0", + "@luma.gl/core": "~9.0.0", + "@luma.gl/engine": "~9.0.0" + } + }, + "node_modules/@deck.gl/arcgis": { + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/arcgis/-/arcgis-9.0.31.tgz", + "integrity": "sha512-DuR8nT9sUba08cOengC1rsCjpXIlLwBCe2F3GK3yZtUTMfKHi1L/rhXCm2zIYcVICaELURxEtVx/bFARXug7Iw==", + "dependencies": { + "@luma.gl/constants": "~9.0.27", + "esri-loader": "^3.7.0" + }, + "peerDependencies": { + "@arcgis/core": "^4.0.0", + "@deck.gl/core": "^9.0.0", + "@luma.gl/core": "~9.0.0", + "@luma.gl/engine": "~9.0.0" } }, "node_modules/@deck.gl/carto": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/carto/-/carto-8.9.35.tgz", - "integrity": "sha512-Ln9yFQqagQ5Zpfl5SUJl/09lw0S9zkpSVeay976aSPnQt9U7L4ES5lxOZZBQvxHmKATmar5B5V36vXaW2bAezQ==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@loaders.gl/gis": "^3.4.13", - "@loaders.gl/loader-utils": "^3.4.13", - "@loaders.gl/mvt": "^3.4.13", - "@loaders.gl/tiles": "^3.4.13", - "@luma.gl/constants": "^8.5.21", - "@math.gl/web-mercator": "^3.6.2", - "cartocolor": "^4.0.2", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/carto/-/carto-9.0.31.tgz", + "integrity": "sha512-go9zErSGm53OiyprDFaseSv3IO57M/PYaoT/NBMQ44gcxrKuavQb+ucMMCw/GWHJZfnyk+Phe0cPRBeAC7A58A==", + "dependencies": { + "@loaders.gl/gis": "^4.2.0", + "@loaders.gl/loader-utils": "^4.2.0", + "@loaders.gl/mvt": "^4.2.0", + "@loaders.gl/schema": "^4.2.0", + "@loaders.gl/tiles": "^4.2.0", + "@luma.gl/core": "~9.0.27", + "@luma.gl/shadertools": "~9.0.27", + "@math.gl/web-mercator": "^4.0.0", + "@types/d3-array": "^3.0.2", + "@types/d3-color": "^1.4.2", + "@types/d3-scale": "^3.0.0", + "cartocolor": "^5.0.2", "d3-array": "^3.2.0", "d3-color": "^3.1.0", "d3-format": "^3.1.0", "d3-scale": "^4.0.0", - "h3-js": "^3.7.0", + "earcut": "^2.2.4", + "h3-js": "^4.1.0", "moment-timezone": "^0.5.33", "pbf": "^3.2.1", - "quadbin": "^0.1.9" + "quadbin": "^0.2.0" }, "peerDependencies": { - "@deck.gl/aggregation-layers": "^8.0.0", - "@deck.gl/core": "^8.0.0", - "@deck.gl/extensions": "^8.0.0", - "@deck.gl/geo-layers": "^8.0.0", - "@deck.gl/layers": "^8.0.0", - "@loaders.gl/core": "^3.4.13" + "@deck.gl/aggregation-layers": "^9.0.0", + "@deck.gl/core": "^9.0.0", + "@deck.gl/extensions": "^9.0.0", + "@deck.gl/geo-layers": "^9.0.0", + "@deck.gl/layers": "^9.0.0", + "@loaders.gl/core": "^4.2.0" } }, "node_modules/@deck.gl/core": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/core/-/core-8.9.35.tgz", - "integrity": "sha512-xOASWScUCB5fpfuSjPaJrwas8pCJpbKXNIfwQElhvnfP3Yk8GGkAcRbPgiPNCfpkbEno7eDpAWJt6+6UJsSp9g==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@loaders.gl/core": "^3.4.13", - "@loaders.gl/images": "^3.4.13", - "@luma.gl/constants": "^8.5.21", - "@luma.gl/core": "^8.5.21", - "@luma.gl/webgl": "^8.5.21", - "@math.gl/core": "^3.6.2", - "@math.gl/sun": "^3.6.2", - "@math.gl/web-mercator": "^3.6.2", - "@probe.gl/env": "^3.5.0", - "@probe.gl/log": "^3.5.0", - "@probe.gl/stats": "^3.5.0", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/core/-/core-9.0.31.tgz", + "integrity": "sha512-cRjDebDfn4Sil7IcSEjQO+10/tVVzR5MunFu9HpYdiKirzYdPih4SHp/KODrcPtk4qim6B3s70hxPtfD4+uWnQ==", + "dependencies": { + "@loaders.gl/core": "^4.2.0", + "@loaders.gl/images": "^4.2.0", + "@luma.gl/constants": "~9.0.27", + "@luma.gl/core": "~9.0.27", + "@luma.gl/engine": "~9.0.27", + "@luma.gl/shadertools": "~9.0.27", + "@luma.gl/webgl": "~9.0.27", + "@math.gl/core": "^4.0.0", + "@math.gl/sun": "^4.0.0", + "@math.gl/web-mercator": "^4.0.0", + "@probe.gl/env": "^4.0.9", + "@probe.gl/log": "^4.0.9", + "@probe.gl/stats": "^4.0.9", + "@types/offscreencanvas": "^2019.6.4", "gl-matrix": "^3.0.0", - "math.gl": "^3.6.2", "mjolnir.js": "^2.7.0" } }, "node_modules/@deck.gl/extensions": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/extensions/-/extensions-8.9.35.tgz", - "integrity": "sha512-qMZzeQpvtcw4zbh4HJJIF8Q73/u0Unwwe8aSC2r+apjuyUVPQInwlCil++LznBY3JA37M7SvW2TSK6IgCuaSyA==", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/extensions/-/extensions-9.0.31.tgz", + "integrity": "sha512-ZTNfJIBCRXXugD52AWFNH5PLbAQfp25gvm73GTwbXIF5fHz7Ru2tqpBecxSpQJwfWVFGShPmhP8kPJZ/gUrhUQ==", "dependencies": { - "@babel/runtime": "^7.0.0", - "@luma.gl/shadertools": "^8.5.21" + "@luma.gl/constants": "~9.0.27", + "@luma.gl/shadertools": "~9.0.27", + "@math.gl/core": "^4.0.0" }, "peerDependencies": { - "@deck.gl/core": "^8.0.0", - "@luma.gl/constants": "^8.0.0", - "@luma.gl/core": "^8.0.0", - "@math.gl/core": "^3.6.2", - "@math.gl/web-mercator": "^3.6.2", - "gl-matrix": "^3.0.0" + "@deck.gl/core": "^9.0.0", + "@luma.gl/core": "~9.0.0", + "@luma.gl/engine": "~9.0.0" } }, "node_modules/@deck.gl/geo-layers": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/geo-layers/-/geo-layers-8.9.35.tgz", - "integrity": "sha512-7sczznSjC7GjpDxuXPvPN7/WbVgSYHnFNNyWr8hMGm/WlUMK4z9QpZo6UFvrHL5rQ5Uudd4vD56xB1fs3b2lMA==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@loaders.gl/3d-tiles": "^3.4.13", - "@loaders.gl/gis": "^3.4.13", - "@loaders.gl/loader-utils": "^3.4.13", - "@loaders.gl/mvt": "^3.4.13", - "@loaders.gl/schema": "^3.4.13", - "@loaders.gl/terrain": "^3.4.13", - "@loaders.gl/tiles": "^3.4.13", - "@loaders.gl/wms": "^3.4.13", - "@luma.gl/constants": "^8.5.21", - "@luma.gl/experimental": "^8.5.21", - "@math.gl/core": "^3.6.2", - "@math.gl/culling": "^3.6.2", - "@math.gl/web-mercator": "^3.6.2", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/geo-layers/-/geo-layers-9.0.31.tgz", + "integrity": "sha512-EFDSExoBB0D75m4HhfOJbi4+MtUUbvsAEvWXAmpUjv2VFs8iJQh440cggl3CjjXqSgKDLlUe97XS05vBlSprcw==", + "dependencies": { + "@loaders.gl/3d-tiles": "^4.2.0", + "@loaders.gl/gis": "^4.2.0", + "@loaders.gl/loader-utils": "^4.2.0", + "@loaders.gl/mvt": "^4.2.0", + "@loaders.gl/schema": "^4.2.0", + "@loaders.gl/terrain": "^4.2.0", + "@loaders.gl/tiles": "^4.2.0", + "@loaders.gl/wms": "^4.2.0", + "@luma.gl/gltf": "~9.0.27", + "@luma.gl/shadertools": "~9.0.27", + "@math.gl/core": "^4.0.0", + "@math.gl/culling": "^4.0.0", + "@math.gl/web-mercator": "^4.0.0", "@types/geojson": "^7946.0.8", - "h3-js": "^3.7.0", + "h3-js": "^4.1.0", "long": "^3.2.0" }, "peerDependencies": { - "@deck.gl/core": "^8.0.0", - "@deck.gl/extensions": "^8.0.0", - "@deck.gl/layers": "^8.0.0", - "@deck.gl/mesh-layers": "^8.0.0", - "@loaders.gl/core": "^3.4.13", - "@luma.gl/core": "^8.0.0" + "@deck.gl/core": "^9.0.0", + "@deck.gl/extensions": "^9.0.0", + "@deck.gl/layers": "^9.0.0", + "@deck.gl/mesh-layers": "^9.0.0", + "@loaders.gl/core": "^4.2.0", + "@luma.gl/core": "~9.0.0", + "@luma.gl/engine": "~9.0.0" } }, "node_modules/@deck.gl/google-maps": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/google-maps/-/google-maps-8.9.35.tgz", - "integrity": "sha512-btNCp3ZZngWq2Fsuapx6PL5BaGcLPXzaVDN65He/AkdkmU2cCnFK5oR1s33JgACnUejx28ttfoFuJgLKpmJ4Eg==", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/google-maps/-/google-maps-9.0.31.tgz", + "integrity": "sha512-Irl0RUg2/dyS0B0mQ57v80BZZpP6fq40lF4CDFRevBw0QOlexRZic04MpBSQANBNFTmTPu3jcwqOKDl5oFGPRQ==", "dependencies": { - "@babel/runtime": "^7.0.0" + "@luma.gl/constants": "~9.0.27", + "@math.gl/core": "^4.0.0", + "@types/google.maps": "^3.48.6" }, "peerDependencies": { - "@deck.gl/core": "^8.0.0", - "@luma.gl/constants": "^8.5.0", - "@luma.gl/core": "^8.5.0", - "@math.gl/core": "^3.6.0" + "@deck.gl/core": "^9.0.0", + "@luma.gl/core": "~9.0.0" } }, "node_modules/@deck.gl/json": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/json/-/json-8.9.35.tgz", - "integrity": "sha512-0mp4ckb1n0kRGPPFqtx6Q13uGNRBYGrpYN/NuibQZSW1EMNqmxTqSJekoqzXrlI1W6u35Tu9E5+DHpw9WJiJkg==", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/json/-/json-9.0.31.tgz", + "integrity": "sha512-fZmBKHywIU2K0uhLbHLdOAbu3wVtlDnq65KLw8s2oPCUS8m3ZJ/8mB6kqa7+hV5/cA7EIZk49zFJlw4Hyd3XYw==", "dependencies": { - "@babel/runtime": "^7.0.0", - "d3-dsv": "^1.0.8", - "expression-eval": "^2.0.0" + "expression-eval": "^5.0.0" }, "peerDependencies": { - "@deck.gl/core": "^8.0.0" + "@deck.gl/core": "^9.0.0" } }, "node_modules/@deck.gl/layers": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/layers/-/layers-8.9.35.tgz", - "integrity": "sha512-4amaGO+tGvaCNi2KZ90twmajGh5xUAaQzBIyh42dnM10GRj/62sOIYD9uT032oV/KpjKY+TfOstx5ooXBGKDjg==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@loaders.gl/images": "^3.4.13", - "@loaders.gl/schema": "^3.4.13", - "@luma.gl/constants": "^8.5.21", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/layers/-/layers-9.0.31.tgz", + "integrity": "sha512-HqQIClj1t6nHTavALSAaMonREIOZ44HMHz7FLTIiBGq/phJNLAAgO9jxcgh3XLDm7hicfFpid6CSzFdMR9Ls0w==", + "dependencies": { + "@loaders.gl/images": "^4.2.0", + "@loaders.gl/schema": "^4.2.0", "@mapbox/tiny-sdf": "^2.0.5", - "@math.gl/core": "^3.6.2", - "@math.gl/polygon": "^3.6.2", - "@math.gl/web-mercator": "^3.6.2", + "@math.gl/core": "^4.0.0", + "@math.gl/polygon": "^4.0.0", + "@math.gl/web-mercator": "^4.0.0", "earcut": "^2.2.4" }, "peerDependencies": { - "@deck.gl/core": "^8.0.0", - "@loaders.gl/core": "^3.4.13", - "@luma.gl/core": "^8.0.0" + "@deck.gl/core": "^9.0.0", + "@loaders.gl/core": "^4.2.0", + "@luma.gl/core": "~9.0.0", + "@luma.gl/engine": "~9.0.0" } }, "node_modules/@deck.gl/mapbox": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/mapbox/-/mapbox-8.9.35.tgz", - "integrity": "sha512-3GKbYkB6OF+65Al/F2g0DlGhiQAPnA7/l/9Tl9cFSaaLBUfw2zT/U0kgZe3/4ZyfwQMzmoW6D3Ybb/FB4FKlmg==", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/mapbox/-/mapbox-9.0.31.tgz", + "integrity": "sha512-QAGpkBT02OBHwUEuDhrovj0e7F+qEFyYni1HuzbYnHN8AxPYkklZCdCv1RwLjA0DQ4TehUepOpm6XtavzODGhg==", "dependencies": { - "@babel/runtime": "^7.0.0", - "@types/mapbox-gl": "^2.6.3" + "@luma.gl/constants": "~9.0.27", + "@math.gl/web-mercator": "^4.0.0" }, "peerDependencies": { - "@deck.gl/core": "^8.0.0" - } - }, - "node_modules/@deck.gl/mapbox/node_modules/@types/mapbox-gl": { - "version": "2.7.21", - "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-2.7.21.tgz", - "integrity": "sha512-Dx9MuF2kKgT/N22LsMUB4b3acFZh9clVqz9zv1fomoiPoBrJolwYxpWA/9LPO/2N0xWbKi4V+pkjTaFkkx/4wA==", - "dependencies": { - "@types/geojson": "*" + "@deck.gl/core": "^9.0.0", + "@luma.gl/core": "~9.0.0" } }, "node_modules/@deck.gl/mesh-layers": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/mesh-layers/-/mesh-layers-8.9.35.tgz", - "integrity": "sha512-0l7+zi/6bkYVz7zZ0J4+WLoxOh+hFMPUQKCujTOcqYWbvJ2fEQze0Z1ZHCAG0RQOFJITEMamDigo9dN2BMxPBA==", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/mesh-layers/-/mesh-layers-9.0.31.tgz", + "integrity": "sha512-cclhguAuJUH6tcW1bQGn3KfVvSEz0OPhrSX/D6mqBoFeSLcEeGARSj9l1ApOs3WWHbPqSvRukyJkz8oVaqmE3Q==", "dependencies": { - "@babel/runtime": "^7.0.0", - "@loaders.gl/gltf": "^3.4.13", - "@luma.gl/constants": "^8.5.21", - "@luma.gl/experimental": "^8.5.21", - "@luma.gl/shadertools": "^8.5.21" + "@loaders.gl/gltf": "^4.2.0", + "@luma.gl/gltf": "~9.0.27", + "@luma.gl/shadertools": "~9.0.27" }, "peerDependencies": { - "@deck.gl/core": "^8.0.0", - "@luma.gl/core": "^8.0.0" + "@deck.gl/core": "^9.0.0", + "@luma.gl/core": "~9.0.0", + "@luma.gl/engine": "~9.0.0" } }, "node_modules/@deck.gl/react": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/@deck.gl/react/-/react-8.9.35.tgz", - "integrity": "sha512-eDwYCeBBzHXIpgZbAxcAEnpjnAoMiWcec8rMgYot7VOB+RnBTPYUaO3GPPImlk1uiezNGQel0YK4OLI1f6cDHg==", + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/react/-/react-9.0.31.tgz", + "integrity": "sha512-AZTIdYHDydsunfEDiL1+CY6SUqkz8BGzJ6R6iofY0vFO3g3uqBBnX5YUrg6cy9MXDr8mo3r8634a2ACQm1QbgQ==", + "peerDependencies": { + "@deck.gl/core": "^9.0.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/@deck.gl/widgets": { + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/@deck.gl/widgets/-/widgets-9.0.31.tgz", + "integrity": "sha512-ZvjFBbAR8W9Lo7DULZM5Tjt+pnlkF0i9rYAJSFH2Xox0SVnFl54euyKHSjLd3/kd6ppu3114BAkxioVQzz6qbA==", "dependencies": { - "@babel/runtime": "^7.0.0" + "preact": "^10.17.0" }, "peerDependencies": { - "@deck.gl/core": "^8.0.0", - "@types/react": ">= 16.3", - "react": ">=16.3", - "react-dom": ">=16.3" + "@deck.gl/core": "^9.0.0" } }, "node_modules/@emotion/babel-plugin": { @@ -2115,6 +2167,18 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "peer": true }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@emotion/cache": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", @@ -2238,9 +2302,9 @@ "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -2254,9 +2318,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -2270,9 +2334,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -2286,9 +2350,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -2302,9 +2366,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -2318,9 +2382,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -2334,9 +2398,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -2350,9 +2414,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -2366,9 +2430,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -2382,9 +2446,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -2398,9 +2462,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -2414,9 +2478,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -2430,9 +2494,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -2446,9 +2510,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -2462,9 +2526,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -2478,9 +2542,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -2494,9 +2558,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -2510,9 +2574,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -2526,9 +2590,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -2542,9 +2606,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -2558,9 +2622,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -2574,9 +2638,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -2590,9 +2654,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -2695,44 +2759,97 @@ "node": "*" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, + "node_modules/@esri/arcgis-html-sanitizer": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@esri/arcgis-html-sanitizer/-/arcgis-html-sanitizer-4.0.3.tgz", + "integrity": "sha512-B06V4Spjhcy2zcKH9SaTrZwRGjUTlsCSGImdCpe7fN/Q3HxLa4QosMgrRJQ+Q8guLhBA177+6Fjwzl/xIrmY7A==", + "peer": true, + "dependencies": { + "xss": "1.0.13" + }, "engines": { - "node": ">=10" + "node": ">=18.0.0" + } + }, + "node_modules/@esri/calcite-colors": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@esri/calcite-colors/-/calcite-colors-6.1.0.tgz", + "integrity": "sha512-wHQYWFtDa6c328EraXEVZvgOiaQyYr0yuaaZ0G3cB4C3lSkWefW34L/e5TLAhtuG3zJ/wR6pl5X1YYNfBc0/4Q==", + "peer": true + }, + "node_modules/@esri/calcite-components": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/@esri/calcite-components/-/calcite-components-2.12.2.tgz", + "integrity": "sha512-Fmm7WpG+B7il0mpf7grL0ZsFJ06y6g04fGgcnpjLCjhmqy+kKiv8NFeMX529kVr5uyb43dcVOcbd/bv5RniJxg==", + "peer": true, + "dependencies": { + "@esri/calcite-ui-icons": "3.31.0", + "@floating-ui/dom": "1.6.10", + "@stencil/core": "4.20.0", + "@types/color": "3.0.6", + "@types/sortablejs": "1.15.7", + "color": "4.2.3", + "composed-offset-position": "0.0.6", + "dayjs": "1.11.12", + "focus-trap": "7.5.4", + "interactjs": "1.10.27", + "lodash-es": "4.17.21", + "sortablejs": "1.15.1", + "timezone-groups": "0.9.1", + "type-fest": "4.18.2" + } + }, + "node_modules/@esri/calcite-components/node_modules/sortablejs": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.1.tgz", + "integrity": "sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ==", + "peer": true + }, + "node_modules/@esri/calcite-components/node_modules/type-fest": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.18.2.tgz", + "integrity": "sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==", + "peer": true, + "engines": { + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@esri/calcite-ui-icons": { + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/@esri/calcite-ui-icons/-/calcite-ui-icons-3.31.0.tgz", + "integrity": "sha512-Ca3xVXU0LoxljEebuM9r3ss4tyXBfHROcxlFmbNwa2kDTVNSjUKCBgthgXnMD7akgguwwcL7zGnAp645SkJpow==", + "peer": true, + "bin": { + "spriter": "bin/spriter.js" + } + }, "node_modules/@floating-ui/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", - "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", - "dev": true, + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", "dependencies": { - "@floating-ui/utils": "^0.2.1" + "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", - "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", - "dev": true, + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", + "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", "dependencies": { - "@floating-ui/core": "^1.0.0", - "@floating-ui/utils": "^0.2.0" + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", - "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.9.tgz", + "integrity": "sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==", "dev": true, "dependencies": { - "@floating-ui/dom": "^1.6.1" + "@floating-ui/dom": "^1.0.0" }, "peerDependencies": { "react": ">=16.8.0", @@ -2740,10 +2857,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==", - "dev": true + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", + "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==" }, "node_modules/@formatjs/ecma402-abstract": { "version": "1.18.2", @@ -2786,9 +2902,9 @@ } }, "node_modules/@formatjs/intl": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.10.1.tgz", - "integrity": "sha512-dsLG15U7xDi8yzKf4hcAWSsCaez3XrjTO2oaRHPyHtXLm1aEzYbDw6bClo/HMHu+iwS5GbDqT3DV+hYP2ylScg==", + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.10.2.tgz", + "integrity": "sha512-raPGWr3JRv3neXV78SqPFrGC05fIbhhNzVghHNxFde27ls2KkXiMhtP7HBybjGpikVSjjhdhaZto+4p1vmm9bQ==", "peer": true, "dependencies": { "@formatjs/ecma402-abstract": "1.18.2", @@ -2796,7 +2912,7 @@ "@formatjs/icu-messageformat-parser": "2.7.6", "@formatjs/intl-displaynames": "6.6.6", "@formatjs/intl-listformat": "7.5.5", - "intl-messageformat": "10.5.11", + "intl-messageformat": "10.5.12", "tslib": "^2.4.0" }, "peerDependencies": { @@ -2881,6 +2997,12 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@interactjs/types": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/types/-/types-1.10.27.tgz", + "integrity": "sha512-BUdv0cvs4H5ODuwft2Xp4eL8Vmi3LcihK42z0Ft/FbVJZoRioBsxH+LlsBdK4tAie7PqlKGy+1oyOncu1nQ6eA==", + "peer": true + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -3299,26 +3421,11 @@ "node": ">=10" } }, - "node_modules/@jest/reporters/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@jest/reporters/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -3338,12 +3445,6 @@ "node": ">=8" } }, - "node_modules/@jest/reporters/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -3587,7 +3688,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3601,7 +3701,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -3610,7 +3709,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -3618,2546 +3716,4425 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "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==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==", + "peer": true + }, + "node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "peer": true, + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0" + } + }, "node_modules/@loaders.gl/3d-tiles": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/3d-tiles/-/3d-tiles-3.4.15.tgz", - "integrity": "sha512-JR67bEfLrD7Lzb6pWyEIRg2L6W3n6y43DKcWofRLpwPqLA7qHuY7SlO7E72Lz7Tniye8VhawqY1wO8gCx8T72Q==", - "dependencies": { - "@loaders.gl/draco": "3.4.15", - "@loaders.gl/gltf": "3.4.15", - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/math": "3.4.15", - "@loaders.gl/tiles": "3.4.15", - "@math.gl/core": "^3.5.1", - "@math.gl/geospatial": "^3.5.1", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/3d-tiles/-/3d-tiles-4.2.4.tgz", + "integrity": "sha512-SIBzJwnkxWL6EOict3bIONWaJSP9eXej2M6i9GrdlcG5Ge7lLYRyxVFPbDxPXd3pQtDix127gd0+c0j+fD31KA==", + "dependencies": { + "@loaders.gl/compression": "4.2.4", + "@loaders.gl/crypto": "4.2.4", + "@loaders.gl/draco": "4.2.4", + "@loaders.gl/gltf": "4.2.4", + "@loaders.gl/images": "4.2.4", + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/math": "4.2.4", + "@loaders.gl/tiles": "4.2.4", + "@loaders.gl/zip": "4.2.4", + "@math.gl/core": "^4.0.1", + "@math.gl/culling": "^4.0.1", + "@math.gl/geospatial": "^4.0.1", + "@probe.gl/log": "^4.0.4", "long": "^5.2.1" }, "peerDependencies": { - "@loaders.gl/core": "^3.4.0" + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/3d-tiles/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/@loaders.gl/core": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/core/-/core-3.4.15.tgz", - "integrity": "sha512-rPOOTuusWlRRNMWg7hymZBoFmPCXWThsA5ZYRfqqXnsgVeQIi8hzcAhJ7zDUIFAd/OSR8ravtqb0SH+3k6MOFQ==", + "node_modules/@loaders.gl/3d-tiles/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "@babel/runtime": "^7.3.1", - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/worker-utils": "3.4.15", - "@probe.gl/log": "^3.5.0" - } - }, - "node_modules/@loaders.gl/draco": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/draco/-/draco-3.4.15.tgz", - "integrity": "sha512-SStmyP0ZnS4JbWZb2NhrfiHW65uy3pVTTzQDTgXfkR5cD9oDAEu4nCaHbQ8x38/m39FHliCPgS9b1xWvLKQo8w==", - "dependencies": { - "@babel/runtime": "^7.3.1", - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/schema": "3.4.15", - "@loaders.gl/worker-utils": "3.4.15", - "draco3d": "1.5.5" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/gis": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/gis/-/gis-3.4.15.tgz", - "integrity": "sha512-h+LJI35P6ze8DFPSUylTKuml0l4HIfHMczML6u+ZXG6E2w5tbdM3Eh5AzHjXGQPuwUnaYPn3Mq/2t2N1rz98pg==", + "node_modules/@loaders.gl/3d-tiles/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/schema": "3.4.15", - "@mapbox/vector-tile": "^1.3.1", - "@math.gl/polygon": "^3.5.1", - "pbf": "^3.2.1" + "@types/geojson": "^7946.0.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/gltf": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/gltf/-/gltf-3.4.15.tgz", - "integrity": "sha512-Y6kMNPLiHQPr6aWQw/4BMTxgPHWx3fcib4LPpZCbhyfM8PRn6pOqATVngUXdoOf5XY0QtdKVld6N1kxlr4pJtw==", - "dependencies": { - "@loaders.gl/draco": "3.4.15", - "@loaders.gl/images": "3.4.15", - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/textures": "3.4.15", - "@math.gl/core": "^3.5.1" + "node_modules/@loaders.gl/3d-tiles/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/images": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/images/-/images-3.4.15.tgz", - "integrity": "sha512-QpjYhEetHabY/z9mWZYJXZZp4XJAxa38f9Ii/DjPlnJErepzY5GLBUTDHMu4oZ6n99gGImtuGFicDnFV6mb60g==", + "node_modules/@loaders.gl/3d-tiles/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/@loaders.gl/compression": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/compression/-/compression-4.2.4.tgz", + "integrity": "sha512-Ce+JGux4nNWTc5+F5GWOBlWdjsYoX2G5tr4V/j3z1ho/mVztZ31/+MJyDtYquxl3FrZ0yl4PiT4rBm4OK2ku+A==", "dependencies": { - "@loaders.gl/loader-utils": "3.4.15" + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@types/brotli": "^1.3.0", + "@types/pako": "^1.0.1", + "fflate": "0.7.4", + "lzo-wasm": "^0.0.4", + "pako": "1.0.11", + "snappyjs": "^0.6.1" + }, + "optionalDependencies": { + "brotli": "^1.3.2", + "lz4js": "^0.2.0", + "zstd-codec": "^0.1" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/loader-utils": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-3.4.15.tgz", - "integrity": "sha512-uUx6tCaky6QgCRkqCNuuXiUfpTzKV+ZlJOf6C9bKp62lpvFOv9AwqoXmL23j8nfsENdlzsX3vPhc3en6QQyksA==", + "node_modules/@loaders.gl/compression/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "@babel/runtime": "^7.3.1", - "@loaders.gl/worker-utils": "3.4.15", - "@probe.gl/stats": "^3.5.0" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/math": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/math/-/math-3.4.15.tgz", - "integrity": "sha512-zTN8BUU/1fcppyVc8WzvdZcCyNGVYmNinxcn/A+a7mi1ug4OBGwEsZOj09Wjg0/s52c/cAL3h9ylPIZdjntscQ==", + "node_modules/@loaders.gl/compression/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@loaders.gl/images": "3.4.15", - "@loaders.gl/loader-utils": "3.4.15", - "@math.gl/core": "^3.5.1" + "@types/geojson": "^7946.0.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/mvt": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/mvt/-/mvt-3.4.15.tgz", - "integrity": "sha512-Q8e1ZyfNkJtPF/C4WSZ2qhWDEbzOvquP7OyG1NzQ2cp8R6eUfbexu48IgcnL/oAu8VPql3zIxQ+bQUyDReyN5g==", - "dependencies": { - "@loaders.gl/gis": "3.4.15", - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/schema": "3.4.15", - "@math.gl/polygon": "^3.5.1", - "pbf": "^3.2.1" + "node_modules/@loaders.gl/compression/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/schema": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-3.4.15.tgz", - "integrity": "sha512-8oRtstz0IsqES7eZd2jQbmCnmExCMtL8T6jWd1+BfmnuyZnQ0B6TNccy++NHtffHdYuzEoQgSELwcdmhSApYew==", + "node_modules/@loaders.gl/core": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/core/-/core-4.2.2.tgz", + "integrity": "sha512-d3YElSsqL29MaiOwzGB97v994SPotbTvJnooCqoQsYGoYYrECdIetv1/zlfDsh5UB2Wl/NaUMJrzyOqlLmDz5Q==", "dependencies": { - "@types/geojson": "^7946.0.7" + "@loaders.gl/loader-utils": "4.2.2", + "@loaders.gl/schema": "4.2.2", + "@loaders.gl/worker-utils": "4.2.2", + "@probe.gl/log": "^4.0.2" } }, - "node_modules/@loaders.gl/terrain": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/terrain/-/terrain-3.4.15.tgz", - "integrity": "sha512-ouv41J84uOnLEtXLM+iPEPFfeq7aRgIOls6esdvhBx2/dXJRNkt8Mx0wShXAi8VNHz77D+gZFrKARa7wqjmftg==", - "dependencies": { - "@babel/runtime": "^7.3.1", - "@loaders.gl/images": "3.4.15", - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/schema": "3.4.15", - "@mapbox/martini": "^0.2.0" + "node_modules/@loaders.gl/crypto": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/crypto/-/crypto-4.2.4.tgz", + "integrity": "sha512-rAIREpLd1Dk0CTMSXQWzaZ8//PjoXL2vUGlh4WsAoeIRf/sAekQzk1nALaL8yqBQSNquK4f++vK0YDrFrVr6iQ==", + "dependencies": { + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@types/crypto-js": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/textures": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/textures/-/textures-3.4.15.tgz", - "integrity": "sha512-QHnmxBYtLvTdG1uMz2KWcxVY8KPb1+XyPJUoZV9GMcQkulz+CwFB8BaX8nROfMDz9KKYoPfksCzjig0LZ0WBJQ==", - "dependencies": { - "@loaders.gl/images": "3.4.15", - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/schema": "3.4.15", - "@loaders.gl/worker-utils": "3.4.15", - "ktx-parse": "^0.0.4", - "texture-compressor": "^1.0.2" + "node_modules/@loaders.gl/crypto/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", + "dependencies": { + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/tiles": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/tiles/-/tiles-3.4.15.tgz", - "integrity": "sha512-o85aRSXq+YeVSK2ndW9aBwTMi5FhEsQ7k18J4DG+T5Oc+zz3tKui5X1SuBDiKbQN+kYtFpj0oYO1QG3ndNI6jg==", + "node_modules/@loaders.gl/crypto/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/math": "3.4.15", - "@math.gl/core": "^3.5.1", - "@math.gl/culling": "^3.5.1", - "@math.gl/geospatial": "^3.5.1", - "@math.gl/web-mercator": "^3.5.1", - "@probe.gl/stats": "^3.5.0" + "@types/geojson": "^7946.0.7" }, "peerDependencies": { - "@loaders.gl/core": "^3.4.0" + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/wms": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/wms/-/wms-3.4.15.tgz", - "integrity": "sha512-zY++Oxx+cNGF9ptuSTFxCmEnpRbR5VZYjvyLraylaRbuynZv+JiWrehymFzEfq3hJcQ/cGvIjaG6rSVtPuqCIA==", - "dependencies": { - "@babel/runtime": "^7.3.1", - "@loaders.gl/images": "3.4.15", - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/schema": "3.4.15", - "@loaders.gl/xml": "3.4.15", - "@turf/rewind": "^5.1.5", - "deep-strict-equal": "^0.2.0", - "lerc": "^4.0.1" + "node_modules/@loaders.gl/crypto/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/worker-utils": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-3.4.15.tgz", - "integrity": "sha512-zUUepOYRYmcYIcr/c4Mchox9h5fBFNkD81rsGnLlZyq19QvyHzN+93SVxrLc078gw93t2RKrVcOOZY13zT3t1w==", + "node_modules/@loaders.gl/draco": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/draco/-/draco-4.2.4.tgz", + "integrity": "sha512-pPJ9x9KMCrCU71PvOXOi+9tL3TykFqmY/3msq3f8TKZEH/wnotVX4nIeL7xD7hrkY1nBvMp1q0WZPyDfMRrl7A==", "dependencies": { - "@babel/runtime": "^7.3.1" + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "draco3d": "1.5.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@loaders.gl/xml": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@loaders.gl/xml/-/xml-3.4.15.tgz", - "integrity": "sha512-iMWHaDzYSe8JoS8W5k9IbxQ6S3VHPr7M+UBejIVeYGCp1jzWF0ri498olwJWWDRvg4kqAWolrkj8Pcgkg8Jf8A==", + "node_modules/@loaders.gl/draco/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "@babel/runtime": "^7.3.1", - "@loaders.gl/loader-utils": "3.4.15", - "@loaders.gl/schema": "3.4.15", - "fast-xml-parser": "^4.2.5" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@luma.gl/constants": { - "version": "8.5.21", - "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.5.21.tgz", - "integrity": "sha512-aJxayGxTT+IRd1vfpcgD/cKSCiVJjBNiuiChS96VulrmCvkzUOLvYXr42y5qKB4RyR7vOIda5uQprNzoHrhQAA==" - }, - "node_modules/@luma.gl/core": { - "version": "8.5.21", - "resolved": "https://registry.npmjs.org/@luma.gl/core/-/core-8.5.21.tgz", - "integrity": "sha512-11jQJQEMoR/IN2oIsd4zFxiQJk6FE+xgVIMUcsCTBuzafTtQZ8Po9df8mt+MVewpDyBlTVs6g8nxHRH4np1ukA==", + "node_modules/@loaders.gl/draco/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@babel/runtime": "^7.0.0", - "@luma.gl/constants": "8.5.21", - "@luma.gl/engine": "8.5.21", - "@luma.gl/gltools": "8.5.21", - "@luma.gl/shadertools": "8.5.21", - "@luma.gl/webgl": "8.5.21" + "@types/geojson": "^7946.0.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@luma.gl/engine": { - "version": "8.5.21", - "resolved": "https://registry.npmjs.org/@luma.gl/engine/-/engine-8.5.21.tgz", - "integrity": "sha512-IG3WQSKXFNUEs8QG7ZjHtGiOtsakUu+BAxtJ6997A6/F06yynZ44tPe5NU70jG9Yfu3kV0LykPZg7hO3vXZDiA==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@luma.gl/constants": "8.5.21", - "@luma.gl/gltools": "8.5.21", - "@luma.gl/shadertools": "8.5.21", - "@luma.gl/webgl": "8.5.21", - "@math.gl/core": "^3.5.0", - "@probe.gl/env": "^3.5.0", - "@probe.gl/stats": "^3.5.0", - "@types/offscreencanvas": "^2019.7.0" + "node_modules/@loaders.gl/draco/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@luma.gl/experimental": { - "version": "8.5.21", - "resolved": "https://registry.npmjs.org/@luma.gl/experimental/-/experimental-8.5.21.tgz", - "integrity": "sha512-uFKPChGofyihOKxtqJy78QCQCDFnuMTK4QHrUX/qiTnvFSO8BgtTUevKvWGN9lBvq+uDD0lSieeF9yBzhQfAzw==", + "node_modules/@loaders.gl/gis": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/gis/-/gis-4.2.4.tgz", + "integrity": "sha512-TwBOjhF/mrqukBP/ia2AwjMLg5ocZQxnobGj+rZMYjagMKeHtnoZjgr17d2YPbvCTUobzIS5xQ083YJ8iXkK/A==", "dependencies": { - "@luma.gl/constants": "8.5.21", - "@math.gl/core": "^3.5.0", - "earcut": "^2.0.6" + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/schema": "4.2.4", + "@mapbox/vector-tile": "^1.3.1", + "@math.gl/polygon": "^4.0.0", + "pbf": "^3.2.1" }, "peerDependencies": { - "@loaders.gl/gltf": "^3.0.0", - "@loaders.gl/images": "^3.0.0", - "@luma.gl/engine": "^8.4.0", - "@luma.gl/gltools": "^8.4.0", - "@luma.gl/shadertools": "^8.4.0", - "@luma.gl/webgl": "^8.4.0" + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@luma.gl/gltools": { - "version": "8.5.21", - "resolved": "https://registry.npmjs.org/@luma.gl/gltools/-/gltools-8.5.21.tgz", - "integrity": "sha512-6qZ0LaT2Mxa4AJT5F44TFoaziokYiHUwO45vnM/NYUOIu9xevcmS6VtToawytMEACGL6PDeDyVqP3Y80SDzq5g==", + "node_modules/@loaders.gl/gis/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "@babel/runtime": "^7.0.0", - "@luma.gl/constants": "8.5.21", - "@probe.gl/env": "^3.5.0", - "@probe.gl/log": "^3.5.0", - "@types/offscreencanvas": "^2019.7.0" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@luma.gl/shadertools": { - "version": "8.5.21", - "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-8.5.21.tgz", - "integrity": "sha512-WQah7yFDJ8cNCLPYpIm3r0wSlXLvjoA279fcknmATvvkW3/i8PcCJ/nYEBJO3hHEwwMQxD16+YZu/uwGiifLMg==", + "node_modules/@loaders.gl/gis/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@babel/runtime": "^7.0.0", - "@math.gl/core": "^3.5.0" + "@types/geojson": "^7946.0.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@luma.gl/webgl": { - "version": "8.5.21", - "resolved": "https://registry.npmjs.org/@luma.gl/webgl/-/webgl-8.5.21.tgz", - "integrity": "sha512-ZVLO4W5UuaOlzZIwmFWhnmZ1gYoU97a+heMqxLrSSmCUAsSu3ZETUex9gOmzdM1WWxcdWaa3M68rvKCNEgwz0Q==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@luma.gl/constants": "8.5.21", - "@luma.gl/gltools": "8.5.21", - "@probe.gl/env": "^3.5.0", - "@probe.gl/stats": "^3.5.0" + "node_modules/@loaders.gl/gis/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mapbox/extent": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@mapbox/extent/-/extent-0.4.0.tgz", - "integrity": "sha512-MSoKw3qPceGuupn04sdaJrFeLKvcSETVLZCGS8JA9x6zXQL3FWiKaIXYIZEDXd5jpXpWlRxinCZIN49yRy0C9A==" - }, - "node_modules/@mapbox/geojson-area": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-area/-/geojson-area-0.2.2.tgz", - "integrity": "sha512-bBqqFn1kIbLBfn7Yq1PzzwVkPYQr9lVUeT8Dhd0NL5n76PBuXzOcuLV7GOSbEB1ia8qWxH4COCvFpziEu/yReA==", + "node_modules/@loaders.gl/gltf": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/gltf/-/gltf-4.2.4.tgz", + "integrity": "sha512-7nczbGkYrQhQeIUQ0LNQZFVxJZleD2R6sTGaxl9OPNK44Q52QTd5UfOc2gaQx/Is4BP9HI60YP45jkqG4PMtvg==", "dependencies": { - "wgs84": "0.0.0" + "@loaders.gl/draco": "4.2.4", + "@loaders.gl/images": "4.2.4", + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/textures": "4.2.4", + "@math.gl/core": "^4.0.0" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mapbox/geojson-coords": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-coords/-/geojson-coords-0.0.2.tgz", - "integrity": "sha512-YuVzpseee/P1T5BWyeVVPppyfmuXYHFwZHmybkqaMfu4BWlOf2cmMGKj2Rr92MwfSTOCSUA0PAsVGRG8akY0rg==", + "node_modules/@loaders.gl/gltf/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "@mapbox/geojson-normalize": "0.0.1", - "geojson-flatten": "^1.0.4" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mapbox/geojson-extent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-extent/-/geojson-extent-1.0.1.tgz", - "integrity": "sha512-hh8LEO3djT4fqfr8sSC6wKt+p0TMiu+KOLMBUiFOyj+zGq7+IXwQGl0ppCVDkyzCewyd9LoGe9zAvDxXrLfhLw==", + "node_modules/@loaders.gl/gltf/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@mapbox/extent": "0.4.0", - "@mapbox/geojson-coords": "0.0.2", - "rw": "~0.1.4", - "traverse": "~0.6.6" + "@types/geojson": "^7946.0.7" }, - "bin": { - "geojson-extent": "bin/geojson-extent" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mapbox/geojson-extent/node_modules/rw": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/rw/-/rw-0.1.4.tgz", - "integrity": "sha512-vSj3D96kMcjNyqPcp65wBRIDImGSrUuMxngNNxvw8MQaO+aQ6llzRPH7XcJy5zrpb3wU++045+Uz/IDIM684iw==" - }, - "node_modules/@mapbox/geojson-normalize": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-normalize/-/geojson-normalize-0.0.1.tgz", - "integrity": "sha512-82V7YHcle8lhgIGqEWwtXYN5cy0QM/OHq3ypGhQTbvHR57DF0vMHMjjVSQKFfVXBe/yWCBZTyOuzvK7DFFnx5Q==", - "bin": { - "geojson-normalize": "geojson-normalize" + "node_modules/@loaders.gl/gltf/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mapbox/geojson-rewind": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", - "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "node_modules/@loaders.gl/images": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/images/-/images-4.2.4.tgz", + "integrity": "sha512-g0pcuq4dVlKfgu+U99s8//Z/aawEkMBOzurXd+WVVFmcVsgCer4jKSywyn6UGbaV5ITPO9GUQCq9HQbah9zXjQ==", "dependencies": { - "get-stream": "^6.0.1", - "minimist": "^1.2.6" + "@loaders.gl/loader-utils": "4.2.4" }, - "bin": { - "geojson-rewind": "geojson-rewind" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", - "engines": { - "node": ">= 0.6" + "node_modules/@loaders.gl/images/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", + "dependencies": { + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mapbox/mapbox-gl-draw": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-draw/-/mapbox-gl-draw-1.4.3.tgz", - "integrity": "sha512-03qIJgyGmm0IoTZbV/cfODru9jRGogi4LcQ3maxIJDKccq1gY3ofgt2UYPkeU143ElxitZahEythNQv1NpsLhg==", + "node_modules/@loaders.gl/images/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@mapbox/geojson-area": "^0.2.2", - "@mapbox/geojson-extent": "^1.0.1", - "@mapbox/geojson-normalize": "^0.0.1", - "@mapbox/point-geometry": "^0.1.0", - "hat": "0.0.3", - "lodash.isequal": "^4.5.0", - "xtend": "^4.0.2" + "@types/geojson": "^7946.0.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "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==" - }, - "node_modules/@mapbox/martini": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@mapbox/martini/-/martini-0.2.0.tgz", - "integrity": "sha512-7hFhtkb0KTLEls+TRw/rWayq5EeHtTaErgm/NskVoXmtgAQu/9D299aeyj6mzAR/6XUnYRp2lU+4IcrYRFjVsQ==" - }, - "node_modules/@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" + "node_modules/@loaders.gl/images/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } }, - "node_modules/@mapbox/tile-cover": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@mapbox/tile-cover/-/tile-cover-3.0.1.tgz", - "integrity": "sha512-R8aoFY/87HWBOL9E2eBqzOY2lpfWYXCcTNgBpIxAv67rqQeD4IfnHD0iPXg/Z1cqXrklegEYZCp/7ZR/RsWqBQ==", + "node_modules/@loaders.gl/loader-utils": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.2.tgz", + "integrity": "sha512-5udJQhFx1KNIcRBYkFMi8QZitAsK+m3PkZ9GejM8VpOSsJUHD2Yal3wBHOPTRsOjQ0zXG/nqM7BHOojjeetNTg==", "dependencies": { - "tilebelt": "^1.0.1" + "@loaders.gl/schema": "4.2.2", + "@loaders.gl/worker-utils": "4.2.2", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mapbox/tiny-sdf": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", - "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==" + "node_modules/@loaders.gl/math": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/math/-/math-4.2.4.tgz", + "integrity": "sha512-t4uOoIhED+YCHUwWEojC3KmyYtBT2FYp7qL8ydfUK8VuOOvj2kQOXUxvIc98FQUzI7L7T6EMLLlpP/snRdTvHw==", + "dependencies": { + "@loaders.gl/images": "4.2.4", + "@loaders.gl/loader-utils": "4.2.4", + "@math.gl/core": "^4.0.0" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } }, - "node_modules/@mapbox/unitbezier": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", - "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + "node_modules/@loaders.gl/math/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", + "dependencies": { + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } }, - "node_modules/@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "node_modules/@loaders.gl/math/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@mapbox/point-geometry": "~0.1.0" + "@types/geojson": "^7946.0.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", - "engines": { - "node": ">=6.0.0" + "node_modules/@loaders.gl/math/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@maplibre/maplibre-gl-style-spec": { - "version": "20.1.1", - "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.1.1.tgz", - "integrity": "sha512-z85ARNPCBI2Cs5cPOS3DSbraTN+ue8zrcYVoSWBuNrD/mA+2SKAJ+hIzI22uN7gac6jBMnCdpPKRxS/V0KSZVQ==", - "dependencies": { - "@mapbox/jsonlint-lines-primitives": "~2.0.2", - "@mapbox/unitbezier": "^0.0.1", - "json-stringify-pretty-compact": "^4.0.0", - "minimist": "^1.2.8", - "rw": "^1.3.3", - "sort-object": "^3.0.3" + "node_modules/@loaders.gl/mvt": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/mvt/-/mvt-4.2.4.tgz", + "integrity": "sha512-ZqdUrBvl+edCaBhnMdwBLvwyaH/M8MMfjNeIS1aADA8SGB3PghM6G42kfdQzw0ZoLT9DY3DbzyoTja2ojRVipg==", + "dependencies": { + "@loaders.gl/gis": "4.2.4", + "@loaders.gl/images": "4.2.4", + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/schema": "4.2.4", + "@math.gl/polygon": "^4.0.0", + "pbf": "^3.2.1" }, - "bin": { - "gl-style-format": "dist/gl-style-format.mjs", - "gl-style-migrate": "dist/gl-style-migrate.mjs", - "gl-style-validate": "dist/gl-style-validate.mjs" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@math.gl/core": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-3.6.3.tgz", - "integrity": "sha512-jBABmDkj5uuuE0dTDmwwss7Cup5ZwQ6Qb7h1pgvtkEutTrhkcv8SuItQNXmF45494yIHeoGue08NlyeY6wxq2A==", + "node_modules/@loaders.gl/mvt/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "@babel/runtime": "^7.12.0", - "@math.gl/types": "3.6.3", - "gl-matrix": "^3.4.0" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@math.gl/culling": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@math.gl/culling/-/culling-3.6.3.tgz", - "integrity": "sha512-3UERXHbaPlM6pnTk2MI7LeQ5CoelDZzDzghTTcv+HdQCZsT/EOEuEdYimETHtSxiyiOmsX2Un65UBLYT/rbKZg==", + "node_modules/@loaders.gl/mvt/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@babel/runtime": "^7.12.0", - "@math.gl/core": "3.6.3", - "gl-matrix": "^3.4.0" + "@types/geojson": "^7946.0.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@math.gl/geospatial": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@math.gl/geospatial/-/geospatial-3.6.3.tgz", - "integrity": "sha512-6xf657lJnaecSarSzn02t0cnsCSkWb+39m4+im96v20dZTrLCWZ2glDQVzfuL91meDnDXjH4oyvynp12Mj5MFg==", - "dependencies": { - "@babel/runtime": "^7.12.0", - "@math.gl/core": "3.6.3", - "gl-matrix": "^3.4.0" + "node_modules/@loaders.gl/mvt/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@math.gl/polygon": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-3.6.3.tgz", - "integrity": "sha512-FivQ1ZnYcAss1wVifOkHP/ZnlfQy1IL/769uzNtiHxwUbW0kZG3yyOZ9I7fwyzR5Hvqt3ErJKHjSYZr0uVlz5g==", + "node_modules/@loaders.gl/schema": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.2.tgz", + "integrity": "sha512-vrQ6vlGWWptJXDP1DrL5x/j70xmyt2l36QZcGyDYptrohTGvQLc3yrOEHuD5v96fXX5WR619pT3zSYhuf1FnIg==", "dependencies": { - "@math.gl/core": "3.6.3" + "@types/geojson": "^7946.0.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@math.gl/sun": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@math.gl/sun/-/sun-3.6.3.tgz", - "integrity": "sha512-mrx6CGYYeTNSQttvcw0KVUy+35YDmnjMqpO/o0t06Vcghrt0HNruB/ScRgUSbJrgkbOg1Vcqm23HBd++clzQzw==", + "node_modules/@loaders.gl/terrain": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/terrain/-/terrain-4.2.4.tgz", + "integrity": "sha512-c7gQxNgQlUeiwSFvL0+v0Jgt/Tm0hQ61/FF+TdhBpSFCal1W2VVmK6Tehra00EUsgHzoOrmnN8LpHj89vtDOow==", "dependencies": { - "@babel/runtime": "^7.12.0" + "@loaders.gl/images": "4.2.4", + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/schema": "4.2.4", + "@mapbox/martini": "^0.2.0" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@math.gl/types": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-3.6.3.tgz", - "integrity": "sha512-3uWLVXHY3jQxsXCr/UCNPSc2BG0hNUljhmOBt9l+lNFDp7zHgm0cK2Tw4kj2XfkJy4TgwZTBGwRDQgWEbLbdTA==" - }, - "node_modules/@math.gl/web-mercator": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-3.6.3.tgz", - "integrity": "sha512-UVrkSOs02YLehKaehrxhAejYMurehIHPfFQvPFZmdJHglHOU4V2cCUApTVEwOksvCp161ypEqVp+9H6mGhTTcw==", + "node_modules/@loaders.gl/terrain/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "@babel/runtime": "^7.12.0", - "gl-matrix": "^3.4.0" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/api-extractor": { - "version": "7.43.0", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.43.0.tgz", - "integrity": "sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==", - "dev": true, + "node_modules/@loaders.gl/terrain/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@microsoft/api-extractor-model": "7.28.13", - "@microsoft/tsdoc": "0.14.2", - "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "4.0.2", - "@rushstack/rig-package": "0.5.2", - "@rushstack/terminal": "0.10.0", - "@rushstack/ts-command-line": "4.19.1", - "lodash": "~4.17.15", - "minimatch": "~3.0.3", - "resolve": "~1.22.1", - "semver": "~7.5.4", - "source-map": "~0.6.1", - "typescript": "5.4.2" + "@types/geojson": "^7946.0.7" }, - "bin": { - "api-extractor": "bin/api-extractor" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/api-extractor-model": { - "version": "7.28.13", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.13.tgz", - "integrity": "sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==", - "dev": true, - "dependencies": { - "@microsoft/tsdoc": "0.14.2", - "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "4.0.2" + "node_modules/@loaders.gl/terrain/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/api-extractor/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, + "node_modules/@loaders.gl/textures": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/textures/-/textures-4.2.4.tgz", + "integrity": "sha512-0WrQfGnbjm8PzJiHeQa7K65qDmfW3FhOxfsCsk+alsZjFJTDIS6jaOfA2sA+BD0s8OYTsb/AZR5OAFnR1ZyVyg==", + "dependencies": { + "@loaders.gl/images": "4.2.4", + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@math.gl/types": "^4.0.1", + "ktx-parse": "^0.0.4", + "texture-compressor": "^1.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } + }, + "node_modules/@loaders.gl/textures/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/api-extractor/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, + "node_modules/@loaders.gl/textures/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "yallist": "^4.0.0" + "@types/geojson": "^7946.0.7" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/api-extractor/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", - "dev": true, + "node_modules/@loaders.gl/textures/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } + }, + "node_modules/@loaders.gl/tiles": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/tiles/-/tiles-4.2.4.tgz", + "integrity": "sha512-2QlCN7ZZXZLerikw8M0UlcD9prBHljTaMFaGhwMTmgt0G99BOZ12Py40ap++ZVUllSWWtb9Qs/mx4j57ElaQWQ==", + "dependencies": { + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/math": "4.2.4", + "@math.gl/core": "^4.0.0", + "@math.gl/culling": "^4.0.0", + "@math.gl/geospatial": "^4.0.0", + "@math.gl/web-mercator": "^4.0.0", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } + }, + "node_modules/@loaders.gl/tiles/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "brace-expansion": "^1.1.7" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" }, - "engines": { - "node": "*" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/api-extractor/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, + "node_modules/@loaders.gl/tiles/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "lru-cache": "^6.0.0" + "@types/geojson": "^7946.0.7" }, - "bin": { - "semver": "bin/semver.js" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } + }, + "node_modules/@loaders.gl/tiles/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } + }, + "node_modules/@loaders.gl/wms": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/wms/-/wms-4.2.4.tgz", + "integrity": "sha512-uFpEhoxDkdKpVqG84QvQ1l7Ce+t+sqJpJCCGRKx+6GYJvk7CdzeaGGvXXxnzJlcc7a6BqHESSLdYPjZ/F6aqUQ==", + "dependencies": { + "@loaders.gl/images": "4.2.4", + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/xml": "4.2.4", + "@turf/rewind": "^5.1.5", + "deep-strict-equal": "^0.2.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/api-extractor/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/@loaders.gl/wms/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", + "dependencies": { + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/api-extractor/node_modules/typescript": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", - "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "node_modules/@loaders.gl/wms/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", + "dependencies": { + "@types/geojson": "^7946.0.7" }, - "engines": { - "node": ">=14.17" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/api-extractor/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/@loaders.gl/wms/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } }, - "node_modules/@microsoft/tsdoc": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", - "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", - "dev": true + "node_modules/@loaders.gl/worker-utils": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.2.tgz", + "integrity": "sha512-7Ad83VS/PmS0T3LXo+LB6cq5oHhAUW3GvYWizm4OfeuBDQRtYK7iRehgC13/BomkNtWIn0y7iAphlQMVrNdvhQ==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", - "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", - "dev": true, + "node_modules/@loaders.gl/xml": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/xml/-/xml-4.2.4.tgz", + "integrity": "sha512-edaO7TbzqE96zTKMzxm2/kfTWEg+a3nGO7ztmMXtAfIohxyVp2/JCPBLEzAJAnGXQP36Ro5GfnVw53dX9kO/Bw==", "dependencies": { - "@microsoft/tsdoc": "0.14.2", - "ajv": "~6.12.6", - "jju": "~1.4.0", - "resolve": "~1.19.0" + "@loaders.gl/loader-utils": "4.2.4", + "@loaders.gl/schema": "4.2.4", + "fast-xml-parser": "^4.2.5" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, + "node_modules/@loaders.gl/xml/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mui/base": { - "version": "5.0.0-beta.40", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", - "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", - "dev": true, + "node_modules/@loaders.gl/xml/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@floating-ui/react-dom": "^2.0.8", - "@mui/types": "^7.2.14", - "@mui/utils": "^5.15.14", - "@popperjs/core": "^2.11.8", - "clsx": "^2.1.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "@types/geojson": "^7946.0.7" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mui/core-downloads-tracker": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.14.tgz", - "integrity": "sha512-on75VMd0XqZfaQW+9pGjSNiqW+ghc5E2ZSLRBXwcXl/C4YzjfyjrLPhrEpKnR9Uym9KXBvxrhoHfPcczYHweyA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node_modules/@loaders.gl/xml/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mui/icons-material": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.14.tgz", - "integrity": "sha512-vj/51k7MdFmt+XVw94sl30SCvGx6+wJLsNYjZRgxhS6y3UtnWnypMOsm3Kmg8TN+P0dqwsjy4/fX7B1HufJIhw==", - "dev": true, + "node_modules/@loaders.gl/zip": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/zip/-/zip-4.2.4.tgz", + "integrity": "sha512-jhKytc9Kg8ie6wLqyVrRtr/1azCz7QPzKyEtsQ697YS/XXyG5vcBv1LWGMe1M5leTj9+g0AhJly4y/heIxjMlg==", "dependencies": { - "@babel/runtime": "^7.23.9" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "@loaders.gl/compression": "4.2.4", + "@loaders.gl/crypto": "4.2.4", + "@loaders.gl/loader-utils": "4.2.4", + "jszip": "^3.1.5", + "md5": "^2.3.0" }, "peerDependencies": { - "@mui/material": "^5.0.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mui/material": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.14.tgz", - "integrity": "sha512-kEbRw6fASdQ1SQ7LVdWR5OlWV3y7Y54ZxkLzd6LV5tmz+NpO3MJKZXSfgR0LHMP7meKsPiMm4AuzV0pXDpk/BQ==", - "dev": true, + "node_modules/@loaders.gl/zip/node_modules/@loaders.gl/loader-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.2.4.tgz", + "integrity": "sha512-ay9L8CQLY3db/PfJa+vDwyxmpxHtbe77BASfKRj/FWKrs3ydh1MxrQc6PWaHDL83YpG30wRBXGUEmPTkCvJqlw==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/base": "5.0.0-beta.40", - "@mui/core-downloads-tracker": "^5.15.14", - "@mui/system": "^5.15.14", - "@mui/types": "^7.2.14", - "@mui/utils": "^5.15.14", - "@types/react-transition-group": "^4.4.10", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1", - "react-is": "^18.2.0", - "react-transition-group": "^4.4.5" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "@loaders.gl/schema": "4.2.4", + "@loaders.gl/worker-utils": "4.2.4", + "@probe.gl/stats": "^4.0.2" }, "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mui/private-theming": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", - "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", - "dev": true, + "node_modules/@loaders.gl/zip/node_modules/@loaders.gl/schema": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.2.4.tgz", + "integrity": "sha512-43M18e/kaVqwFfvTLkFfJS3CdzLGwXJG+Va9BSMlGydWb7P7KCqNenZ1ZtLP3RElUpVZv3hNWdtpxk+fLQrZaA==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.15.14", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "@types/geojson": "^7946.0.7" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "@loaders.gl/core": "^4.0.0" } }, - "node_modules/@mui/styled-engine": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", - "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", - "dev": true, + "node_modules/@loaders.gl/zip/node_modules/@loaders.gl/worker-utils": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.2.4.tgz", + "integrity": "sha512-QDrGqRaOu/AGgQfp4nIMIZSp7PXd38M2b96OKIlhvh1GWXXspTINqY7hVlaaRaRqktSZOm6+4nKcpleLVP0MzA==", + "peerDependencies": { + "@loaders.gl/core": "^4.0.0" + } + }, + "node_modules/@luma.gl/constants": { + "version": "9.0.27", + "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-9.0.27.tgz", + "integrity": "sha512-NBkMim3u0xt4UDe4e69L6E/pq5XNxfX60GrggJDzfilVRfIbx5XwKhBXTyNjjtNEk4oc6uYLHWd/05jGRHcfLg==" + }, + "node_modules/@luma.gl/core": { + "version": "9.0.27", + "resolved": "https://registry.npmjs.org/@luma.gl/core/-/core-9.0.27.tgz", + "integrity": "sha512-7OXM8ZknTuqt10nL8XHg3YzaHESzU2pSh+6BknLJbLM+UjNWOkDHArF6pRYu96Om0QsnOMK/RXKqXBr+Ni0gvw==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@emotion/cache": "^11.11.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "@math.gl/types": "^4.0.0", + "@probe.gl/env": "^4.0.2", + "@probe.gl/log": "^4.0.2", + "@probe.gl/stats": "^4.0.2", + "@types/offscreencanvas": "^2019.6.4" + } + }, + "node_modules/@luma.gl/engine": { + "version": "9.0.27", + "resolved": "https://registry.npmjs.org/@luma.gl/engine/-/engine-9.0.27.tgz", + "integrity": "sha512-O4e7RbIjBJX5WLs8HJLjpccYEkcans4pz8+TI8Y7BO7gDq9ZbEASbVd5CT53jFLfTjnRuqAOpElfaXwQ/B7oWg==", + "dependencies": { + "@luma.gl/shadertools": "9.0.27", + "@math.gl/core": "^4.0.0", + "@probe.gl/log": "^4.0.2", + "@probe.gl/stats": "^4.0.2" }, "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } + "@luma.gl/core": "^9.0.0" } }, - "node_modules/@mui/system": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.14.tgz", - "integrity": "sha512-auXLXzUaCSSOLqJXmsAaq7P96VPRXg2Rrz6OHNV7lr+kB8lobUF+/N84Vd9C4G/wvCXYPs5TYuuGBRhcGbiBGg==", - "dev": true, + "node_modules/@luma.gl/gltf": { + "version": "9.0.27", + "resolved": "https://registry.npmjs.org/@luma.gl/gltf/-/gltf-9.0.27.tgz", + "integrity": "sha512-AeYdX25G35KKGnGVzIkrKl8ni9SWVo0VP/9lfMyEom3syIBYlWtkPLwJ2Gm6SU4ZZfcpWK/17UgK2r2TSWFIJw==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.15.14", - "@mui/styled-engine": "^5.15.14", - "@mui/types": "^7.2.14", - "@mui/utils": "^5.15.14", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "@loaders.gl/textures": "^4.2.0", + "@luma.gl/shadertools": "9.0.27", + "@math.gl/core": "^4.0.0" }, "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } + "@loaders.gl/core": "^4.2.0", + "@luma.gl/core": "^9.0.0", + "@luma.gl/engine": "^9.0.0" } }, - "node_modules/@mui/types": { - "version": "7.2.14", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", - "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", - "dev": true, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0" + "node_modules/@luma.gl/shadertools": { + "version": "9.0.27", + "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-9.0.27.tgz", + "integrity": "sha512-JcOuYH2Fh4uljinXKbR04en1dqEthlJNdqV5efQ0fE9NetJul7Pkq+N1v/Oo8/vmJn9ZqEC49dgZHwtbzY8UnQ==", + "dependencies": { + "@math.gl/core": "^4.0.0", + "@math.gl/types": "^4.0.0", + "wgsl_reflect": "^1.0.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "peerDependencies": { + "@luma.gl/core": "^9.0.0" } }, - "node_modules/@mui/utils": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", - "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", - "dev": true, + "node_modules/@luma.gl/webgl": { + "version": "9.0.27", + "resolved": "https://registry.npmjs.org/@luma.gl/webgl/-/webgl-9.0.27.tgz", + "integrity": "sha512-GOzOiDfTFgT4If1XSeCqXswKrgXVwTyuf/1W21Vv7fs5inub5p3LISmZglrt/RcdaGyXQQ5zEqf/+x67dGTeYw==", "dependencies": { - "@babel/runtime": "^7.23.9", - "@types/prop-types": "^15.7.11", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "@luma.gl/constants": "9.0.27", + "@probe.gl/env": "^4.0.2" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "@luma.gl/core": "^9.0.0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, + "node_modules/@mapbox/extent": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@mapbox/extent/-/extent-0.4.0.tgz", + "integrity": "sha512-MSoKw3qPceGuupn04sdaJrFeLKvcSETVLZCGS8JA9x6zXQL3FWiKaIXYIZEDXd5jpXpWlRxinCZIN49yRy0C9A==" + }, + "node_modules/@mapbox/geojson-area": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-area/-/geojson-area-0.2.2.tgz", + "integrity": "sha512-bBqqFn1kIbLBfn7Yq1PzzwVkPYQr9lVUeT8Dhd0NL5n76PBuXzOcuLV7GOSbEB1ia8qWxH4COCvFpziEu/yReA==", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" + "wgs84": "0.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" + "node_modules/@mapbox/geojson-coords": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-coords/-/geojson-coords-0.0.2.tgz", + "integrity": "sha512-YuVzpseee/P1T5BWyeVVPppyfmuXYHFwZHmybkqaMfu4BWlOf2cmMGKj2Rr92MwfSTOCSUA0PAsVGRG8akY0rg==", + "dependencies": { + "@mapbox/geojson-normalize": "0.0.1", + "geojson-flatten": "^1.0.4" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, + "node_modules/@mapbox/geojson-extent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-extent/-/geojson-extent-1.0.1.tgz", + "integrity": "sha512-hh8LEO3djT4fqfr8sSC6wKt+p0TMiu+KOLMBUiFOyj+zGq7+IXwQGl0ppCVDkyzCewyd9LoGe9zAvDxXrLfhLw==", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@mapbox/extent": "0.4.0", + "@mapbox/geojson-coords": "0.0.2", + "rw": "~0.1.4", + "traverse": "~0.6.6" }, - "engines": { - "node": ">= 8" + "bin": { + "geojson-extent": "bin/geojson-extent" } }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" + "node_modules/@mapbox/geojson-normalize": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-normalize/-/geojson-normalize-0.0.1.tgz", + "integrity": "sha512-82V7YHcle8lhgIGqEWwtXYN5cy0QM/OHq3ypGhQTbvHR57DF0vMHMjjVSQKFfVXBe/yWCBZTyOuzvK7DFFnx5Q==", + "bin": { + "geojson-normalize": "geojson-normalize" } }, - "node_modules/@probe.gl/env": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.6.0.tgz", - "integrity": "sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==", + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", "dependencies": { - "@babel/runtime": "^7.0.0" + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" } }, - "node_modules/@probe.gl/log": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.6.0.tgz", - "integrity": "sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@probe.gl/env": "3.6.0" + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" } }, - "node_modules/@probe.gl/stats": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.6.0.tgz", - "integrity": "sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==", + "node_modules/@mapbox/mapbox-gl-draw": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-draw/-/mapbox-gl-draw-1.4.3.tgz", + "integrity": "sha512-03qIJgyGmm0IoTZbV/cfODru9jRGogi4LcQ3maxIJDKccq1gY3ofgt2UYPkeU143ElxitZahEythNQv1NpsLhg==", "dependencies": { - "@babel/runtime": "^7.0.0" + "@mapbox/geojson-area": "^0.2.2", + "@mapbox/geojson-extent": "^1.0.1", + "@mapbox/geojson-normalize": "^0.0.1", + "@mapbox/point-geometry": "^0.1.0", + "hat": "0.0.3", + "lodash.isequal": "^4.5.0", + "xtend": "^4.0.2" } }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", - "dev": true, + "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==" + }, + "node_modules/@mapbox/martini": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@mapbox/martini/-/martini-0.2.0.tgz", + "integrity": "sha512-7hFhtkb0KTLEls+TRw/rWayq5EeHtTaErgm/NskVoXmtgAQu/9D299aeyj6mzAR/6XUnYRp2lU+4IcrYRFjVsQ==" + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" + }, + "node_modules/@mapbox/tile-cover": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/tile-cover/-/tile-cover-3.0.1.tgz", + "integrity": "sha512-R8aoFY/87HWBOL9E2eBqzOY2lpfWYXCcTNgBpIxAv67rqQeD4IfnHD0iPXg/Z1cqXrklegEYZCp/7ZR/RsWqBQ==", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "tilebelt": "^1.0.1" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.2.tgz", - "integrity": "sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==", + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.3.0.tgz", + "integrity": "sha512-eSiQ3E5LUSxAOY9ABXGyfNhout2iEa6mUxKeaQ9nJ8NL1NuaQYU7zKqzx/LEYcXe1neT4uYAgM1wYZj3fTSXtA==", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "sort-object": "^3.0.3", + "tinyqueue": "^2.0.3" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/@math.gl/core": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-4.0.1.tgz", + "integrity": "sha512-9IewNjR9V66o+gYIIq5agFoHy6ZT6DRpRGQBfsUpZz4glAqOjVt64he8GGzjpmqfT+kKT4qwQ7nQl/hZLF15qA==", + "dependencies": { + "@math.gl/types": "4.0.1" + } + }, + "node_modules/@math.gl/culling": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/culling/-/culling-4.1.0.tgz", + "integrity": "sha512-jFmjFEACnP9kVl8qhZxFNhCyd47qPfSVmSvvjR0/dIL6R9oD5zhR1ub2gN16eKDO/UM7JF9OHKU3EBIfeR7gtg==", + "dependencies": { + "@math.gl/core": "4.1.0", + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/culling/node_modules/@math.gl/core": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-4.1.0.tgz", + "integrity": "sha512-FrdHBCVG3QdrworwrUSzXIaK+/9OCRLscxI2OUy6sLOHyHgBMyfnEGs99/m3KNvs+95BsnQLWklVfpKfQzfwKA==", + "dependencies": { + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/culling/node_modules/@math.gl/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-4.1.0.tgz", + "integrity": "sha512-clYZdHcmRvMzVK5fjeDkQlHUzXQSNdZ7s4xOqC3nJPgz4C/TZkUecTo9YS4PruZqtDda/ag4erndP0MIn40dGA==" + }, + "node_modules/@math.gl/geospatial": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/geospatial/-/geospatial-4.1.0.tgz", + "integrity": "sha512-BzsUhpVvnmleyYF6qdqJIip6FtIzJmnWuPTGhlBuPzh7VBHLonCFSPtQpbkRuoyAlbSyaGXcVt6p6lm9eK2vtg==", + "dependencies": { + "@math.gl/core": "4.1.0", + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/geospatial/node_modules/@math.gl/core": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-4.1.0.tgz", + "integrity": "sha512-FrdHBCVG3QdrworwrUSzXIaK+/9OCRLscxI2OUy6sLOHyHgBMyfnEGs99/m3KNvs+95BsnQLWklVfpKfQzfwKA==", + "dependencies": { + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/geospatial/node_modules/@math.gl/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-4.1.0.tgz", + "integrity": "sha512-clYZdHcmRvMzVK5fjeDkQlHUzXQSNdZ7s4xOqC3nJPgz4C/TZkUecTo9YS4PruZqtDda/ag4erndP0MIn40dGA==" + }, + "node_modules/@math.gl/polygon": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-4.0.1.tgz", + "integrity": "sha512-pwtEbwW3N5qy09K/1FwRYW7M2u9XMPBfIe8BNpkbJh8uH3DPXQdT4uCNFiwrQPPQUQTDdlQyLu/0mRHm2R/fbg==", + "dependencies": { + "@math.gl/core": "4.0.1" + } + }, + "node_modules/@math.gl/sun": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/sun/-/sun-4.0.1.tgz", + "integrity": "sha512-nDkQZ9PKd5iMySRM1j01hYG6MwA/MkKXZe4JvArggWUtPXL6nCcPSeiifPXQGIvE9eZdQkbn81StNY9q5l0cFg==" + }, + "node_modules/@math.gl/types": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-4.0.1.tgz", + "integrity": "sha512-E9qBKAjVBiZD8Is7TbygiLGtYBP3GSLus6RUJSuzFQegdYXeVagvrs4UkBJxhrRAxw4crfH0Tq7IhTMKuuJNQw==" + }, + "node_modules/@math.gl/web-mercator": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-4.0.1.tgz", + "integrity": "sha512-eJ0nDw8140kJorf8ASyKRC53rI+UG6vPxpsKJiGRD6lXsoKTeKYebeEAXiGDWTvi2AMe6+xngxTqqwm58fL3Fw==" + }, + "node_modules/@microsoft/api-extractor": { + "version": "7.43.0", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.43.0.tgz", + "integrity": "sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==", + "dev": true, + "dependencies": { + "@microsoft/api-extractor-model": "7.28.13", + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "4.0.2", + "@rushstack/rig-package": "0.5.2", + "@rushstack/terminal": "0.10.0", + "@rushstack/ts-command-line": "4.19.1", + "lodash": "~4.17.15", + "minimatch": "~3.0.3", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "source-map": "~0.6.1", + "typescript": "5.4.2" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.28.13", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.13.tgz", + "integrity": "sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "4.0.2" + } + }, + "node_modules/@microsoft/api-extractor/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/@microsoft/api-extractor/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", + "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", + "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.21", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.21.tgz", + "integrity": "sha512-dp9lXBaJZzJYeJfQY3Ow4Rb49QaCEdkl2KKYscdQHQm6bMJ+l4XPY3Cd9PCeeJTsHPIDJ60lzXbeRgs6sx/rpw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.15.21", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.21.tgz", + "integrity": "sha512-yqkq1MbdkmX5ZHyvZTBuAaA6RkvoqkoAgwBSx9Oh0L0jAfj9T/Ih/NhMNjkl8PWVSonjfDUkKroBnjRyo/1M9Q==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.15.21", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.21.tgz", + "integrity": "sha512-nTyCcgduKwHqiuQ/B03EQUa+utSMzn2sQp0QAibsnYe4tvc3zkMbO0amKpl48vhABIY3IvT6w9615BFIgMt0YA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40", + "@mui/core-downloads-tracker": "^5.15.21", + "@mui/system": "^5.15.20", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.20", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming": { + "version": "5.15.20", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.20.tgz", + "integrity": "sha512-BK8F94AIqSrnaPYXf2KAOjGZJgWfvqAVQ2gVR3EryvQFtuBnG6RwodxrCvd3B48VuMy6Wsk897+lQMUxJyk+6g==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.20", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", + "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.15.20", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.20.tgz", + "integrity": "sha512-LoMq4IlAAhxzL2VNUDBTQxAb4chnBe8JvRINVNDiMtHE2PiPOoHlhOPutSxEbaL5mkECPVWSv6p8JEV+uykwIA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.20", + "@mui/styled-engine": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.20", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", + "dev": true, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.20", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.20.tgz", + "integrity": "sha512-mAbYx0sovrnpAu1zHc3MDIhPqL8RPVC5W5xcO1b7PiSCJPtckIZmBkp8hefamAvUiAV8gpfMOM6Zb+eSisbI2A==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@open-wc/dedupe-mixin": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", + "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==", + "peer": true + }, + "node_modules/@polymer/polymer": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", + "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "peer": true, + "dependencies": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@powsybl/network-map-layers": { + "resolved": "packages/network-map-layers", + "link": true + }, + "node_modules/@powsybl/single-line-diagram-viewer": { + "resolved": "packages/single-line-diagram-viewer", + "link": true + }, + "node_modules/@probe.gl/env": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-4.0.9.tgz", + "integrity": "sha512-AOmVMD0/j78mX+k4+qX7ZhE0sY9H+EaJgIO6trik0BwV6VcrwxTGCGFAeuRsIGhETDnye06tkLXccYatYxAYwQ==" + }, + "node_modules/@probe.gl/log": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-4.0.9.tgz", + "integrity": "sha512-ebuZaodSRE9aC+3bVC7cKRHT8garXeT1jTbj1R5tQRqQYc9iGeT3iemVOHx5bN9Q6gAs/0j54iPI+1DvWMAW4A==", + "dependencies": { + "@probe.gl/env": "4.0.9" + } + }, + "node_modules/@probe.gl/stats": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-4.0.9.tgz", + "integrity": "sha512-Q9Xt/sJUQaMsbjRKjOscv2t7wXIymTrOEJ4a3da4FTCn7bkKvcdxdyFAQySCrtPxE+YZ5I5lXpWPgv9BwmpE1g==" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", + "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", + "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", + "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", + "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", + "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", + "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", + "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", "cpu": [ - "arm" + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", + "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", + "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", + "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", + "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", + "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", + "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", + "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", + "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", + "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "cpu": [ + "x64" ], "dev": true, - "optional": true, - "os": [ - "android" - ] + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/node-core-library": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-4.0.2.tgz", + "integrity": "sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==", + "dev": true, + "dependencies": { + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "z-schema": "~5.0.2" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@rushstack/rig-package": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.2.tgz", + "integrity": "sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==", + "dev": true, + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.10.0.tgz", + "integrity": "sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==", + "dev": true, + "dependencies": { + "@rushstack/node-core-library": "4.0.2", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/terminal/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@rushstack/terminal/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.19.1.tgz", + "integrity": "sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==", + "dev": true, + "dependencies": { + "@rushstack/terminal": "0.10.0", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@stencil/core": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.20.0.tgz", + "integrity": "sha512-WPrTHFngvN081RY+dJPneKQLwnOFD60OMCOQGmmSHfCW0f4ujPMzzhwWU1gcSwXPWXz5O+8cBiiCaxAbJU7kAg==", + "peer": true, + "bin": { + "stencil": "bin/stencil" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.10.0" + } + }, + "node_modules/@svgdotjs/svg.js": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.4.tgz", + "integrity": "sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Fuzzyma" + } + }, + "node_modules/@svgdotjs/svg.panzoom.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.panzoom.js/-/svg.panzoom.js-2.1.2.tgz", + "integrity": "sha512-0Nzo2TRlTebW3pzfAPtHx8Ye7Y3kuMEkK7hwVJi0SgQUB/vstjg7fvCJxB++EqsuDEetP0/SC+4CpLMVm6Lh2g==", + "dependencies": { + "@svgdotjs/svg.js": "^3.0.16" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@svgr/core/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@svgr/core/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@svgr/core/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@turf/boolean-clockwise": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-5.1.5.tgz", + "integrity": "sha512-FqbmEEOJ4rU4/2t7FKx0HUWmjFEVqR+NJrFP7ymGSjja2SQ7Q91nnBihGuT+yuHHl6ElMjQ3ttsB/eTmyCycxA==", + "dependencies": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "node_modules/@turf/boolean-clockwise/node_modules/@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==" + }, + "node_modules/@turf/boolean-clockwise/node_modules/@turf/invariant": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.2.0.tgz", + "integrity": "sha512-28RCBGvCYsajVkw2EydpzLdcYyhSA77LovuOvgCJplJWaNVyJYH6BOR3HR9w50MEkPqb/Vc/jdo6I6ermlRtQA==", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@turf/boolean-point-in-polygon": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz", + "integrity": "sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==", + "dependencies": { + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/clone": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-5.1.5.tgz", + "integrity": "sha512-//pITsQ8xUdcQ9pVb4JqXiSqG4dos5Q9N4sYFoWghX21tfOV2dhc5TGqYOhnHrQS7RiKQL1vQ48kIK34gQ5oRg==", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@turf/clone/node_modules/@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==" + }, + "node_modules/@turf/helpers": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", + "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/invariant": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", + "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", + "dependencies": { + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/meta": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-5.2.0.tgz", + "integrity": "sha512-ZjQ3Ii62X9FjnK4hhdsbT+64AYRpaI8XMBMcyftEOGSmPMUVnkbvuv3C9geuElAXfQU7Zk1oWGOcrGOD9zr78Q==", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@turf/meta/node_modules/@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==" + }, + "node_modules/@turf/rewind": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-5.1.5.tgz", + "integrity": "sha512-Gdem7JXNu+G4hMllQHXRFRihJl3+pNl7qY+l4qhQFxq+hiU1cQoVFnyoleIqWKIrdK/i2YubaSwc3SCM7N5mMw==", + "dependencies": { + "@turf/boolean-clockwise": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "node_modules/@turf/rewind/node_modules/@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==" + }, + "node_modules/@turf/rewind/node_modules/@turf/invariant": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.2.0.tgz", + "integrity": "sha512-28RCBGvCYsajVkw2EydpzLdcYyhSA77LovuOvgCJplJWaNVyJYH6BOR3HR9w50MEkPqb/Vc/jdo6I6ermlRtQA==", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/brotli": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/brotli/-/brotli-1.3.4.tgz", + "integrity": "sha512-cKYjgaS2DMdCKF7R0F5cgx1nfBYObN2ihIuPGQ4/dlIY6RpV7OWNwe9L8V4tTVKL2eZqOkNM9FM/rgTvLf4oXw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/color": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.6.tgz", + "integrity": "sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A==", + "peer": true, + "dependencies": { + "@types/color-convert": "*" + } + }, + "node_modules/@types/color-convert": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.4.tgz", + "integrity": "sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==", + "peer": true, + "dependencies": { + "@types/color-name": "^1.1.0" + } + }, + "node_modules/@types/color-name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.5.tgz", + "integrity": "sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg==", + "peer": true + }, + "node_modules/@types/crypto-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.2.2.tgz", + "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==" + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==" + }, + "node_modules/@types/d3-color": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.4.5.tgz", + "integrity": "sha512-5sNP3DmtSnSozxcjqmzQKsDOuVJXZkceo1KJScDc1982kk/TS9mTPc6lpli1gTu1MIBF1YWutpHpjucNWcIj5g==" + }, + "node_modules/@types/d3-scale": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.5.tgz", + "integrity": "sha512-YOpKj0kIEusRf7ofeJcSZQsvKbnTwpe1DUF+P2qsotqG53kEsjm7EzzliqQxMkAWdkZcHrg5rRhB4JiDOQPX+A==", + "dependencies": { + "@types/d3-time": "^2" + } + }, + "node_modules/@types/d3-time": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.4.tgz", + "integrity": "sha512-BTfLsxTeo7yFxI/haOOf1ZwJ6xKgQLT9dCp+EcmQv87Gox6X+oKl4mLKfO6fnWm3P22+A6DknMNEZany8ql2Rw==" + }, + "node_modules/@types/eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-config-prettier": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/@types/eslint-config-prettier/-/eslint-config-prettier-6.11.3.tgz", + "integrity": "sha512-3wXCiM8croUnhg9LdtZUJQwNcQYGWxxdOWDjPe1ykCqJFPVpzAKfs/2dgSoCtAvdPeaponcWPI7mPcGGp9dkKQ==", + "dev": true + }, + "node_modules/@types/eslint-plugin-prettier": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz", + "integrity": "sha512-Jk+lgBZM0u9ETUyqe2HvykL1j6uE7L1oEqbInWtsVHT6sP+AdwLb4ncmQBqASTS+YzYOPF6hKX0zgEhblRMjqA==", + "dev": true, + "dependencies": { + "@types/eslint": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==" + }, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/google.maps": { + "version": "3.58.1", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz", + "integrity": "sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hammerjs": { + "version": "2.0.45", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz", + "integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ==" + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "peer": true, + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "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 }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.2.tgz", - "integrity": "sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] + "node_modules/@types/junit-report-builder": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/junit-report-builder/-/junit-report-builder-3.0.2.tgz", + "integrity": "sha512-R5M+SYhMbwBeQcNXYWNCZkl09vkVfAtcPIaCGdzIkkbeaTrVbGQ7HVgi4s+EmM/M1K4ZuWQH0jGcvMvNePfxYA==" }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.2.tgz", - "integrity": "sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] + "node_modules/@types/license-checker": { + "version": "25.0.6", + "resolved": "https://registry.npmjs.org/@types/license-checker/-/license-checker-25.0.6.tgz", + "integrity": "sha512-ju/75+YPkNE5vX1iPer+qtI1eI/LqJVYZgOsmSHI1iiEM1bQL5Gh1lEvyjR9T7ZXVE1FwJa2doWJEEmPNwbZkw==", + "dev": true }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.2.tgz", - "integrity": "sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==", - "cpu": [ - "x64" - ], + "node_modules/@types/mapbox__mapbox-gl-draw": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@types/mapbox__mapbox-gl-draw/-/mapbox__mapbox-gl-draw-1.4.6.tgz", + "integrity": "sha512-ajnIY/6pMjJhLyz5TUt1ukzs6rl9m/hItzw/b3Z0tQlrFq9vwDNPugLFOuNpLdmgA7emfMxlvxnLKbtE5/vtsw==", "dev": true, - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@types/geojson": "*", + "@types/mapbox-gl": "*" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.2.tgz", - "integrity": "sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", + "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==" }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.2.tgz", - "integrity": "sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", + "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.2.tgz", - "integrity": "sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@types/mapbox-gl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-3.1.0.tgz", + "integrity": "sha512-hI6cQDjw1bkJw7MC/eHMqq5TWUamLwsujnUUeiIX2KDRjxRNSYMjnHz07+LATz9I9XIsKumOtUz4gRYnZOJ/FA==", + "dependencies": { + "@types/geojson": "*" + } }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.13.2.tgz", - "integrity": "sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==", - "cpu": [ - "ppc64le" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@types/node": { + "version": "18.19.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", + "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "dependencies": { + "undici-types": "~5.26.4" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.2.tgz", - "integrity": "sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@types/offscreencanvas": { + "version": "2019.7.3", + "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", + "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==" }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.13.2.tgz", - "integrity": "sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@types/pako": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-YBtzT2ztNF6R/9+UXj2wTGFnC9NklAnASt3sC0h2m1bbH7G6FyBIkt4AN8ThZpNfxUo1b2iMVO0UawiJymEt8A==" }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.2.tgz", - "integrity": "sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "peer": true }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.2.tgz", - "integrity": "sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "node_modules/@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==" }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.2.tgz", - "integrity": "sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.2.tgz", - "integrity": "sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==", - "cpu": [ - "ia32" - ], + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "dev": true, - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@types/react": "*" + } }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.2.tgz", - "integrity": "sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==", - "cpu": [ - "x64" - ], + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", "dev": true, - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@types/react": "*" + } }, - "node_modules/@rushstack/node-core-library": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-4.0.2.tgz", - "integrity": "sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==", + "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/sortablejs": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.7.tgz", + "integrity": "sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==", + "peer": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "peer": true + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, "dependencies": { - "fs-extra": "~7.0.1", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.22.1", - "semver": "~7.5.4", - "z-schema": "~5.0.2" + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@types/node": "*" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "@types/node": { + "typescript": { "optional": true } } }, - "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, - "node_modules/@rushstack/node-core-library/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=10" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@rushstack/node-core-library/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@rushstack/rig-package": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.2.tgz", - "integrity": "sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "dependencies": { - "resolve": "~1.22.1", - "strip-json-comments": "~3.1.1" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@rushstack/terminal": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.10.0.tgz", - "integrity": "sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==", + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, "dependencies": { - "@rushstack/node-core-library": "4.0.2", - "supports-color": "~8.1.1" + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@types/node": "*" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "@types/node": { + "typescript": { "optional": true } } }, - "node_modules/@rushstack/terminal/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "engines": { - "node": ">=8" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@rushstack/terminal/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": ">=10" + "node": "^16.0.0 || >=18.0.0" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@rushstack/ts-command-line": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.19.1.tgz", - "integrity": "sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==", - "dev": true, - "dependencies": { - "@rushstack/terminal": "0.10.0", - "@types/argparse": "1.0.38", - "argparse": "~1.0.9", - "string-argv": "~0.3.1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "type-detect": "4.0.8" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@svgdotjs/svg.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.0.tgz", - "integrity": "sha512-Tr8p+QVP7y+QT1GBlq1Tt57IvedVH8zCPoYxdHLX0Oof3a/PqnC/tXAkVufv1JQJfsDHlH/UrjcDfgxSofqSNA==", + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/Fuzzyma" - } - }, - "node_modules/@svgdotjs/svg.panzoom.js": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@svgdotjs/svg.panzoom.js/-/svg.panzoom.js-2.1.2.tgz", - "integrity": "sha512-0Nzo2TRlTebW3pzfAPtHx8Ye7Y3kuMEkK7hwVJi0SgQUB/vstjg7fvCJxB++EqsuDEetP0/SC+4CpLMVm6Lh2g==", - "dependencies": { - "@svgdotjs/svg.js": "^3.0.16" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 10" + "node": ">=10" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "node_modules/@vaadin/a11y-base": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.3.22.tgz", + "integrity": "sha512-QrVsB7R+WGHlwEzVyvhwL6HvAGErF6CHTDBEyvKyt3jmjIqRDiCBGjvq6g/SHYUUNQNH1u892ANXGHLAQGGqLQ==", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.3.22", + "lit": "^3.0.0" + } }, - "node_modules/@turf/boolean-clockwise": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-5.1.5.tgz", - "integrity": "sha512-FqbmEEOJ4rU4/2t7FKx0HUWmjFEVqR+NJrFP7ymGSjja2SQ7Q91nnBihGuT+yuHHl6ElMjQ3ttsB/eTmyCycxA==", + "node_modules/@vaadin/checkbox": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.3.22.tgz", + "integrity": "sha512-x5oHFsvyptS3gmDv60ArHPeziFWUu7w/26NIhKb2UIwK/Xm83Ot2GufX7O15w5v+o4CewZPHV3+HtbCsYXih6Q==", + "peer": true, "dependencies": { - "@turf/helpers": "^5.1.5", - "@turf/invariant": "^5.1.5" + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/a11y-base": "~24.3.22", + "@vaadin/component-base": "~24.3.22", + "@vaadin/field-base": "~24.3.22", + "@vaadin/vaadin-lumo-styles": "~24.3.22", + "@vaadin/vaadin-material-styles": "~24.3.22", + "@vaadin/vaadin-themable-mixin": "~24.3.22", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/component-base": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.3.22.tgz", + "integrity": "sha512-7BPgiDw1icpk9Ngw4uhsfIOqWRc6beeJnDpnyIOKoaLZUtoQOwNx1IQdH7mwwyEevbi86585JP/LS6p5k1dSLw==", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/vaadin-development-mode-detector": "^2.0.0", + "@vaadin/vaadin-usage-statistics": "^2.1.0", + "lit": "^3.0.0" } }, - "node_modules/@turf/boolean-point-in-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz", - "integrity": "sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==", + "node_modules/@vaadin/field-base": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.3.22.tgz", + "integrity": "sha512-ZY799Clzqt6H7UUsdHuxz0jXhbVP1t5WbxzWest5s5cWBaUw089wBh0H8LBUobFM1LUu5/AYW6II7W3R2Dqi2w==", + "peer": true, "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/a11y-base": "~24.3.22", + "@vaadin/component-base": "~24.3.22", + "lit": "^3.0.0" } }, - "node_modules/@turf/boolean-point-in-polygon/node_modules/@turf/helpers": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", - "funding": { - "url": "https://opencollective.com/turf" + "node_modules/@vaadin/grid": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.3.22.tgz", + "integrity": "sha512-m+FtzBkD6Fd15XS/31vW5DkONQDV6T966HuhT+cKyZbmJ40/w+zfFk3F/OvTuT4MW6U2lBwpWQucAD1ucPHMdg==", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/a11y-base": "~24.3.22", + "@vaadin/checkbox": "~24.3.22", + "@vaadin/component-base": "~24.3.22", + "@vaadin/lit-renderer": "~24.3.22", + "@vaadin/text-field": "~24.3.22", + "@vaadin/vaadin-lumo-styles": "~24.3.22", + "@vaadin/vaadin-material-styles": "~24.3.22", + "@vaadin/vaadin-themable-mixin": "~24.3.22" + } + }, + "node_modules/@vaadin/icon": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.3.22.tgz", + "integrity": "sha512-zx6hzSBEtJthl4CS9AmOQIlvGeO+0913KebcmvJ/GV9SAF54nZNSo6KGVE5Njp7W32h1lSzPTw89O5Pre2Cjqg==", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.3.22", + "@vaadin/vaadin-lumo-styles": "~24.3.22", + "@vaadin/vaadin-themable-mixin": "~24.3.22", + "lit": "^3.0.0" } }, - "node_modules/@turf/boolean-point-in-polygon/node_modules/@turf/invariant": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", - "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", + "node_modules/@vaadin/input-container": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.3.22.tgz", + "integrity": "sha512-YUULDjZ96K89ChHsCfta9flWc0ZJTgcDX0HpulnQDkCsZ7EghArZ+fJtjy9jSsDdx69R5R9CnoRQOgMT/cPd7Q==", + "peer": true, "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.3.22", + "@vaadin/vaadin-lumo-styles": "~24.3.22", + "@vaadin/vaadin-material-styles": "~24.3.22", + "@vaadin/vaadin-themable-mixin": "~24.3.22", + "lit": "^3.0.0" } }, - "node_modules/@turf/clone": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-5.1.5.tgz", - "integrity": "sha512-//pITsQ8xUdcQ9pVb4JqXiSqG4dos5Q9N4sYFoWghX21tfOV2dhc5TGqYOhnHrQS7RiKQL1vQ48kIK34gQ5oRg==", + "node_modules/@vaadin/lit-renderer": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.3.22.tgz", + "integrity": "sha512-LmbjpL6dGwbCZBpnpIUIOgknNA6LftcdIwyBqiywOS3i8fuEMwzXNuK+oUYPfbe4DZnJn0/51AJZwB5fSzsCRA==", + "peer": true, "dependencies": { - "@turf/helpers": "^5.1.5" + "lit": "^3.0.0" } }, - "node_modules/@turf/helpers": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", - "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==" + "node_modules/@vaadin/text-field": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.3.22.tgz", + "integrity": "sha512-opSjQW4fY4fCfklyPtSclpGuugw6u4HdlQEiFVcxrI9wBObNnMuYt+bKTiuqCDZSECox4dh3VEaM8hJusOcc+w==", + "peer": true, + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/a11y-base": "~24.3.22", + "@vaadin/component-base": "~24.3.22", + "@vaadin/field-base": "~24.3.22", + "@vaadin/input-container": "~24.3.22", + "@vaadin/vaadin-lumo-styles": "~24.3.22", + "@vaadin/vaadin-material-styles": "~24.3.22", + "@vaadin/vaadin-themable-mixin": "~24.3.22", + "lit": "^3.0.0" + } + }, + "node_modules/@vaadin/vaadin-development-mode-detector": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.7.tgz", + "integrity": "sha512-9FhVhr0ynSR3X2ao+vaIEttcNU5XfzCbxtmYOV8uIRnUCtNgbvMOIcyGBvntsX9I5kvIP2dV3cFAOG9SILJzEA==", + "peer": true }, - "node_modules/@turf/invariant": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.2.0.tgz", - "integrity": "sha512-28RCBGvCYsajVkw2EydpzLdcYyhSA77LovuOvgCJplJWaNVyJYH6BOR3HR9w50MEkPqb/Vc/jdo6I6ermlRtQA==", + "node_modules/@vaadin/vaadin-lumo-styles": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.3.22.tgz", + "integrity": "sha512-uHEtzfk8u2k5iTknIaOhbIEHH6VcuiLZeFs7p4V9a01E5KkBcBFlOPY3hMgPua3yPVJKDNCmK1lzG8Qt/IrArg==", + "peer": true, "dependencies": { - "@turf/helpers": "^5.1.5" + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.3.22", + "@vaadin/icon": "~24.3.22", + "@vaadin/vaadin-themable-mixin": "~24.3.22" } }, - "node_modules/@turf/meta": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-5.2.0.tgz", - "integrity": "sha512-ZjQ3Ii62X9FjnK4hhdsbT+64AYRpaI8XMBMcyftEOGSmPMUVnkbvuv3C9geuElAXfQU7Zk1oWGOcrGOD9zr78Q==", + "node_modules/@vaadin/vaadin-material-styles": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.3.22.tgz", + "integrity": "sha512-sCoZimM96Rj7i9DWCg3LsJq4EsLkJcj7U8NmbCo+XnRtGykElBb/xc3fJiAC8uuf39Yj6V8BbAahuq3ulwaRig==", + "peer": true, "dependencies": { - "@turf/helpers": "^5.1.5" + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~24.3.22", + "@vaadin/vaadin-themable-mixin": "~24.3.22" } }, - "node_modules/@turf/rewind": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-5.1.5.tgz", - "integrity": "sha512-Gdem7JXNu+G4hMllQHXRFRihJl3+pNl7qY+l4qhQFxq+hiU1cQoVFnyoleIqWKIrdK/i2YubaSwc3SCM7N5mMw==", + "node_modules/@vaadin/vaadin-themable-mixin": { + "version": "24.3.22", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.3.22.tgz", + "integrity": "sha512-u+r0UXtCzMoZbR1UKQTPWUZEnkXlxwRuxjpNCAdyumqbFMMHd5yw1/LbXertouzj60CN3SUU1FXLtjCgFOeRXQ==", + "peer": true, "dependencies": { - "@turf/boolean-clockwise": "^5.1.5", - "@turf/clone": "^5.1.5", - "@turf/helpers": "^5.1.5", - "@turf/invariant": "^5.1.5", - "@turf/meta": "^5.1.5" + "@open-wc/dedupe-mixin": "^1.3.0", + "lit": "^3.0.0" } }, - "node_modules/@types/argparse": { - "version": "1.0.38", - "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", - "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", - "dev": true + "node_modules/@vaadin/vaadin-usage-statistics": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.3.tgz", + "integrity": "sha512-8r4TNknD7OJQADe3VygeofFR7UNAXZ2/jjBFP5dgI8+2uMfnuGYgbuHivasKr9WSQ64sPej6m8rDoM1uSllXjQ==", + "hasInstallScript": true, + "peer": true, + "dependencies": { + "@vaadin/vaadin-development-mode-detector": "^2.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "node_modules/@vitejs/plugin-react": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", + "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", "dev": true, "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", "dev": true, "dependencies": { - "@babel/types": "^7.0.0" + "@volar/source-map": "1.11.1" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "muggle-string": "^0.3.1" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7" + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" } }, - "node_modules/@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "node_modules/@vue/compiler-core": { + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", "dev": true, "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" } }, - "node_modules/@types/eslint-config-prettier": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/@types/eslint-config-prettier/-/eslint-config-prettier-6.11.3.tgz", - "integrity": "sha512-3wXCiM8croUnhg9LdtZUJQwNcQYGWxxdOWDjPe1ykCqJFPVpzAKfs/2dgSoCtAvdPeaponcWPI7mPcGGp9dkKQ==", - "dev": true - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "node_modules/@types/geojson": { - "version": "7946.0.14", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", - "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==" - }, - "node_modules/@types/geojson-vt": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", - "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "node_modules/@vue/compiler-dom": { + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "dev": true, "dependencies": { - "@types/geojson": "*" + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", "dev": true, "dependencies": { - "@types/node": "*" + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@types/hammerjs": { - "version": "2.0.45", - "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz", - "integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ==" + "node_modules/@vue/shared": { + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "node_modules/@webcomponents/shadycss": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.11.2.tgz", + "integrity": "sha512-vRq+GniJAYSBmTRnhCYPAPq6THYqovJ/gzGThWbgEZUQaBccndGTi1hdiUP15HzEco0I6t4RCtXyX0rsSmwgPw==", + "peer": true + }, + "node_modules/@zip.js/zip.js": { + "version": "2.7.52", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.52.tgz", + "integrity": "sha512-+5g7FQswvrCHwYKNMd/KFxZSObctLSsQOgqBSi0LzwHo3li9Eh1w5cF5ndjQw9Zbr3ajVnd2+XyiX85gAetx1Q==", "peer": true, - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" + "engines": { + "bun": ">=0.7.0", + "deno": ">=1.0.0", + "node": ">=16.5.0" } }, - "node_modules/@types/istanbul-lib-coverage": { + "node_modules/abab": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "dev": true, "dependencies": { - "@types/istanbul-lib-report": "*" + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" } }, - "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "node_modules/acorn-globals/node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@types/json-schema": { - "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 - }, - "node_modules/@types/license-checker": { - "version": "25.0.6", - "resolved": "https://registry.npmjs.org/@types/license-checker/-/license-checker-25.0.6.tgz", - "integrity": "sha512-ju/75+YPkNE5vX1iPer+qtI1eI/LqJVYZgOsmSHI1iiEM1bQL5Gh1lEvyjR9T7ZXVE1FwJa2doWJEEmPNwbZkw==", - "dev": true + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "node_modules/@types/mapbox__mapbox-gl-draw": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/@types/mapbox__mapbox-gl-draw/-/mapbox__mapbox-gl-draw-1.4.6.tgz", - "integrity": "sha512-ajnIY/6pMjJhLyz5TUt1ukzs6rl9m/hItzw/b3Z0tQlrFq9vwDNPugLFOuNpLdmgA7emfMxlvxnLKbtE5/vtsw==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { - "@types/geojson": "*", - "@types/mapbox-gl": "*" + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, - "node_modules/@types/mapbox__point-geometry": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", - "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==" - }, - "node_modules/@types/mapbox__vector-tile": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", - "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { - "@types/geojson": "*", - "@types/mapbox__point-geometry": "*", - "@types/pbf": "*" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@types/mapbox-gl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-3.1.0.tgz", - "integrity": "sha512-hI6cQDjw1bkJw7MC/eHMqq5TWUamLwsujnUUeiIX2KDRjxRNSYMjnHz07+LATz9I9XIsKumOtUz4gRYnZOJ/FA==", + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, "dependencies": { - "@types/geojson": "*" + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/@types/node": { - "version": "18.19.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", - "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@types/offscreencanvas": { - "version": "2019.7.3", - "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", - "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==" - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "peer": true - }, - "node_modules/@types/pbf": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", - "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, - "node_modules/@types/react": { - "version": "18.2.75", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.75.tgz", - "integrity": "sha512-+DNnF7yc5y0bHkBTiLKqXFe+L4B3nvOphiMY3tuA5X10esmjqk7smyBZzbGTy2vsiy/Bnzj8yFIBL8xhRacoOg==", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" } }, - "node_modules/@types/react-dom": { - "version": "18.2.24", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.24.tgz", - "integrity": "sha512-cN6upcKd8zkGy4HU9F1+/s98Hrp6D4MOcippK4PoE8OZRngohHZpbJn1GsaDLz87MqvHNoT13nHvNqM9ocRHZg==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { - "@types/react": "*" + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@types/react-transition-group": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", - "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "dependencies": { - "@types/react": "*" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true + "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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/@types/supercluster": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", - "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "dependencies": { - "@types/geojson": "*" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dependencies": { - "@types/yargs-parser": "*" + "sprintf-js": "~1.0.2" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", - "dev": true, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "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==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "call-bind": "^1.0.7", + "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" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, - "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "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==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "engines": { + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dependencies": { - "yallist": "^4.0.0" + "possible-typed-array-names": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" + "color-convert": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10" + "node": ">=7.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=8" } }, - "node_modules/@vitejs/plugin-react": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", - "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@babel/core": "^7.23.5", - "@babel/plugin-transform-react-jsx-self": "^7.23.3", - "@babel/plugin-transform-react-jsx-source": "^7.23.3", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "node": ">=8" } }, - "node_modules/@volar/language-core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", - "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "dependencies": { - "@volar/source-map": "1.11.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@volar/source-map": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", - "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "dependencies": { - "muggle-string": "^0.3.1" + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@volar/typescript": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", - "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", - "dev": true, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "peer": true, "dependencies": { - "@volar/language-core": "1.11.1", - "path-browserify": "^1.0.1" + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" } }, - "node_modules/@vue/compiler-core": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz", - "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.9", - "@vue/shared": "3.4.21", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@vue/compiler-dom": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", - "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.4.21", - "@vue/shared": "3.4.21" + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@vue/language-core": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", - "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { - "@volar/language-core": "~1.11.1", - "@volar/source-map": "~1.11.1", - "@vue/compiler-dom": "^3.3.0", - "@vue/shared": "^3.3.0", - "computeds": "^0.0.1", - "minimatch": "^9.0.3", - "muggle-string": "^0.3.1", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@vue/shared": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz", - "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": ">=0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": 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==", "dev": true, "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" + "balanced-match": "^1.0.0" } }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "fill-range": "^7.0.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "optional": true, + "dependencies": { + "base64-js": "^1.1.2" } }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, "engines": { - "node": ">=0.4.0" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "dependencies": { - "debug": "4" + "fast-json-stable-stringify": "2.x" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 6" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "node-int64": "^0.4.0" } }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, + "node_modules/buf-compare": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", + "integrity": "sha512-Bvx4xH00qweepGc43xFvMs5BKASXTbHaHm6+kDYIK9p/4iFwjATQkmPKHQSgJZzKbAymhztRbXUf1Nqhzl73/Q==", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytewise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", + "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bytewise-core": "^1.2.2", + "typewise": "^1.0.3" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/bytewise-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", + "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", + "dependencies": { + "typewise-core": "^1.2" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "color-convert": "^1.9.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "engines": { - "node": ">= 8" + "node": ">=6" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" } }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "engines": { - "node": ">=0.10.0" + "node_modules/caniuse-lite": { + "version": "1.0.30001620", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/cartocolor": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/cartocolor/-/cartocolor-5.0.2.tgz", + "integrity": "sha512-Ihb/wU5V6BVbHwapd8l/zg7bnhZ4YPFVfa7quSpL86lfkPJSf4YuNBT+EvesPRP5vSqhl6vZVsQJwCR8alBooQ==", + "dependencies": { + "colorbrewer": "1.5.6" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/array-find-index": { + "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "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==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "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" - }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "*" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/cheap-ruler": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-3.0.2.tgz", + "integrity": "sha512-02T332h1/HTN6cDSufLP8x4JzDs2+VC+8qZ/N0kWIVPyc2xUkWwWh3B2fJxR7raXkL4Mq7k554mfuM9ofv/vGg==" + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "engines": { "node": ">=8" } }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "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==", + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "color-convert": "^2.0.1", + "color-string": "^1.9.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12.5.0" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "color-name": "1.1.3" } }, - "node_modules/array.prototype.tosorted": { + "node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", - "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", - "dev": true, + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "peer": true, "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.1.0", - "es-shim-unscopables": "^1.0.2" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, + "node_modules/color/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.4" + "node": ">=7.0.0" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/colorbrewer": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-1.5.6.tgz", + "integrity": "sha512-fONg2pGXyID8zNgKHBlagW8sb/AMShGzj4rRJfz5biZ7iuHQZYquSCLE/Co1oSQFmt/vvwjyezJCejQl7FG/tg==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.8" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "optional": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", "dev": true }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "node_modules/composed-offset-position": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/composed-offset-position/-/composed-offset-position-0.0.6.tgz", + "integrity": "sha512-Q7dLompI6lUwd7LWyIcP66r4WcS9u7AL2h8HaeipiRfCRPLMWqRx8fYsjb4OHi6UQFifO7XtNC2IlEJ1ozIFxw==", + "peer": true, + "peerDependencies": { + "@floating-ui/utils": "^0.2.5" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-assert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", + "integrity": "sha512-IG97qShIP+nrJCXMCgkNZgH7jZQ4n8RpPyPeXX++T6avR/KhLhgLiHKoEn5Rc1KjfycSfA9DMa6m+4C4eguHhw==", + "dependencies": { + "buf-compare": "^1.0.0", + "is-error": "^2.2.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "peer": true, "dependencies": { - "possible-typed-array-names": "^1.0.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/babel-jest": { + "node_modules/create-jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "slash": "^3.0.0" + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { + "node_modules/create-jest/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -6172,7 +8149,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/babel-jest/node_modules/chalk": { + "node_modules/create-jest/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -6188,7 +8165,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/babel-jest/node_modules/color-convert": { + "node_modules/create-jest/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -6200,13 +8177,13 @@ "node": ">=7.0.0" } }, - "node_modules/babel-jest/node_modules/color-name": { + "node_modules/create-jest/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/babel-jest/node_modules/has-flag": { + "node_modules/create-jest/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -6215,7 +8192,7 @@ "node": ">=8" } }, - "node_modules/babel-jest/node_modules/supports-color": { + "node_modules/create-jest/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -6227,252 +8204,176 @@ "node": ">=8" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "engines": { - "node": ">=10", - "npm": ">=6" + "node": "*" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", - "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", - "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", + "peer": true }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", - "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "cssom": "~0.3.6" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" + "internmap": "1 - 2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=12" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/d3-hexbin": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/d3-hexbin/-/d3-hexbin-0.2.2.tgz", + "integrity": "sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==" + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" + "d3-color": "1 - 3" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=12" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dependencies": { - "fast-json-stable-stringify": "2.x" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" }, "engines": { - "node": ">= 6" + "node": ">=12" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buf-compare": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", - "integrity": "sha512-Bvx4xH00qweepGc43xFvMs5BKASXTbHaHm6+kDYIK9p/4iFwjATQkmPKHQSgJZzKbAymhztRbXUf1Nqhzl73/Q==", + "d3-array": "2 - 3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bytewise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", - "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dependencies": { - "bytewise-core": "^1.2.2", - "typewise": "^1.0.3" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/bytewise-core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", - "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, "dependencies": { - "typewise-core": "^1.2" + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dependencies": { - "es-define-property": "^1.0.0", + "call-bind": "^1.0.6", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -6481,543 +8382,507 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001605", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", - "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "node_modules/dayjs": { + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==", + "peer": true }, - "node_modules/cartocolor": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cartocolor/-/cartocolor-4.0.2.tgz", - "integrity": "sha512-+Gh9mb6lFxsDOLQlBLPxAHCnWXlg2W8q3AcVwqRcy95TdBbcOU89Wrb6h2Hd/6Ww1Kc1pzXmUdpnWD+xeCG0dg==", - "dependencies": { - "colorbrewer": "1.0.0" - } + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true }, - "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==", + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ms": "2.1.2" }, "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/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==", - "engines": { - "node": ">=0.8.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, "engines": { - "node": ">=10" + "node": "*" } }, - "node_modules/cheap-ruler": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-3.0.2.tgz", - "integrity": "sha512-02T332h1/HTN6cDSufLP8x4JzDs2+VC+8qZ/N0kWIVPyc2xUkWwWh3B2fJxR7raXkL4Mq7k554mfuM9ofv/vGg==" + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "node_modules/deck.gl": { + "version": "9.0.31", + "resolved": "https://registry.npmjs.org/deck.gl/-/deck.gl-9.0.31.tgz", + "integrity": "sha512-5SuW1YNs9L+utT5tIcAWJYKXYmsk3qetR2zIWi0rxD9Fw/+xi8tlwXB6wO/4TXgE4gxOhIzu0zgMvVpJ6Wznbw==", + "dependencies": { + "@deck.gl/aggregation-layers": "9.0.31", + "@deck.gl/arcgis": "9.0.31", + "@deck.gl/carto": "9.0.31", + "@deck.gl/core": "9.0.31", + "@deck.gl/extensions": "9.0.31", + "@deck.gl/geo-layers": "9.0.31", + "@deck.gl/google-maps": "9.0.31", + "@deck.gl/json": "9.0.31", + "@deck.gl/layers": "9.0.31", + "@deck.gl/mapbox": "9.0.31", + "@deck.gl/mesh-layers": "9.0.31", + "@deck.gl/react": "9.0.31", + "@deck.gl/widgets": "9.0.31", + "@loaders.gl/core": "^4.2.0", + "@luma.gl/core": "~9.0.27", + "@luma.gl/engine": "~9.0.27" + }, + "peerDependencies": { + "@arcgis/core": "^4.0.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + }, + "peerDependenciesMeta": { + "@arcgis/core": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true } - ], - "engines": { - "node": ">=8" } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, + "node_modules/deep-strict-equal": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deep-strict-equal/-/deep-strict-equal-0.2.0.tgz", + "integrity": "sha512-3daSWyvZ/zwJvuMGlzG1O+Ow0YSadGfb3jsh9xoCutv2tWyB9dA4YvR9L9/fSdDZa2dByYQe+TqapSGUrjnkoA==", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "core-assert": "^0.2.0" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/clsx": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", - "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "node_modules/deepmerge": { + "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==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "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==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dependencies": { - "color-name": "1.1.3" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/colorbrewer": { + "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-1.0.0.tgz", - "integrity": "sha512-NZuIOVdErK/C6jDH3jWT/roxWJbJAinMiqEpbuWniKvQAoWdg6lGra3pPrSHvaIf8PlX8wLs/RAC6nULFJbgmg==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, "engines": { - "node": ">= 0.8" + "node": ">=0.4.0" } }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/core-assert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", - "integrity": "sha512-IG97qShIP+nrJCXMCgkNZgH7jZQ4n8RpPyPeXX++T6avR/KhLhgLiHKoEn5Rc1KjfycSfA9DMa6m+4C4eguHhw==", - "dependencies": { - "buf-compare": "^1.0.0", - "is-error": "^2.2.0" - }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/core-js-compat": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", - "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, "dependencies": { - "browserslist": "^4.23.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "asap": "^2.0.0", + "wrappy": "1" } }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "peer": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=0.3.1" } }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/create-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "path-type": "^4.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/create-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/create-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, - "node_modules/create-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/create-jest/node_modules/has-flag": { + "node_modules/domexception": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/create-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" + "node_modules/draco3d": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", + "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==" }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.772", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.772.tgz", + "integrity": "sha512-jFfEbxR/abTTJA3ci+2ok1NTuOBBtB4jH+UT6PUmRN+DY3WSD4FFRsgoVQ+QNIJ0T7wrXwzsWCI2WKC46b++2A==", "dev": true }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "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/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, "dependencies": { - "internmap": "1 - 2" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" + "node": ">=8.6" } }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", - "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", - "dependencies": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" + "node": ">=0.12" }, - "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "engines": { - "node": ">=12" + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" } }, - "node_modules/d3-hexbin": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/d3-hexbin/-/d3-hexbin-0.2.2.tgz", - "integrity": "sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==" - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dependencies": { - "d3-color": "1 - 3" + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "dependencies": { - "d3-array": "2 - 3" - }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, "dependencies": { - "d3-time": "1 - 3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" }, "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "es-errors": "^1.3.0" }, "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dev": true, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "hasown": "^2.0.0" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -7026,507 +8891,426 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, - "dependencies": { - "ms": "2.1.2" + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=6.0" + "node": ">=12" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, - "node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/deck.gl": { - "version": "8.9.35", - "resolved": "https://registry.npmjs.org/deck.gl/-/deck.gl-8.9.35.tgz", - "integrity": "sha512-qP5A/Q2I7hRKrVagbSifiAg4tTe0IdMhc3pgDt0XMm1xV5P+aKa6GQMljXFSRRQyQ5UEN2uCHEiL18g/ZiqChQ==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "@deck.gl/aggregation-layers": "8.9.35", - "@deck.gl/carto": "8.9.35", - "@deck.gl/core": "8.9.35", - "@deck.gl/extensions": "8.9.35", - "@deck.gl/geo-layers": "8.9.35", - "@deck.gl/google-maps": "8.9.35", - "@deck.gl/json": "8.9.35", - "@deck.gl/layers": "8.9.35", - "@deck.gl/mapbox": "8.9.35", - "@deck.gl/mesh-layers": "8.9.35", - "@deck.gl/react": "8.9.35" + "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==", + "engines": { + "node": ">=0.8.0" } }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deep-strict-equal": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/deep-strict-equal/-/deep-strict-equal-0.2.0.tgz", - "integrity": "sha512-3daSWyvZ/zwJvuMGlzG1O+Ow0YSadGfb3jsh9xoCutv2tWyB9dA4YvR9L9/fSdDZa2dByYQe+TqapSGUrjnkoA==", "dependencies": { - "core-assert": "^0.2.0" + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/deepmerge": { - "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==", + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, + "optional": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">= 0.4" + "node": "^10.12.0 || >=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" + "url": "https://opencollective.com/eslint" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, - "engines": { - "node": ">=8" + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, + "prettier-linter-helpers": "^1.0.0" + }, "engines": { - "node": ">=0.3.1" + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/eslint-plugin-react": { + "version": "7.34.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", + "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.hasown": "^1.1.4", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.6.tgz", + "integrity": "sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==", "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "eslint": ">=7" } }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "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": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "deprecated": "Use your platform's native DOMException instead", + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { - "webidl-conversions": "^7.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/draco3d": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.5.tgz", - "integrity": "sha512-JVuNV0EJzD3LBYhGyIXJLeBID/EVtmFO1ZNhAYflTgiMiAJlbhXQmRRda/azjc8MRVMHh0gqGhiqHUo5dIXM8Q==" - }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.723", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.723.tgz", - "integrity": "sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "node_modules/eslint-plugin-react/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "node": ">=4.0" } }, - "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/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "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": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8.6" + "node": "*" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "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", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, - "engines": { - "node": ">=0.12" + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.0.0" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.4" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/es-errors": { + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "node_modules/es-iterator-helpers": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", - "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" - }, "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" + "@babel/highlight": "^7.10.4" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "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": { - "hasown": "^2.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "color-name": "~1.1.4" }, "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "node": ">=7.0.0" } }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/escape-string-regexp": { + "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { "node": ">=10" }, @@ -7534,245 +9318,169 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { + "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=6.0" + "node": ">=8" }, - "optionalDependencies": { - "source-map": "~0.6.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">= 4" } }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "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, - "bin": { - "eslint-config-prettier": "bin/cli.js" + "dependencies": { + "brace-expansion": "^1.1.7" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": "*" } }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "node_modules/eslint/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "node": ">=10" } }, - "node_modules/eslint-plugin-react": { - "version": "7.34.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", - "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlast": "^1.2.4", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.3", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.17", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7", - "object.hasown": "^1.1.3", - "object.values": "^1.1.7", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.10" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "node": ">=8" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.6.tgz", - "integrity": "sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "peerDependencies": { - "eslint": ">=7" + "engines": { + "node": ">=4" } }, - "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==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { - "esutils": "^2.0.2" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "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==", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, "engines": { - "node": "*" + "node": ">=4.0" } }, - "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", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "estraverse": "^5.2.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4.0" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, "engines": { - "node": ">=8.0.0" + "node": ">=4.0" } }, - "node_modules/eslint-scope/node_modules/estraverse": { + "node_modules/esri-loader": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.7.0.tgz", + "integrity": "sha512-cB1Sw9EQjtW4mtT7eFBjn/6VaaIWNTjmTd2asnnEyuZk1xVSFRMCfLZSBSjZM7ZarDcVu5WIjOP0t0MYVu4hVQ==", + "deprecated": "Use @arcgis/core instead." + }, + "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", @@ -7781,818 +9489,972 @@ "node": ">=4.0" } }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "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": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, + "node_modules/expression-eval": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/expression-eval/-/expression-eval-5.0.1.tgz", + "integrity": "sha512-7SL4miKp19lI834/F6y156xlNg+i9Q41tteuGNCq9C06S78f1bm3BXuvf0+QpQxv369Pv/P2R7Hb17hzxLpbDA==", + "deprecated": "The expression-eval npm package is no longer maintained. The package was originally published as part of a now-completed personal project, and I do not have incentives to continue maintenance.", "dependencies": { - "@babel/highlight": "^7.10.4" + "jsep": "^0.3.0" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "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==", "dependencies": { - "color-convert": "^2.0.1" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.10.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/fast-deep-equal": { + "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 }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "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==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@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" }, "engines": { - "node": ">=10" + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, + "node_modules/fast-xml-parser": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "bser": "2.1.1" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/fflate": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", + "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==" }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, "engines": { - "node": ">=10" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "peer": true + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, "engines": { - "node": ">= 4" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/focus-trap": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz", + "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==", + "peer": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "tabbable": "^6.2.0" } }, - "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, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "is-callable": "^1.1.3" } }, - "node_modules/eslint/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=6 <7 || >=8" } }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4.0.0" } }, - "node_modules/eslint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/gensync": { + "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==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/geojson-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/geojson-flatten/-/geojson-flatten-1.1.1.tgz", + "integrity": "sha512-k/6BCd0qAt7vdqdM1LkLfAy72EsLDy0laNwX0x2h49vfYCiQkRc4PSra8DNEdJ10EKRpwEvDXMb0dBknTJuWpQ==" + }, + "node_modules/geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" + }, + "node_modules/geolib": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/geolib/-/geolib-3.3.4.tgz", + "integrity": "sha512-EicrlLLL3S42gE9/wde+11uiaYAaeSVDwCUIv2uMIoRBfNJCn8EsSI+6nS3r4TCKDO6+RQNM9ayLq2at+oZQWQ==" + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, "engines": { - "node": ">=0.10" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "estraverse": "^5.2.0" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">=8.0.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, + "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==", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "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" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">= 0.8.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "is-glob": "^4.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 6" } }, - "node_modules/expression-eval": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/expression-eval/-/expression-eval-2.1.0.tgz", - "integrity": "sha512-FUJO/Akvl/JOWkvlqZaqbkhsEWlCJWDeZG4tzX96UH68D9FeRgYgtb55C2qtqbORC0Q6x5419EDjWu4IT9kQfg==", - "deprecated": "The expression-eval npm package is no longer maintained. The package was originally published as part of a now-completed personal project, and I do not have incentives to continue maintenance.", + "node_modules/glob/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": { - "jsep": "^0.3.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.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==", + "node_modules/glob/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": { - "is-extendable": "^0.1.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/fast-deep-equal": { - "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 - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "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==", - "dev": true, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "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" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "engines": { - "node": ">=8.6.0" + "node": ">=6" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fast-xml-parser": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz", - "integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - ], + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dependencies": { - "strnum": "^1.0.5" + "isexe": "^2.0.0" }, "bin": { - "fxparser": "src/cli/cli.js" + "which": "bin/which" } }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dependencies": { - "bser": "2.1.1" + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dependencies": { - "to-regex-range": "^5.0.1" + "get-intrinsic": "^1.1.3" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/find-root": { + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/grid-index": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "peer": true + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" }, - "node_modules/find-up": { + "node_modules/h3-js": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, + "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-4.1.0.tgz", + "integrity": "sha512-LQhmMl1dRQQjMXPzJc7MpZ/CqPOWWuAvVEoVJM9n/s7vHypj+c3Pd5rLQCkAsOgAoAYKbNCsYFE++LF7MvSfCQ==", "engines": { - "node": ">=8" + "node": ">=4", + "npm": ">=3", + "yarn": ">=1.3.0" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, + "node_modules/hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=0.8.0" } }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "es-define-property": "^1.0.0" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "has-symbols": "^1.0.3" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fs-extra/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, "engines": { - "node": ">= 4.0.0" + "node": ">= 0.4" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "node_modules/hat": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", + "integrity": "sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug==", + "engines": { + "node": "*" + } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "bin": { + "he": "bin/he" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "peer": true, + "dependencies": { + "react-is": "^16.7.0" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "peer": true + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "whatwg-encoding": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/gensync": { - "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==", + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, "engines": { - "node": ">=6.9.0" + "node": ">= 6" } }, - "node_modules/geojson-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/geojson-flatten/-/geojson-flatten-1.1.1.tgz", - "integrity": "sha512-k/6BCd0qAt7vdqdM1LkLfAy72EsLDy0laNwX0x2h49vfYCiQkRc4PSra8DNEdJ10EKRpwEvDXMb0dBknTJuWpQ==" - }, - "node_modules/geojson-vt": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", - "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" - }, - "node_modules/geolib": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/geolib/-/geolib-3.3.4.tgz", - "integrity": "sha512-EicrlLLL3S42gE9/wde+11uiaYAaeSVDwCUIv2uMIoRBfNJCn8EsSI+6nS3r4TCKDO6+RQNM9ayLq2at+oZQWQ==" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "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, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=10.17.0" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { - "node": ">=8.0.0" + "node": ">= 4" } }, - "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==", - "engines": { - "node": ">=10" + "node_modules/image-size": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", + "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", + "bin": { + "image-size": "bin/image-size.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "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==", "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": "*" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, "engines": { - "node": ">= 6" + "node": ">=0.8.19" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/glob/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/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/interactjs": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/interactjs/-/interactjs-1.10.27.tgz", + "integrity": "sha512-y/8RcCftGAF24gSp76X2JS3XpHiUvDQyhF8i7ujemBz77hwiHDuJzftHx7thY8cxGogwGiPJ+o97kWB6eAXnsA==", + "peer": true, "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" + "@interactjs/types": "1.10.27" } }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dependencies": { - "isexe": "^2.0.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">= 0.4" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, + "node_modules/intl-messageformat": { + "version": "10.5.12", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.12.tgz", + "integrity": "sha512-izl0uxhy/melhw8gP2r8pGiVieviZmM4v5Oqx3c1/R7g9cwER2smmGfSjcIsp8Y3Q53bfciL/gkxacJRx/dUvg==", + "peer": true, "dependencies": { - "define-properties": "^1.1.3" + "@formatjs/ecma402-abstract": "1.18.2", + "@formatjs/fast-memoize": "2.2.0", + "@formatjs/icu-messageformat-parser": "2.7.6", + "tslib": "^2.4.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -8601,107 +10463,61 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", "dev": true, "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dependencies": { - "get-intrinsic": "^1.1.3" + "has-bigints": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "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==" - }, - "node_modules/h3-js": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-3.7.2.tgz", - "integrity": "sha512-LPjlHSwB9zQZrMqKloCZmmmt3yZzIK7nqPcXqwU93zT3TtYG6jP4tZBzAPouxut7lLjdFbMQ75wRBiKfpsnY7w==", - "engines": { - "node": ">=4", - "npm": ">=3", - "yarn": ">=1.3.0" - } - }, - "node_modules/hammerjs": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", - "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", - "engines": { - "node": ">=0.8.0" - } - }, - "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==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dependencies": { - "es-define-property": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "engines": { "node": ">= 0.4" }, @@ -8709,25 +10525,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dependencies": { - "has-symbols": "^1.0.3" + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -8736,282 +10550,195 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dependencies": { - "function-bind": "^1.1.2" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hat": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", - "integrity": "sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug==", - "engines": { - "node": "*" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } + "node_modules/is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==" }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "peer": true, - "dependencies": { - "react-is": "^16.7.0" + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "peer": true - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", "dev": true, "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "call-bind": "^1.0.2" }, - "engines": { - "node": ">= 6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/human-signals": { + "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=6" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", - "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", - "bin": { - "image-size": "bin/image-size.js" + "dependencies": { + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" } }, - "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==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "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==", "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.12.0" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, + "node_modules/is-plain-object": { + "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==", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dev": true, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/internmap": { + "node_modules/is-set": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, "engines": { - "node": ">=12" - } - }, - "node_modules/intl-messageformat": { - "version": "10.5.11", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.11.tgz", - "integrity": "sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==", - "peer": true, - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.6", - "tslib": "^2.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7" }, "engines": { "node": ">= 0.4" @@ -9020,16 +10747,22 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9040,26 +10773,26 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-bigint": { + "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dependencies": { - "has-bigints": "^1.0.1" + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -9068,10 +10801,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "engines": { "node": ">= 0.4" @@ -9080,24 +10813,25 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dependencies": { - "hasown": "^2.0.0" + "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "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==", "dev": true, "dependencies": { - "is-typed-array": "^1.1.13" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -9106,364 +10840,484 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, - "node_modules/is-error": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", - "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==" + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, "engines": { - "node": ">=0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/jest-changed-files/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "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==", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, "dependencies": { - "isobject": "^3.0.1" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=7.0.0" } }, - "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==", + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.14" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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==", + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=7.0.0" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", + "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -9472,7 +11326,7 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { + "node_modules/jest-diff/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -9484,127 +11338,211 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest": { + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, "dependencies": { - "@jest/core": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "canvas": "^2.5.0" }, "peerDependenciesMeta": { - "node-notifier": { + "canvas": { "optional": true } } }, - "node_modules/jest-changed-files": { + "node_modules/jest-environment-node": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus": { + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -9619,7 +11557,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-circus/node_modules/chalk": { + "node_modules/jest-matcher-utils/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -9635,7 +11573,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-circus/node_modules/color-convert": { + "node_modules/jest-matcher-utils/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -9647,13 +11585,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-circus/node_modules/color-name": { + "node_modules/jest-matcher-utils/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-circus/node_modules/has-flag": { + "node_modules/jest-matcher-utils/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -9662,7 +11600,7 @@ "node": ">=8" } }, - "node_modules/jest-circus/node_modules/supports-color": { + "node_modules/jest-matcher-utils/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -9674,40 +11612,27 @@ "node": ">=8" } }, - "node_modules/jest-cli": { + "node_modules/jest-message-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", + "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } } }, - "node_modules/jest-cli/node_modules/ansi-styles": { + "node_modules/jest-message-util/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -9722,7 +11647,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-cli/node_modules/chalk": { + "node_modules/jest-message-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -9738,7 +11663,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-cli/node_modules/color-convert": { + "node_modules/jest-message-util/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -9750,13 +11675,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-cli/node_modules/color-name": { + "node_modules/jest-message-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-cli/node_modules/has-flag": { + "node_modules/jest-message-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -9765,7 +11690,7 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/supports-color": { + "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -9777,137 +11702,80 @@ "node": ">=8" } }, - "node_modules/jest-config": { + "node_modules/jest-mock": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" + "jest-util": "^29.7.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">=6" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "peerDependencies": { + "jest-resolve": "*" }, - "engines": { - "node": ">=7.0.0" + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff": { + "node_modules/jest-resolve-dependencies": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { + "node_modules/jest-resolve/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -9922,7 +11790,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-diff/node_modules/chalk": { + "node_modules/jest-resolve/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -9938,7 +11806,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-diff/node_modules/color-convert": { + "node_modules/jest-resolve/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -9950,13 +11818,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-diff/node_modules/color-name": { + "node_modules/jest-resolve/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-diff/node_modules/has-flag": { + "node_modules/jest-resolve/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -9965,7 +11833,7 @@ "node": ">=8" } }, - "node_modules/jest-diff/node_modules/supports-color": { + "node_modules/jest-resolve/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -9977,35 +11845,39 @@ "node": ">=8" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { + "node_modules/jest-runner": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", + "@types/node": "*", "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/ansi-styles": { + "node_modules/jest-runner/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -10020,7 +11892,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-each/node_modules/chalk": { + "node_modules/jest-runner/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -10036,7 +11908,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-each/node_modules/color-convert": { + "node_modules/jest-runner/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -10048,13 +11920,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-each/node_modules/color-name": { + "node_modules/jest-runner/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-each/node_modules/has-flag": { + "node_modules/jest-runner/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -10063,125 +11935,67 @@ "node": ">=8" } }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-runner/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-environment-jsdom": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0", - "jsdom": "^20.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "node": ">=8" } }, - "node_modules/jest-environment-node": { + "node_modules/jest-runtime": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "node_modules/jest-runtime/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -10196,7 +12010,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { + "node_modules/jest-runtime/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -10212,7 +12026,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { + "node_modules/jest-runtime/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -10224,13 +12038,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/color-name": { + "node_modules/jest-runtime/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { + "node_modules/jest-runtime/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -10239,7 +12053,7 @@ "node": ">=8" } }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { + "node_modules/jest-runtime/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -10251,27 +12065,38 @@ "node": ">=8" } }, - "node_modules/jest-message-util": { + "node_modules/jest-snapshot": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.12.13", + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { + "node_modules/jest-snapshot/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -10286,7 +12111,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/chalk": { + "node_modules/jest-snapshot/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -10302,7 +12127,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/color-convert": { + "node_modules/jest-snapshot/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -10314,13 +12139,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-message-util/node_modules/color-name": { + "node_modules/jest-snapshot/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-message-util/node_modules/has-flag": { + "node_modules/jest-snapshot/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -10329,7 +12154,19 @@ "node": ">=8" } }, - "node_modules/jest-message-util/node_modules/supports-color": { + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -10341,80 +12178,24 @@ "node": ">=8" } }, - "node_modules/jest-mock": { + "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "dependencies": { "chalk": "^4.0.0", + "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "picomatch": "^2.2.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { + "node_modules/jest-util/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -10429,7 +12210,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-resolve/node_modules/chalk": { + "node_modules/jest-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -10445,7 +12226,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-resolve/node_modules/color-convert": { + "node_modules/jest-util/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -10457,13 +12238,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-resolve/node_modules/color-name": { + "node_modules/jest-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-resolve/node_modules/has-flag": { + "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -10472,7 +12253,7 @@ "node": ">=8" } }, - "node_modules/jest-resolve/node_modules/supports-color": { + "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -10484,39 +12265,24 @@ "node": ">=8" } }, - "node_modules/jest-runner": { + "node_modules/jest-validate": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", - "@types/node": "*", + "camelcase": "^6.2.0", "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { + "node_modules/jest-validate/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -10531,7 +12297,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runner/node_modules/chalk": { + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -10547,7 +12325,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-runner/node_modules/color-convert": { + "node_modules/jest-validate/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -10559,13 +12337,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-runner/node_modules/color-name": { + "node_modules/jest-validate/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-runner/node_modules/has-flag": { + "node_modules/jest-validate/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -10574,7 +12352,7 @@ "node": ">=8" } }, - "node_modules/jest-runner/node_modules/supports-color": { + "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -10586,40 +12364,26 @@ "node": ">=8" } }, - "node_modules/jest-runtime": { + "node_modules/jest-watcher": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", + "emittery": "^0.13.1", "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "string-length": "^4.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime/node_modules/ansi-styles": { + "node_modules/jest-watcher/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -10634,7 +12398,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/chalk": { + "node_modules/jest-watcher/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -10650,7 +12414,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/color-convert": { + "node_modules/jest-watcher/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -10662,13 +12426,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-runtime/node_modules/color-name": { + "node_modules/jest-watcher/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-runtime/node_modules/has-flag": { + "node_modules/jest-watcher/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -10677,7 +12441,7 @@ "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/supports-color": { + "node_modules/jest-watcher/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -10689,38 +12453,46 @@ "node": ">=8" } }, - "node_modules/jest-snapshot": { + "node_modules/jest-worker": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", + "@types/node": "*", "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -10735,7 +12507,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-snapshot/node_modules/chalk": { + "node_modules/jest/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -10751,7 +12523,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-snapshot/node_modules/color-convert": { + "node_modules/jest/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -10763,1712 +12535,2037 @@ "node": ">=7.0.0" } }, - "node_modules/jest-snapshot/node_modules/color-name": { + "node_modules/jest/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-snapshot/node_modules/has-flag": { + "node_modules/jest/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=8" + } + }, + "node_modules/jest/node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/jsdom/node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=10" + "node": ">=0.4.0" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, + "node_modules/jsep": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-0.3.5.tgz", + "integrity": "sha512-AoRLBDc6JNnKjNcmonituEABS5bcfqDhQAWWXNTFrqu6nVXBpBAGfcoTGZMFlIrh9FjmE1CQyX9CTNwZrXMMDA==", "engines": { - "node": ">=10" + "node": ">= 6.0.0" } }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/json-buffer": { + "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 }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4.0" } }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" } }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "json-buffer": "3.0.1" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "node_modules/ktx-parse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.0.4.tgz", + "integrity": "sha512-LY3nrmfXl+wZZdPxgJ3ZmLvG+wkOZZP3/dr4RbQj1Pk3Qwz44esOOSFFVQJcNWpXAtiNIC66WgXufX/SYgYz6A==" + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/license-checker": { + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/license-checker/-/license-checker-25.0.1.tgz", + "integrity": "sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "chalk": "^2.4.1", + "debug": "^3.1.0", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "read-installed": "~4.0.3", + "semver": "^5.5.0", + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-satisfies": "^4.0.0", + "treeify": "^1.1.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bin": { + "license-checker": "bin/license-checker" } }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/license-checker/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "ms": "^2.1.1" } }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/license-checker/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=8" + "bin": { + "semver": "bin/semver" } }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "immediate": "~3.0.5" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/lit": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.2.0.tgz", + "integrity": "sha512-s6tI33Lf6VpDu7u4YqsSX78D28bYQulM+VAzsGch4fx2H0eLZnJsUBsPWmGYSGoKDNbjtRv02rio1o+UdPVwvw==", + "peer": true, "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@lit/reactive-element": "^2.0.4", + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" } }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/lit-element": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.1.0.tgz", + "integrity": "sha512-gSejRUQJuMQjV2Z59KAS/D4iElUhwKpIyJvZ9w+DIagIQjfJnhR20h2Q5ddpzXGS+fF0tMZ/xEYGMnKmaI/iww==", + "peer": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.2.0" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/lit-html": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.2.0.tgz", + "integrity": "sha512-pwT/HwoxqI9FggTrYVarkBKFN9MlTUpLrDHubTmW4SrkL3kkqW5gxwbxMMUnbbRHBC0WTZnYHcjDSCM559VyfA==", + "peer": true, + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "peer": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg==", "engines": { - "node": ">=8" + "node": ">=0.6" } }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "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": { - "has-flag": "^4.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "tslib": "^2.0.3" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "yallist": "^3.0.2" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "node_modules/luxon": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz", + "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", + "peer": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=12" } }, - "node_modules/jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/lz4js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/lz4js/-/lz4js-0.2.0.tgz", + "integrity": "sha512-gY2Ia9Lm7Ep8qMiuGRhvUq0Q7qUereeldZPP1PMEJxPtEWHJLqw9pgX68oHajBH0nzJK4MaZEA/YNV3jT8u8Bg==", + "optional": true + }, + "node_modules/lzo-wasm": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/lzo-wasm/-/lzo-wasm-0.0.4.tgz", + "integrity": "sha512-VKlnoJRFrB8SdJhlVKvW5vI1gGwcZ+mvChEXcSX6r2xDNc/Q2FD9esfBmGCuPZdrJ1feO+YcVFd2PTk0c137Gw==" + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "@jridgewell/sourcemap-codec": "^1.4.15" } }, - "node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jsdom/node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, "bin": { - "acorn": "bin/acorn" + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.4.0" + "node": ">=10" } }, - "node_modules/jsep": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-0.3.5.tgz", - "integrity": "sha512-AoRLBDc6JNnKjNcmonituEABS5bcfqDhQAWWXNTFrqu6nVXBpBAGfcoTGZMFlIrh9FjmE1CQyX9CTNwZrXMMDA==", - "engines": { - "node": ">= 6.0.0" - } + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" + "dependencies": { + "tmpl": "1.0.5" } }, - "node_modules/json-buffer": { - "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 + "node_modules/mapbox-gl": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.4.0.tgz", + "integrity": "sha512-QWgL28zg/zuIOHeF8DXPvHy1UHTgO5p4Oy6ifCAHwI9/hoI9/Fruya0yI4HkDtX1OgzTLO6SHO13A781BGJvyw==", + "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", + "cheap-ruler": "^3.0.1", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.4", + "fflate": "^0.8.1", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.4.3", + "grid-index": "^1.1.0", + "kdbush": "^4.0.1", + "lodash.clonedeep": "^4.5.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^2.0.0", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "serialize-to-js": "^3.1.2", + "supercluster": "^8.0.0", + "tiny-lru": "^11.2.6", + "tinyqueue": "^2.0.3", + "tweakpane": "^4.0.3", + "vt-pbf": "^3.1.3" + } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "node_modules/mapbox-gl/node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==" }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/mapbox-gl/node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "node_modules/maplibre-gl": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.5.0.tgz", + "integrity": "sha512-qOS1hn4d/pn2i0uva4S5Oz+fACzTkgBKq+NpwT/Tqzi4MSyzcWNtDELzLUSgWqHfNIkGCl5CZ/w7dtis+t4RCw==", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@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", + "@maplibre/maplibre-gl-style-spec": "^20.3.0", + "@types/geojson": "^7946.0.14", + "@types/geojson-vt": "3.2.5", + "@types/junit-report-builder": "^3.0.2", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "earcut": "^2.2.4", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.3", + "global-prefix": "^3.0.0", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^2.0.0", + "quickselect": "^2.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } }, - "node_modules/json-stringify-pretty-compact": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", - "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==" + "node_modules/maplibre-gl/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==" }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, + "node_modules/marked": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "peer": true, "bin": { - "json5": "lib/cli.js" + "marked": "bin/marked.js" }, "engines": { - "node": ">=6" + "node": ">= 18" } }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">= 8" } }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=4.0" + "node": ">=8.6" } }, - "node_modules/kdbush": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", - "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "dependencies": { - "json-buffer": "3.0.1" + "engines": { + "node": ">= 0.6" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/kolorist": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", - "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", - "dev": true - }, - "node_modules/ktx-parse": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.0.4.tgz", - "integrity": "sha512-LY3nrmfXl+wZZdPxgJ3ZmLvG+wkOZZP3/dr4RbQj1Pk3Qwz44esOOSFFVQJcNWpXAtiNIC66WgXufX/SYgYz6A==" - }, - "node_modules/lerc": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lerc/-/lerc-4.0.4.tgz", - "integrity": "sha512-nHZH+ffiGPkgKUQtiZrljGUGV2GddvPcVTV5E345ZFncbKz+/rBIjDPrSxkiqW0EAtg1Jw7qAgRdaCwV+95Fow==" - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mjolnir.js": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-2.7.3.tgz", + "integrity": "sha512-Z5z/+FzZqOSO3juSVKV3zcm4R2eAlWwlKMcqHmyFEJAaLILNcDKnIbnb4/kbcGyIuhtdWrzu8WOIR7uM6I34aw==", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "@types/hammerjs": "^2.0.41", + "hammerjs": "^2.0.8" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 4", + "npm": ">= 3" } }, - "node_modules/license-checker": { - "version": "25.0.1", - "resolved": "https://registry.npmjs.org/license-checker/-/license-checker-25.0.1.tgz", - "integrity": "sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g==", + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "chalk": "^2.4.1", - "debug": "^3.1.0", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "read-installed": "~4.0.3", - "semver": "^5.5.0", - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-satisfies": "^4.0.0", - "treeify": "^1.1.0" + "minimist": "^1.2.6" }, "bin": { - "license-checker": "bin/license-checker" + "mkdirp": "bin/cmd.js" } }, - "node_modules/license-checker/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" } }, - "node_modules/license-checker/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/mlly/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { - "semver": "bin/semver" + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, + "node_modules/moment-timezone": { + "version": "0.5.45", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz", + "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==", "dependencies": { - "p-locate": "^4.1.0" + "moment": "^2.29.4" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", "dev": true }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "node_modules/long": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", - "integrity": "sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg==", - "engines": { - "node": ">=0.6" - } + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true }, - "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==", + "node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "abbrev": "1", + "osenv": "^0.1.4" }, "bin": { - "loose-envify": "cli.js" + "nopt": "bin/nopt.js" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "dependencies": { - "yallist": "^3.0.2" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "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, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "path-key": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "semver": "^7.5.3" + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/make-dir/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "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==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/make-dir/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", "dev": true, "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/mapbox-gl": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.2.0.tgz", - "integrity": "sha512-v8S7x+wTr35kJ9nqzgn/VPiSFZxBkyQhwCk9bdyiFHVwCukNGG3LXt03FoaHHTsOuB9JWenWE96k0Uw+HGMZ8w==", - "dependencies": { - "@mapbox/geojson-rewind": "^0.5.2", - "@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", - "cheap-ruler": "^3.0.1", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.4", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.4.3", - "grid-index": "^1.1.0", - "kdbush": "^4.0.1", - "lodash.clonedeep": "^4.5.0", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^2.0.0", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "serialize-to-js": "^3.1.2", - "supercluster": "^8.0.0", - "tinyqueue": "^2.0.3", - "tweakpane": "^4.0.3", - "vt-pbf": "^3.1.3" + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/maplibre-gl": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.1.2.tgz", - "integrity": "sha512-98T+3BesL4w/N39q/rgs9q6HzHLG6pgbS9UaTqg6fMISfzy2WGKokjK205ENFDDmEljj54/LTfdXgqg2XfYU4A==", + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, "dependencies": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@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", - "@maplibre/maplibre-gl-style-spec": "^20.1.1", - "@types/geojson": "^7946.0.14", - "@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", - "earcut": "^2.2.4", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.4.3", - "global-prefix": "^3.0.0", - "kdbush": "^4.0.2", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^2.0.0", - "quickselect": "^2.0.0", - "supercluster": "^8.0.1", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=16.14.0", - "npm": ">=8.1.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/math.gl": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/math.gl/-/math.gl-3.6.3.tgz", - "integrity": "sha512-Yq9CyECvSDox9+5ETi2+x1bGTY5WvGUGL3rJfC4KPoCZAM51MGfrCm6rIn4yOJUVfMPs2a5RwMD+yGS/n1g3gg==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "dependencies": { - "@math.gl/core": "3.6.3" + "wrappy": "1" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, "engines": { - "node": ">= 8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { - "node": ">=8.6" + "node": ">= 0.8.0" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, - "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "p-try": "^2.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mjolnir.js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-2.7.1.tgz", - "integrity": "sha512-72BeUWgTv2cj5aZQKpwL8caNUFhXZ9bDm1hxpNj70XJQ62IBnTZmtv/WPxJvtaVNhzNo+D2U8O6ryNI0zImYcw==", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, "dependencies": { - "@types/hammerjs": "^2.0.41", - "hammerjs": "^2.0.8" + "p-limit": "^2.2.0" }, "engines": { - "node": ">= 4", - "npm": ">= 3" + "node": ">=8" } }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/moment-timezone": { - "version": "0.5.45", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz", - "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==", + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dependencies": { - "moment": "^2.29.4" + "callsites": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/muggle-string": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", - "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", - "dev": true - }, - "node_modules/murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" + "entities": "^4.4.0" }, - "bin": { - "nopt": "bin/nopt.js" + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "engines": { + "node": ">=8" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "bin": { - "semver": "bin/semver" + "engines": { + "node": ">=0.10.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==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "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, - "dependencies": { - "path-key": "^3.0.0" - }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "engines": { "node": ">=8" } }, - "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "engines": { + "node": ">=8.6" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">= 6" } }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "find-up": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "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==", + "node_modules/pkg-types": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, + "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==", "engines": { "node": ">= 0.4" } }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { - "node": ">= 0.4" - }, + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + }, + "node_modules/preact": { + "version": "10.24.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.1.tgz", + "integrity": "sha512-PnBAwFI3Yjxxcxw75n6VId/5TFxNW/81zexzWD9jn1+eSrOP84NdsS38H5IkF/UH3frqRPT+MvuCoVHjTDTnDw==", "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "node_modules/object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8.0" } }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">= 0.4" + "node": ">=10.13.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "dependencies": { - "wrappy": "1" + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/quadbin": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/quadbin/-/quadbin-0.2.0.tgz", + "integrity": "sha512-bPgyRreIsFVwKxHRY+GFdaXatNmfQ1LzaQZj7aKEz07/gL893uWREhmRZpG6UuvlGHdTOPw/NGvqLsJica2goA==", "dependencies": { - "p-limit": "^2.2.0" + "@mapbox/tile-cover": "3.0.1" }, "engines": { - "node": ">=8" + "node": ">=14" } }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "node_modules/react": { + "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==", + "peer": true, "dependencies": { - "p-try": "^2.0.0" + "loose-envify": "^1.1.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/react-intl": { + "version": "6.6.6", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.6.6.tgz", + "integrity": "sha512-dKXQNUrhZTlCp8uelYW8PHiM4saNKyLmHCfsJYWK0N/kZ/Ien35wjPHB8x9yQcTJbeN/hBOmb4x16iKUrdL9MA==", + "peer": true, "dependencies": { - "callsites": "^3.0.0" + "@formatjs/ecma402-abstract": "1.18.2", + "@formatjs/icu-messageformat-parser": "2.7.6", + "@formatjs/intl": "2.10.2", + "@formatjs/intl-displaynames": "6.6.6", + "@formatjs/intl-listformat": "7.5.5", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/react": "16 || 17 || 18", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "10.5.12", + "tslib": "^2.4.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "react": "^16.6.0 || 17 || 18", + "typescript": "^4.7 || 5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/react-map-gl": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-7.1.7.tgz", + "integrity": "sha512-mwjc0obkBJOXCcoXQr3VoLqmqwo9vS4bXfbGsdxXzEgVCv/PM0v+1QggL7W0d/ccIy+VCjbXNlGij+PENz6VNg==", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "@maplibre/maplibre-gl-style-spec": "^19.2.1", + "@types/mapbox-gl": ">=1.0.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "mapbox-gl": ">=1.13.0", + "maplibre-gl": ">=1.13.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "mapbox-gl": { + "optional": true + }, + "maplibre-gl": { + "optional": true + } } }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, + "node_modules/react-map-gl/node_modules/@maplibre/maplibre-gl-style-spec": { + "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==", "dependencies": { - "entities": "^4.4.0" + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^3.0.0", + "minimist": "^1.2.8", + "rw": "^1.3.3", + "sort-object": "^3.0.3" }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" } }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true + "node_modules/react-map-gl/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==" }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/react-map-gl/node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/read-installed": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", + "integrity": "sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "debuglog": "^1.0.1", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "node_modules/read-installed/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" } }, - "node_modules/pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/picocolors": { + "node_modules/readable-stream/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "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==", + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, - "engines": { - "node": ">= 6" + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "regenerate": "^1.4.2" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=4" } }, - "node_modules/potpack": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", - "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + "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==" }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, "engines": { - "node": ">=10.13.0" + "node": ">=8" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { - "fast-diff": "^1.1.2" + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=4" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "jsesc": "~0.5.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "bin": { + "jsesc": "bin/jsesc" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">= 6" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { - "node": ">=6" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/quadbin": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/quadbin/-/quadbin-0.1.9.tgz", - "integrity": "sha512-5V6m6+cL/6+uBl3hYL+CWF06rRvlHkIepYKGQjTLYaHhu9InPppql0+0ROiCaOQdz8gPNlgge3glk5Qg1mWOYw==", + "node_modules/rollup": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", + "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", + "dev": true, "dependencies": { - "@mapbox/tile-cover": "3.0.1" + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.17.2", + "@rollup/rollup-android-arm64": "4.17.2", + "@rollup/rollup-darwin-arm64": "4.17.2", + "@rollup/rollup-darwin-x64": "4.17.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", + "@rollup/rollup-linux-arm-musleabihf": "4.17.2", + "@rollup/rollup-linux-arm64-gnu": "4.17.2", + "@rollup/rollup-linux-arm64-musl": "4.17.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", + "@rollup/rollup-linux-riscv64-gnu": "4.17.2", + "@rollup/rollup-linux-s390x-gnu": "4.17.2", + "@rollup/rollup-linux-x64-gnu": "4.17.2", + "@rollup/rollup-linux-x64-musl": "4.17.2", + "@rollup/rollup-win32-arm64-msvc": "4.17.2", + "@rollup/rollup-win32-ia32-msvc": "4.17.2", + "@rollup/rollup-win32-x64-msvc": "4.17.2", + "fsevents": "~2.3.2" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -12483,206 +14580,177 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } }, - "node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + "node_modules/rw": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/rw/-/rw-0.1.4.tgz", + "integrity": "sha512-vSj3D96kMcjNyqPcp65wBRIDImGSrUuMxngNNxvw8MQaO+aQ6llzRPH7XcJy5zrpb3wU++045+Uz/IDIM684iw==" }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "peer": true, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dependencies": { - "loose-envify": "^1.1.0" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "node": ">=0.4" }, - "peerDependencies": { - "react": "^18.2.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/react-intl": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.6.4.tgz", - "integrity": "sha512-bD+7hVTX3zBFI3z/ffIVZrNkCVK0/sQguQ/DqW5uZ6JFWsuiwOieVcLnmtFiUgMQZLdmwNl2Ur5c10RaO7NWBQ==", - "peer": true, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/icu-messageformat-parser": "2.7.6", - "@formatjs/intl": "2.10.1", - "@formatjs/intl-displaynames": "6.6.6", - "@formatjs/intl-listformat": "7.5.5", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/react": "16 || 17 || 18", - "hoist-non-react-statics": "^3.3.2", - "intl-messageformat": "10.5.11", - "tslib": "^2.4.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" }, - "peerDependencies": { - "react": "^16.6.0 || 17 || 18", - "typescript": "^4.7 || 5" + "engines": { + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/react-map-gl": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-7.1.7.tgz", - "integrity": "sha512-mwjc0obkBJOXCcoXQr3VoLqmqwo9vS4bXfbGsdxXzEgVCv/PM0v+1QggL7W0d/ccIy+VCjbXNlGij+PENz6VNg==", + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, "dependencies": { - "@maplibre/maplibre-gl-style-spec": "^19.2.1", - "@types/mapbox-gl": ">=1.0.0" - }, - "peerDependencies": { - "mapbox-gl": ">=1.13.0", - "maplibre-gl": ">=1.13.0", - "react": ">=16.3.0", - "react-dom": ">=16.3.0" + "xmlchars": "^2.2.0" }, - "peerDependenciesMeta": { - "mapbox-gl": { - "optional": true - }, - "maplibre-gl": { - "optional": true - } + "engines": { + "node": ">=v12.22.7" } }, - "node_modules/react-map-gl/node_modules/@maplibre/maplibre-gl-style-spec": { - "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==", + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "peer": true, "dependencies": { - "@mapbox/jsonlint-lines-primitives": "~2.0.2", - "@mapbox/unitbezier": "^0.0.1", - "json-stringify-pretty-compact": "^3.0.0", - "minimist": "^1.2.8", - "rw": "^1.3.3", - "sort-object": "^3.0.3" - }, + "loose-envify": "^1.1.0" + } + }, + "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, "bin": { - "gl-style-format": "dist/gl-style-format.mjs", - "gl-style-migrate": "dist/gl-style-migrate.mjs", - "gl-style-validate": "dist/gl-style-validate.mjs" + "semver": "bin/semver.js" } }, - "node_modules/react-map-gl/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==" + "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==", + "engines": { + "node": ">=4.0.0" + } }, - "node_modules/react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", - "dev": true, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "dev": true, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" + "engines": { + "node": ">= 0.4" } }, - "node_modules/read-installed": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", - "integrity": "sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ==", - "dev": true, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dependencies": { - "debuglog": "^1.0.1", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, - "optionalDependencies": { - "graceful-fs": "^4.1.2" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/read-installed/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, - "node_modules/read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "deprecated": "This functionality has been moved to @npmcli/fs", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" + "engines": { + "node": ">=8" } }, - "node_modules/reflect.getprototypeof": { + "node_modules/side-channel": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", - "dev": true, + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "object-inspect": "^1.13.1" }, "engines": { "node": ">= 0.4" @@ -12691,427 +14759,502 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "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/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "peer": true, "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" + "is-arrayish": "^0.3.1" } }, - "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==" + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "peer": true }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" + "engines": { + "node": ">=8" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" + "engines": { + "node": "*" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, + "node_modules/snappyjs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/snappyjs/-/snappyjs-0.6.1.tgz", + "integrity": "sha512-YIK6I2lsH072UE0aOFxxY1dPDCS43I5ktqHpeAsuLNYWkE5pGxRGWfDM4/vSUfNzXjC1Ivzt3qx31PCLmc9yqg==" + }, + "node_modules/sort-asc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", + "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", "engines": { "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, + "node_modules/sort-desc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", + "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", "engines": { "node": ">=0.10.0" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "node_modules/sort-object": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", + "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "bytewise": "^1.1.0", + "get-value": "^2.0.2", + "is-extendable": "^0.1.1", + "sort-asc": "^0.2.0", + "sort-desc": "^0.2.0", + "union-value": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/sortablejs": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.3.tgz", + "integrity": "sha512-zdK3/kwwAK1cJgy1rwl1YtNTbRmc8qW/+vgXf75A7NHag5of4pyI6uK86ktmQETyWRH7IGaE73uZOOBcGxgqZg==", + "peer": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "node_modules/spdx-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "dev": true, "dependencies": { - "protocol-buffers-schema": "^3.3.1" + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/spdx-ranges": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", + "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", + "dev": true + }, + "node_modules/spdx-satisfies": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.1.tgz", + "integrity": "sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA==", "dev": true, "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, - "node_modules/rollup": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.2.tgz", - "integrity": "sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==", - "dev": true, + "node_modules/split-string": { + "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==", "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" + "extend-shallow": "^3.0.0" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.2", - "@rollup/rollup-android-arm64": "4.13.2", - "@rollup/rollup-darwin-arm64": "4.13.2", - "@rollup/rollup-darwin-x64": "4.13.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.2", - "@rollup/rollup-linux-arm64-gnu": "4.13.2", - "@rollup/rollup-linux-arm64-musl": "4.13.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.13.2", - "@rollup/rollup-linux-riscv64-gnu": "4.13.2", - "@rollup/rollup-linux-s390x-gnu": "4.13.2", - "@rollup/rollup-linux-x64-gnu": "4.13.2", - "@rollup/rollup-linux-x64-musl": "4.13.2", - "@rollup/rollup-win32-arm64-msvc": "4.13.2", - "@rollup/rollup-win32-ia32-msvc": "4.13.2", - "@rollup/rollup-win32-x64-msvc": "4.13.2", - "fsevents": "~2.3.2" + "node": ">=0.10.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dependencies": { - "queue-microtask": "^1.2.2" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dev": true, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/safe-regex-test": { + "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "escape-string-regexp": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, "engines": { - "node": ">=v12.22.7" + "node": ">=8" } }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "peer": true, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { - "loose-envify": "^1.1.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=0.6.19" } }, - "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==", + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=4.0.0" + "node": ">=10" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "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": { - "define-data-property": "^1.1.4", + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", + "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "kdbush": "^4.0.2" + } + }, + "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==", + "dependencies": { + "has-flag": "^3.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "engines": { "node": ">= 0.4" }, @@ -13119,329 +15262,417 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", "dev": true }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "peer": true + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">=8" + "node": ">=10.0.0" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/table/node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/test-exclude/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": { - "color-name": "~1.1.4" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/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": ">=7.0.0" + "node": "*" } }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", - "dev": true, - "engines": { - "node": "*" + "node_modules/texture-compressor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/texture-compressor/-/texture-compressor-1.0.2.tgz", + "integrity": "sha512-dStVgoaQ11mA5htJ+RzZ51ZxIZqNOgWKAIvtjLrW1AliQQLCmrDqNzQZ8Jh91YealQ95DXt4MEduLzJmbs6lig==", + "dependencies": { + "argparse": "^1.0.10", + "image-size": "^0.7.4" + }, + "bin": { + "texture-compressor": "bin/texture-compressor.js" } }, - "node_modules/sort-asc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", - "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", - "engines": { - "node": ">=0.10.0" - } + "node_modules/tilebelt": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tilebelt/-/tilebelt-1.0.1.tgz", + "integrity": "sha512-cxHzpa5JgsugY9NUVRH43gPaGJw/29LecAn4X7UGOP64+kB8pU4VQ3bIhSyfb5Mk4jDxwl3yk330L/EIhbJ5aw==", + "deprecated": "This module is now under the @mapbox namespace: install @mapbox/tilebelt instead" }, - "node_modules/sort-desc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", - "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", + "node_modules/timezone-groups": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/timezone-groups/-/timezone-groups-0.9.1.tgz", + "integrity": "sha512-1+GERLQpmebtCpkroy+AAfN/PZu8drrp4VAX/KSFBWvoaAT+5ANZIMTSn8CDW2uwfrpo1SaxIJ6MqdlACYbq/g==", + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=18.12.0" } }, - "node_modules/sort-object": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", - "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", - "dependencies": { - "bytewise": "^1.1.0", - "get-value": "^2.0.2", - "is-extendable": "^0.1.1", - "sort-asc": "^0.2.0", - "sort-desc": "^0.2.0", - "union-value": "^1.0.1" - }, + "node_modules/tiny-lru": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.2.6.tgz", + "integrity": "sha512-0PU3c9PjMnltZaFo2sGYv/nnJsMjG0Cxx8X6FXHPPGjFyoo1SJDxvUXW1207rdiSxYizf31roo+GrkIByQeZoA==", "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "peer": true, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0" } }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/spdx-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", - "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", - "dev": true, + "node_modules/traverse": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.9.tgz", + "integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==", "dependencies": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "gopd": "^1.0.1", + "typedarray.prototype.slice": "^1.0.3", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "node_modules/treeify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">=0.6" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", - "dev": true - }, - "node_modules/spdx-ranges": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", - "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", - "dev": true - }, - "node_modules/spdx-satisfies": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.1.tgz", - "integrity": "sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA==", + "node_modules/ts-jest": { + "version": "29.1.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.5.tgz", + "integrity": "sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==", "dev": true, "dependencies": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } } }, - "node_modules/split-string": { - "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==", - "dependencies": { - "extend-shallow": "^3.0.0" + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" }, - "engines": { - "node": ">=0.10.0" + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" + "node_modules/ts-node/node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" + "node_modules/tweakpane": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/tweakpane/-/tweakpane-4.0.3.tgz", + "integrity": "sha512-BlcWOAe8oe4c+k9pmLBARGdWB6MVZMszayekkixQXTgkxTaYoTUpHpwVEp+3HkoamZkomodpbBf0CkguIHTgLg==", + "funding": { + "url": "https://github.com/sponsors/cocopon" } }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "engines": { - "node": ">=0.6.19" + "node": ">=4" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", - "dev": true, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dependencies": { "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", + "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", - "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -13450,16 +15681,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dev": true, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dependencies": { + "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -13468,29 +15700,36 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dev": true, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dependencies": { "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, + "node_modules/typedarray.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", + "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-offset": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -13499,1348 +15738,1291 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.17" } }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" - }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" - }, - "node_modules/supercluster": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", - "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "node_modules/typewise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", + "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", "dependencies": { - "kdbush": "^4.0.2" + "typewise-core": "^1.2.0" } }, - "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==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } + "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==" }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, - "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, "engines": { - "node": ">=10.0.0" + "node": ">=4" } }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=4" } }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=4" } }, - "node_modules/test-exclude/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, + "node_modules/union-value": { + "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==", "dependencies": { - "brace-expansion": "^1.1.7" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/text-table": { + "node_modules/universalify": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "node_modules/texture-compressor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/texture-compressor/-/texture-compressor-1.0.2.tgz", - "integrity": "sha512-dStVgoaQ11mA5htJ+RzZ51ZxIZqNOgWKAIvtjLrW1AliQQLCmrDqNzQZ8Jh91YealQ95DXt4MEduLzJmbs6lig==", + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "argparse": "^1.0.10", - "image-size": "^0.7.4" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { - "texture-compressor": "bin/texture-compressor.js" - } - }, - "node_modules/tilebelt": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tilebelt/-/tilebelt-1.0.1.tgz", - "integrity": "sha512-cxHzpa5JgsugY9NUVRH43gPaGJw/29LecAn4X7UGOP64+kB8pU4VQ3bIhSyfb5Mk4jDxwl3yk330L/EIhbJ5aw==", - "deprecated": "This module is now under the @mapbox namespace: install @mapbox/tilebelt instead" - }, - "node_modules/tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "punycode": "^2.1.0" } }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" } }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util-extend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "dependencies": { - "punycode": "^2.1.1" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" }, "engines": { - "node": ">=12" - } - }, - "node_modules/traverse": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", - "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.12.0" } }, - "node_modules/treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "engines": { - "node": ">=0.6" + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", "dev": true, "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" + "node": ">= 0.10" } }, - "node_modules/ts-jest": { - "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "node_modules/vite": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", "dev": true, "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" }, "bin": { - "ts-jest": "cli.js" + "vite": "bin/vite.js" }, "engines": { - "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" }, "peerDependenciesMeta": { - "@babel/core": { + "@types/node": { "optional": true }, - "@jest/types": { + "less": { "optional": true }, - "babel-jest": { + "lightningcss": { "optional": true }, - "esbuild": { + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { "optional": true } } }, - "node_modules/ts-jest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/vite-plugin-dts": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.9.1.tgz", + "integrity": "sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@microsoft/api-extractor": "7.43.0", + "@rollup/pluginutils": "^5.1.0", + "@vue/language-core": "^1.8.27", + "debug": "^4.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.8", + "vue-tsc": "^1.8.27" }, "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "typescript": "*", + "vite": "*" }, "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { + "vite": { "optional": true } } }, - "node_modules/ts-node/node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "node_modules/vite-plugin-eslint": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz", + "integrity": "sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@rollup/pluginutils": "^4.2.1", + "@types/eslint": "^8.4.5", + "rollup": "^2.77.2" }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "peer": true - }, - "node_modules/tweakpane": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/tweakpane/-/tweakpane-4.0.3.tgz", - "integrity": "sha512-BlcWOAe8oe4c+k9pmLBARGdWB6MVZMszayekkixQXTgkxTaYoTUpHpwVEp+3HkoamZkomodpbBf0CkguIHTgLg==", - "funding": { - "url": "https://github.com/sponsors/cocopon" + "peerDependencies": { + "eslint": ">=7", + "vite": ">=2" } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/vite-plugin-eslint/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, "dependencies": { - "prelude-ls": "^1.2.1" + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 8.0.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/vite-plugin-eslint/node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/vite-plugin-eslint/node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, "engines": { - "node": ">=10" + "node": ">=10.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "node_modules/vite-plugin-externalize-deps": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/vite-plugin-externalize-deps/-/vite-plugin-externalize-deps-0.8.0.tgz", + "integrity": "sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "funding": { + "url": "https://github.com/sponsors/voracious" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "node_modules/vite-plugin-svgr": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.2.0.tgz", + "integrity": "sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" + "@rollup/pluginutils": "^5.0.5", + "@svgr/core": "^8.1.0", + "@svgr/plugin-jsx": "^8.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "vite": "^2.6.0 || 3 || 4 || 5" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dev": true, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" } }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" }, - "engines": { - "node": ">= 0.4" + "bin": { + "vue-tsc": "bin/vue-tsc.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "typescript": "*" } }, - "node_modules/typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "devOptional": true, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "semver": "bin/semver.js" }, "engines": { - "node": ">=14.17" + "node": ">=10" } }, - "node_modules/typewise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", - "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, "dependencies": { - "typewise-core": "^1.2.0" + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" } }, - "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==" - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "makeerror": "1.0.12" } }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/unicode-match-property-ecmascript": { + "node_modules/wgs84": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/wgs84/-/wgs84-0.0.0.tgz", + "integrity": "sha512-ANHlY4Rb5kHw40D0NJ6moaVfOCMrp9Gpd1R/AIQYg2ko4/jzcJ+TVXYYF6kXJqQwITvEZP4yEthjM7U6rYlljQ==" + }, + "node_modules/wgsl_reflect": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.0.12.tgz", + "integrity": "sha512-hqORu1l+ed+tylMmcP/G78+rulEpq7TMKIxX/ktEgQzyYXcZL3FMkL8/c7xLMziy6+MXfjlOFWXqIal4KHilzg==" + }, + "node_modules/whatwg-encoding": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" + "iconv-lite": "0.6.3" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "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==", "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" + "node": ">=12" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "isexe": "^2.0.0" }, "bin": { - "update-browserslist-db": "cli.js" + "node-which": "bin/node-which" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">= 8" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dependencies": { - "punycode": "^2.1.0" + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", "dev": true, "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", - "dev": true - }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" }, "engines": { - "node": ">=10.12.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/vite": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.7.tgz", - "integrity": "sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - }, - "bin": { - "vite": "bin/vite.js" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": ">=10" }, "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/vite-plugin-dts": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.8.1.tgz", - "integrity": "sha512-zEYyQxH7lKto1VTKZHF3ZZeOPkkJgnMrePY4VxDHfDSvDjmYMMfWjZxYmNwW8QxbaItWJQhhXY+geAbyNphI7g==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@microsoft/api-extractor": "7.43.0", - "@rollup/pluginutils": "^5.1.0", - "@vue/language-core": "^1.8.27", - "debug": "^4.3.4", - "kolorist": "^1.8.0", - "magic-string": "^0.30.8", - "vue-tsc": "^1.8.27" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "typescript": "*", - "vite": "*" + "node": ">=8" }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/vite-plugin-eslint": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz", - "integrity": "sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^4.2.1", - "@types/eslint": "^8.4.5", - "rollup": "^2.77.2" + "color-name": "~1.1.4" }, - "peerDependencies": { - "eslint": ">=7", - "vite": ">=2" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/vite-plugin-eslint/node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" }, "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/vite-plugin-eslint/node_modules/@types/eslint": { - "version": "8.56.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.7.tgz", - "integrity": "sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/vite-plugin-eslint/node_modules/rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, "engines": { "node": ">=10.0.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/vite-plugin-externalize-deps": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/vite-plugin-externalize-deps/-/vite-plugin-externalize-deps-0.8.0.tgz", - "integrity": "sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/voracious" - }, "peerDependencies": { - "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/vt-pbf": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", - "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", - "dependencies": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.2.1" + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/vue-template-compiler": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", - "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" + "engines": { + "node": ">=12" } }, - "node_modules/vue-tsc": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", - "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", - "dev": true, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xss": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.13.tgz", + "integrity": "sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==", + "peer": true, "dependencies": { - "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.27", - "semver": "^7.5.4" + "commander": "^2.20.3", + "cssfilter": "0.0.10" }, "bin": { - "vue-tsc": "bin/vue-tsc.js" + "xss": "bin/xss" }, - "peerDependencies": { - "typescript": "*" + "engines": { + "node": ">= 0.10.0" } }, - "node_modules/vue-tsc/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/xss/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "peer": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "engines": { - "node": ">=10" + "node": ">=0.4" } }, - "node_modules/vue-tsc/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, "engines": { "node": ">=10" } }, - "node_modules/vue-tsc/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "xml-name-validator": "^4.0.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=14" + "node": ">=12" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "dependencies": { - "makeerror": "1.0.12" + "engines": { + "node": ">=12" } }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/wgs84": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/wgs84/-/wgs84-0.0.0.tgz", - "integrity": "sha512-ANHlY4Rb5kHw40D0NJ6moaVfOCMrp9Gpd1R/AIQYg2ko4/jzcJ+TVXYYF6kXJqQwITvEZP4yEthjM7U6rYlljQ==" + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "node_modules/z-schema": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", + "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", "dev": true, "dependencies": { - "iconv-lite": "0.6.3" + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" + }, + "bin": { + "z-schema": "bin/z-schema" }, "engines": { - "node": ">=12" + "node": ">=8.0.0" + }, + "optionalDependencies": { + "commander": "^9.4.1" } }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/zstd-codec": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/zstd-codec/-/zstd-codec-0.1.5.tgz", + "integrity": "sha512-v3fyjpK8S/dpY/X5WxqTK3IoCnp/ZOLxn144GZVlNUjtwAchzrVo03h+oMATFhCIiJ5KTr4V3vDQQYz4RU684g==", + "optional": true + }, + "packages/network-map-layers": { + "name": "@powsybl/network-map-layers", + "version": "0.6.1", + "license": "MPL-2.0", + "devDependencies": { + "typescript": "5.5.3", + "vite": "^5.3.3", + "vite-plugin-dts": "^3.9.1", + "vite-plugin-externalize-deps": "^0.8.0", + "vite-plugin-svgr": "^4.2.0" + }, + "peerDependencies": { + "@deck.gl/core": "^9.0.0", + "@deck.gl/extensions": "^9.0.0", + "@deck.gl/layers": "^9.0.0", + "@luma.gl/constants": "^9.0.0", + "@luma.gl/core": "^9.0.0", + "@luma.gl/engine": "^9.0.0" + } + }, + "packages/network-map-layers/node_modules/@microsoft/api-extractor": { + "version": "7.47.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.47.2.tgz", + "integrity": "sha512-YWE2HGrSTZaPPSr7xiNizSuViZpC7Jsa7+DwRW5rYVgrMXNbfX/PpBOoSkl5uaz9I2sv2JKLJ75kVNt64BvS3g==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "@microsoft/api-extractor-model": "7.29.3", + "@microsoft/tsdoc": "~0.15.0", + "@microsoft/tsdoc-config": "~0.17.0", + "@rushstack/node-core-library": "5.5.0", + "@rushstack/rig-package": "0.5.2", + "@rushstack/terminal": "0.13.2", + "@rushstack/ts-command-line": "4.22.2", + "lodash": "~4.17.15", + "minimatch": "~3.0.3", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "source-map": "~0.6.1", + "typescript": "5.4.2" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "api-extractor": "bin/api-extractor" } }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "packages/network-map-layers/node_modules/@microsoft/api-extractor-model": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.29.3.tgz", + "integrity": "sha512-kEWjLr2ygL3ku9EGyjeTnL2S5IxyH9NaF1k1UoI0Nzwr4xEJBSWCVsWuF2+0lPUrRPA6mTY95fR264SJ5ETKQA==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "@microsoft/tsdoc": "~0.15.0", + "@microsoft/tsdoc-config": "~0.17.0", + "@rushstack/node-core-library": "5.5.0" } }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "packages/network-map-layers/node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", "dev": true, "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=12" + "node": "*" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "packages/network-map-layers/node_modules/@microsoft/tsdoc": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", + "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", + "dev": true + }, + "packages/network-map-layers/node_modules/@microsoft/tsdoc-config": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", + "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "@microsoft/tsdoc": "0.15.0", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "packages/network-map-layers/node_modules/@rushstack/node-core-library": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.5.0.tgz", + "integrity": "sha512-Cl3MYQ74Je5Y/EngMxcA3SpHjGZ/022nKbAO1aycGfQ+7eKyNCBu0oywj5B1f367GCzuHBgy+3BlVLKysHkXZw==", + "dev": true, + "dependencies": { + "ajv": "~8.13.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4" }, - "bin": { - "node-which": "bin/node-which" + "peerDependencies": { + "@types/node": "*" }, - "engines": { - "node": ">= 8" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "packages/network-map-layers/node_modules/@rushstack/node-core-library/node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "packages/network-map-layers/node_modules/@rushstack/terminal": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.13.2.tgz", + "integrity": "sha512-t8i0PsGvBHmFBY8pryO3badqFlxQsm2rw3KYrzjcmVkG/WGklKg1qVkr9beAS1Oe8XWDRgj6SkoHkpNjs7aaNw==", "dev": true, "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "@rushstack/node-core-library": "5.5.0", + "supports-color": "~8.1.1" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "@types/node": "*" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "packages/network-map-layers/node_modules/@rushstack/ts-command-line": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.22.2.tgz", + "integrity": "sha512-xkvrGd6D9dPlI3I401Thc640WNsEPB1sGEmy12a2VJaPQPwhE6Ik0gEVPZJ/2G1w213eaCAdxUY1xpiTulsmpA==", "dev": true, "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@rushstack/terminal": "0.13.2", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" } }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "packages/network-map-layers/node_modules/@volar/language-core": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.4.tgz", + "integrity": "sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@volar/source-map": "2.3.4" + } + }, + "packages/network-map-layers/node_modules/@volar/source-map": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.4.tgz", + "integrity": "sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==", + "dev": true + }, + "packages/network-map-layers/node_modules/@volar/typescript": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.3.4.tgz", + "integrity": "sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.3.4", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "packages/network-map-layers/node_modules/@vue/language-core": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.19.tgz", + "integrity": "sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@volar/language-core": "~2.2.4", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "typescript": "*" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "packages/network-map-layers/node_modules/@vue/language-core/node_modules/@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@volar/source-map": "2.2.5" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "packages/network-map-layers/node_modules/@vue/language-core/node_modules/@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "muggle-string": "^0.4.0" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "packages/network-map-layers/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "packages/network-map-layers/node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", "dev": true, - "engines": { - "node": ">=10.0.0" - }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "ajv": "^8.5.0" }, "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { + "ajv": { "optional": true } } }, - "node_modules/xml-name-validator": { + "packages/network-map-layers/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" + } + }, + "packages/network-map-layers/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "packages/network-map-layers/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "packages/network-map-layers/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { "node": ">=10" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "packages/network-map-layers/node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", "dev": true }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "peer": true, + "packages/network-map-layers/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "packages/network-map-layers/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "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==", + "packages/network-map-layers/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "packages/network-map-layers/node_modules/typescript": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=6" + "node": ">=14.17" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "packages/network-map-layers/node_modules/vite-plugin-dts": { + "version": "4.0.0-beta.1", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.0.0-beta.1.tgz", + "integrity": "sha512-4ILGS8ClSYiNMtSRo4YxJ+JeC2P4uZgo9cQ7Yav+CLSxcoWBffjJ6B1QKcn5BhniXJQkb1j6Bi0MCj5C5+i4Sg==", "dev": true, + "dependencies": { + "@microsoft/api-extractor": "7.47.2", + "@rollup/pluginutils": "^5.1.0", + "@volar/typescript": "^2.3.4", + "@vue/language-core": "2.0.19", + "compare-versions": "^6.1.1", + "debug": "^4.3.5", + "kolorist": "^1.8.0", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.10", + "vue-tsc": "2.0.19" + }, "engines": { - "node": ">=10" + "node": "^14.18.0 || >=16.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "typescript": "*", + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } } }, - "node_modules/z-schema": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", - "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", + "packages/network-map-layers/node_modules/vue-tsc": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.19.tgz", + "integrity": "sha512-JWay5Zt2/871iodGF72cELIbcAoPyhJxq56mPPh+M2K7IwI688FMrFKc/+DvB05wDWEuCPexQJ6L10zSwzzapg==", "dev": true, "dependencies": { - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "validator": "^13.7.0" + "@volar/typescript": "~2.2.4", + "@vue/language-core": "2.0.19", + "semver": "^7.5.4" }, "bin": { - "z-schema": "bin/z-schema" - }, - "engines": { - "node": ">=8.0.0" + "vue-tsc": "bin/vue-tsc.js" }, - "optionalDependencies": { - "commander": "^9.4.1" + "peerDependencies": { + "typescript": "*" } }, - "node_modules/z-schema/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "packages/network-map-layers/node_modules/vue-tsc/node_modules/@volar/language-core": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.2.5.tgz", + "integrity": "sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==", "dev": true, - "optional": true, - "engines": { - "node": "^12.20.0 || >=14" + "dependencies": { + "@volar/source-map": "2.2.5" + } + }, + "packages/network-map-layers/node_modules/vue-tsc/node_modules/@volar/source-map": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.2.5.tgz", + "integrity": "sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==", + "dev": true, + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "packages/network-map-layers/node_modules/vue-tsc/node_modules/@volar/typescript": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.2.5.tgz", + "integrity": "sha512-eSV/n75+ppfEVugMC/salZsI44nXDPAyL6+iTYCNLtiLHGJsnMv9GwiDMujrvAUj/aLQyqRJgYtXRoxop2clCw==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.2.5", + "path-browserify": "^1.0.1" + } + }, + "packages/network-map-layers/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "packages/single-line-diagram-viewer": { + "name": "@amarant/single-line-diagram-viewer", + "version": "0.6.0", + "license": "MPL-2.0", + "dependencies": { + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.panzoom.js": "^2.1.2" + }, + "devDependencies": { + "typescript": "5.5.3", + "vite": "^5.3.3", + "vite-plugin-dts": "^3.9.1", + "vite-plugin-externalize-deps": "^0.8.0", + "vite-plugin-svgr": "^4.2.0" } } } diff --git a/package.json b/package.json index 22093f3b..70ac457b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@powsybl/diagram-viewer", - "version": "0.5.1", + "version": "0.6.0", "description": "Typescript library to integrate a powsybl svg diagram in a javascript project.", "author": "powsybl team", "homepage": "https://www.powsybl.org/", @@ -27,16 +27,22 @@ "lint": "eslint . --ext js,mjs,jsx,ts,mts,tsx --max-warnings 0", "licenses-check": "license-checker --summary --excludePrivatePackages --production --onlyAllow \"$( jq -r .onlyAllow[] license-checker-config.json | tr '\n' ';')\" --excludePackages \"$( jq -r .excludePackages[] license-checker-config.json | tr '\n' ';')\"" }, + "workspaces": [ + "packages/network-map-layers", + "packages/single-line-diagram-viewer" + ], "dependencies": { "@mapbox/mapbox-gl-draw": "^1.4.3", - "@svgdotjs/svg.js": "^3.2.0", + "@powsybl/network-map-layers": "^0.6.0", + "@powsybl/single-line-diagram-viewer": "^0.6.0", + "@svgdotjs/svg.js": "^3.2.4", "@svgdotjs/svg.panzoom.js": "^2.1.2", "@turf/boolean-point-in-polygon": "^6.5.0", "cheap-ruler": "^3.0.2", - "deck.gl": "^8.9.35", + "deck.gl": "^9.0.31", "geolib": "^3.3.4", - "mapbox-gl": "^3.2.0", - "maplibre-gl": "^4.1.2", + "mapbox-gl": "^3.4.0", + "maplibre-gl": "^4.5.0", "react-map-gl": "^7.1.7" }, "peerDependencies": { @@ -49,40 +55,43 @@ "react-intl": "^6.6.4" }, "devDependencies": { - "@babel/core": "^7.24.3", - "@babel/preset-env": "^7.24.3", - "@babel/preset-typescript": "^7.24.1", - "@mui/icons-material": "^5.15.14", - "@mui/material": "^5.15.14", - "@mui/system": "^5.15.14", + "@babel/core": "^7.24.7", + "@babel/preset-env": "^7.24.7", + "@babel/preset-typescript": "^7.24.7", + "@mui/icons-material": "^5.15.21", + "@mui/material": "^5.15.21", + "@mui/system": "^5.15.20", "@types/eslint": "^7.29.0", "@types/eslint-config-prettier": "^6.11.3", + "@types/eslint-plugin-prettier": "^3.1.3", "@types/jest": "^29.5.12", "@types/license-checker": "^25.0.6", - "@types/mapbox-gl": "^3.1.0", "@types/mapbox__mapbox-gl-draw": "^1.4.6", + "@types/mapbox-gl": "^3.1.0", "@types/node": "^18.19.31", - "@types/react": "^18.2.75", - "@types/react-dom": "^18.2.24", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", "@typescript-eslint/eslint-plugin": "^6.21.0", - "@vitejs/plugin-react": "^4.2.1", + "@typescript-eslint/parser": "^6.21.0", + "@vitejs/plugin-react": "^4.3.1", "babel-jest": "^29.7.0", "eslint": "^7.32.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.6", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "license-checker": "^25.0.1", "prettier": "^2.8.8", - "ts-jest": "^29.1.2", + "ts-jest": "^29.1.5", "ts-node": "^10.9.2", - "typescript": "5.1.6", - "vite": "^5.2.7", - "vite-plugin-dts": "^3.8.1", + "typescript": "5.5.3", + "vite": "^5.3.3", + "vite-plugin-dts": "^3.9.1", "vite-plugin-eslint": "^1.8.1", - "vite-plugin-externalize-deps": "^0.8.0" + "vite-plugin-externalize-deps": "^0.8.0", + "vite-plugin-svgr": "^4.2.0" } } diff --git a/packages/network-map-layers/package.json b/packages/network-map-layers/package.json new file mode 100644 index 00000000..14cd391c --- /dev/null +++ b/packages/network-map-layers/package.json @@ -0,0 +1,39 @@ +{ + "name": "@powsybl/network-map-layers", + "version": "0.6.0", + "description": "Typescript library to integrate a powsybl svg diagram in a javascript project.", + "author": "powsybl team", + "homepage": "https://www.powsybl.org/", + "license": "MPL-2.0", + "repository": "git://github.com/powsybl/powsybl-diagram-viewer.git", + "type": "module", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "module": "./dist/powsybl-network-map-layers.js", + "exports": { + ".": { + "import": "./dist/powsybl-network-map-layers.js", + "types": "./dist/index.d.ts" + } + }, + "scripts": { + "build": "vite build" + }, + "peerDependencies": { + "@deck.gl/core": "^9.0.0", + "@deck.gl/extensions": "^9.0.0", + "@deck.gl/layers": "^9.0.0", + "@luma.gl/constants": "^9.0.0", + "@luma.gl/core": "^9.0.0", + "@luma.gl/engine": "^9.0.0" + }, + "devDependencies": { + "typescript": "5.5.3", + "vite": "^5.3.3", + "vite-plugin-dts": "^3.9.1", + "vite-plugin-externalize-deps": "^0.8.0", + "vite-plugin-svgr": "^4.2.0" + } +} diff --git a/src/components/network-map-viewer/network/constants.js b/packages/network-map-layers/src/constants.ts similarity index 100% rename from src/components/network-map-viewer/network/constants.js rename to packages/network-map-layers/src/constants.ts diff --git a/src/components/network-map-viewer/images/bolt_black_24dp.svg b/packages/network-map-layers/src/images/bolt_black_24dp.svg similarity index 100% rename from src/components/network-map-viewer/images/bolt_black_24dp.svg rename to packages/network-map-layers/src/images/bolt_black_24dp.svg diff --git a/src/components/network-map-viewer/images/lock_black_24dp.svg b/packages/network-map-layers/src/images/lock_black_24dp.svg similarity index 100% rename from src/components/network-map-viewer/images/lock_black_24dp.svg rename to packages/network-map-layers/src/images/lock_black_24dp.svg diff --git a/packages/network-map-layers/src/index.ts b/packages/network-map-layers/src/index.ts new file mode 100644 index 00000000..0a4c60aa --- /dev/null +++ b/packages/network-map-layers/src/index.ts @@ -0,0 +1,6 @@ +export * from './network/geo-data'; +export * from './network/line-layer'; +export { MapEquipments } from './network/map-equipments'; +export { SubstationLayer } from './network/substation-layer'; +export { getNominalVoltageColor } from './utils/colors'; +export * from './utils/equipment-types'; diff --git a/src/components/network-map-viewer/network/geo-data.js b/packages/network-map-layers/src/network/geo-data.ts similarity index 55% rename from src/components/network-map-viewer/network/geo-data.js rename to packages/network-map-layers/src/network/geo-data.ts index 2c648b11..2907c0d8 100644 --- a/src/components/network-map-viewer/network/geo-data.js +++ b/packages/network-map-layers/src/network/geo-data.ts @@ -5,35 +5,315 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +import { Line, LonLat } from '@/utils/equipment-types'; +import cheapRuler from 'cheap-ruler'; import { computeDestinationPoint, getGreatCircleBearing, getRhumbLineBearing, } from 'geolib'; -import cheapRuler from 'cheap-ruler'; import { ArrowDirection } from './layers/arrow-layer'; +import { MapEquipments } from './map-equipments'; -const substationPositionByIdIndexer = (map, substation) => { +const substationPositionByIdIndexer = ( + map: Map, + substation: SubstationPosition +) => { map.set(substation.id, substation.coordinate); return map; }; -const linePositionByIdIndexer = (map, line) => { +const linePositionByIdIndexer = ( + map: Map, + line: LinePosition +) => { map.set(line.id, line.coordinates); return map; }; -export class GeoData { - substationPositionsById = new Map(); +// https://github.com/powsybl/powsybl-core/blob/main/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/Country.java +export enum Country { + AF = 'AFGHANISTAN', + AX = 'ÅLAND ISLANDS', + AL = 'ALBANIA', + DZ = 'ALGERIA', + AS = 'AMERICAN SAMOA', + AD = 'ANDORRA', + AO = 'ANGOLA', + AI = 'ANGUILLA', + AQ = 'ANTARCTICA', + AG = 'ANTIGUA AND BARBUDA', + AR = 'ARGENTINA', + AM = 'ARMENIA', + AW = 'ARUBA', + AU = 'AUSTRALIA', + AT = 'AUSTRIA', + AZ = 'AZERBAIJAN', + BS = 'BAHAMAS', + BH = 'BAHRAIN', + BD = 'BANGLADESH', + BB = 'BARBADOS', + BY = 'BELARUS', + BE = 'BELGIUM', + BZ = 'BELIZE', + BJ = 'BENIN', + BM = 'BERMUDA', + BT = 'BHUTAN', + BO = 'BOLIVIA, PLURINATIONAL STATE OF', + BQ = 'BONAIRE, SINT EUSTATIUS AND SABA', + BA = 'BOSNIA AND HERZEGOVINA', + BW = 'BOTSWANA', + BV = 'BOUVET ISLAND', + BR = 'BRAZIL', + IO = 'BRITISH INDIAN OCEAN TERRITORY', + BN = 'BRUNEI DARUSSALAM', + BG = 'BULGARIA', + BF = 'BURKINA FASO', + BI = 'BURUNDI', + KH = 'CAMBODIA', + CM = 'CAMEROON', + CA = 'CANADA', + CV = 'CAPE VERDE', + KY = 'CAYMAN ISLANDS', + CF = 'CENTRAL AFRICAN REPUBLIC', + TD = 'CHAD', + CL = 'CHILE', + CN = 'CHINA', + CX = 'CHRISTMAS ISLAND', + CC = 'COCOS (KEELING) ISLANDS', + CO = 'COLOMBIA', + KM = 'COMOROS', + CG = 'CONGO', + CD = 'CONGO, THE DEMOCRATIC REPUBLIC OF THE', + CK = 'COOK ISLANDS', + CR = 'COSTA RICA', + CI = "CÔTE D'IVOIRE", + HR = 'CROATIA', + CU = 'CUBA', + CW = 'CURAÇAO', + CY = 'CYPRUS', + CZ = 'CZECH REPUBLIC', + DK = 'DENMARK', + DJ = 'DJIBOUTI', + DM = 'DOMINICA', + DO = 'DOMINICAN REPUBLIC', + EC = 'ECUADOR', + EG = 'EGYPT', + SV = 'EL SALVADOR', + GQ = 'EQUATORIAL GUINEA', + ER = 'ERITREA', + EE = 'ESTONIA', + ET = 'ETHIOPIA', + FK = 'FALKLAND ISLANDS (MALVINAS)', + FO = 'FAROE ISLANDS', + FJ = 'FIJI', + FI = 'FINLAND', + FR = 'FRANCE', + GF = 'FRENCH GUIANA', + PF = 'FRENCH POLYNESIA', + TF = 'FRENCH SOUTHERN TERRITORIES', + GA = 'GABON', + GM = 'GAMBIA', + GE = 'GEORGIA', + DE = 'GERMANY', + GH = 'GHANA', + GI = 'GIBRALTAR', + GR = 'GREECE', + GL = 'GREENLAND', + GD = 'GRENADA', + GP = 'GUADELOUPE', + GU = 'GUAM', + GT = 'GUATEMALA', + GG = 'GUERNSEY', + GN = 'GUINEA', + GW = 'GUINEA-BISSAU', + GY = 'GUYANA', + HT = 'HAITI', + HM = 'HEARD ISLAND AND MCDONALD ISLANDS', + VA = 'HOLY SEE (VATICAN CITY STATE)', + HN = 'HONDURAS', + HK = 'HONG KONG', + HU = 'HUNGARY', + IS = 'ICELAND', + IN = 'INDIA', + ID = 'INDONESIA', + IR = 'IRAN, ISLAMIC REPUBLIC OF', + IQ = 'IRAQ', + IE = 'IRELAND', + IM = 'ISLE OF MAN', + IL = 'ISRAEL', + IT = 'ITALY', + JM = 'JAMAICA', + JP = 'JAPAN', + JE = 'JERSEY', + JO = 'JORDAN', + KZ = 'KAZAKHSTAN', + KE = 'KENYA', + KI = 'KIRIBATI', + KP = "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF", + KR = 'KOREA, REPUBLIC OF', + XK = 'KOSOVO', + KW = 'KUWAIT', + KG = 'KYRGYZSTAN', + LA = "LAO PEOPLE'S DEMOCRATIC REPUBLIC", + LV = 'LATVIA', + LB = 'LEBANON', + LS = 'LESOTHO', + LR = 'LIBERIA', + LY = 'LIBYA', + LI = 'LIECHTENSTEIN', + LT = 'LITHUANIA', + LU = 'LUXEMBOURG', + MO = 'MACAO', + MK = 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', + MG = 'MADAGASCAR', + MW = 'MALAWI', + MY = 'MALAYSIA', + MV = 'MALDIVES', + ML = 'MALI', + MT = 'MALTA', + MH = 'MARSHALL ISLANDS', + MQ = 'MARTINIQUE', + MR = 'MAURITANIA', + MU = 'MAURITIUS', + YT = 'MAYOTTE', + MX = 'MEXICO', + FM = 'MICRONESIA, FEDERATED STATES OF', + MD = 'MOLDOVA, REPUBLIC OF', + MC = 'MONACO', + MN = 'MONGOLIA', + ME = 'MONTENEGRO', + MS = 'MONTSERRAT', + MA = 'MOROCCO', + MZ = 'MOZAMBIQUE', + MM = 'MYANMAR', + NA = 'NAMIBIA', + NR = 'NAURU', + NP = 'NEPAL', + NL = 'NETHERLANDS', + NC = 'NEW CALEDONIA', + NZ = 'NEW ZEALAND', + NI = 'NICARAGUA', + NE = 'NIGER', + NG = 'NIGERIA', + NU = 'NIUE', + NF = 'NORFOLK ISLAND', + MP = 'NORTHERN MARIANA ISLANDS', + NO = 'NORWAY', + OM = 'OMAN', + PK = 'PAKISTAN', + PW = 'PALAU', + PS = 'PALESTINE, STATE OF', + PA = 'PANAMA', + PG = 'PAPUA NEW GUINEA', + PY = 'PARAGUAY', + PE = 'PERU', + PH = 'PHILIPPINES', + PN = 'PITCAIRN', + PL = 'POLAND', + PT = 'PORTUGAL', + PR = 'PUERTO RICO', + QA = 'QATAR', + RE = 'RÉUNION', + RO = 'ROMANIA', + RU = 'RUSSIAN FEDERATION', + RW = 'RWANDA', + BL = 'SAINT BARTHÉLEMY', + SH = 'SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA', + KN = 'SAINT KITTS AND NEVIS', + LC = 'SAINT LUCIA', + MF = 'SAINT MARTIN (FRENCH PART)', + PM = 'SAINT PIERRE AND MIQUELON', + VC = 'SAINT VINCENT AND THE GRENADINES', + WS = 'SAMOA', + SM = 'SAN MARINO', + ST = 'SAO TOME AND PRINCIPE', + SA = 'SAUDI ARABIA', + SN = 'SENEGAL', + RS = 'SERBIA', + SC = 'SEYCHELLES', + SL = 'SIERRA LEONE', + SG = 'SINGAPORE', + SX = 'SINT MAARTEN (DUTCH PART)', + SK = 'SLOVAKIA', + SI = 'SLOVENIA', + SB = 'SOLOMON ISLANDS', + SO = 'SOMALIA', + ZA = 'SOUTH AFRICA', + GS = 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS', + SS = 'SOUTH SUDAN', + ES = 'SPAIN', + LK = 'SRI LANKA', + SD = 'SUDAN', + SR = 'SURINAME', + SJ = 'SVALBARD AND JAN MAYEN', + SZ = 'SWAZILAND', + SE = 'SWEDEN', + CH = 'SWITZERLAND', + SY = 'SYRIAN ARAB REPUBLIC', + TW = 'TAIWAN, PROVINCE OF CHINA', + TJ = 'TAJIKISTAN', + TZ = 'TANZANIA, UNITED REPUBLIC OF', + TH = 'THAILAND', + TL = 'TIMOR-LESTE', + TG = 'TOGO', + TK = 'TOKELAU', + TO = 'TONGA', + TT = 'TRINIDAD AND TOBAGO', + TN = 'TUNISIA', + TR = 'TURKEY', + TM = 'TURKMENISTAN', + TC = 'TURKS AND CAICOS ISLANDS', + TV = 'TUVALU', + UG = 'UGANDA', + UA = 'UKRAINE', + AE = 'UNITED ARAB EMIRATES', + GB = 'UNITED KINGDOM', + US = 'UNITED STATES', + UM = 'UNITED STATES MINOR OUTLYING ISLANDS', + UY = 'URUGUAY', + UZ = 'UZBEKISTAN', + VU = 'VANUATU', + VE = 'VENEZUELA, BOLIVARIAN REPUBLIC OF', + VN = 'VIET NAM', + VG = 'VIRGIN ISLANDS, BRITISH', + VI = 'VIRGIN ISLANDS, U.S.', + WF = 'WALLIS AND FUTUNA', + EH = 'WESTERN SAHARA', + YE = 'YEMEN', + ZM = 'ZAMBIA', + ZW = 'ZIMBABWE', +} - linePositionsById = new Map(); +// https://github.com/powsybl/powsybl-core/blob/main/iidm/iidm-extensions/src/main/java/com/powsybl/iidm/network/extensions/Coordinate.java +export type Coordinate = { + lon: number; + lat: number; +}; + +export type SubstationPosition = { + id: string; + coordinate: Coordinate; +}; - constructor(substationPositionsById, linePositionsById) { +export type LinePosition = { + id: string; + coordinates: Coordinate[]; +}; + +export class GeoData { + substationPositionsById = new Map(); + linePositionsById = new Map(); + + constructor( + substationPositionsById: Map, + linePositionsById: Map + ) { this.substationPositionsById = substationPositionsById; this.linePositionsById = linePositionsById; } - setSubstationPositions(positions) { + setSubstationPositions(positions: SubstationPosition[]) { // index positions by substation id this.substationPositionsById = positions.reduce( substationPositionByIdIndexer, @@ -41,7 +321,10 @@ export class GeoData { ); } - updateSubstationPositions(substationIdsToUpdate, fetchedPositions) { + updateSubstationPositions( + substationIdsToUpdate: string[], + fetchedPositions: SubstationPosition[] + ) { fetchedPositions.forEach((pos) => this.substationPositionsById.set(pos.id, pos.coordinate) ); @@ -52,7 +335,7 @@ export class GeoData { .forEach((id) => this.substationPositionsById.delete(id)); } - getSubstationPosition(substationId) { + getSubstationPosition(substationId: string): LonLat { const position = this.substationPositionsById.get(substationId); if (!position) { console.warn(`Position not found for ${substationId}`); @@ -61,7 +344,7 @@ export class GeoData { return [position.lon, position.lat]; } - setLinePositions(positions) { + setLinePositions(positions: LinePosition[]) { // index positions by line id this.linePositionsById = positions.reduce( linePositionByIdIndexer, @@ -69,7 +352,10 @@ export class GeoData { ); } - updateLinePositions(lineIdsToUpdate, fetchedPositions) { + updateLinePositions( + lineIdsToUpdate: string[], + fetchedPositions: LinePosition[] + ) { fetchedPositions.forEach((pos) => { this.linePositionsById.set(pos.id, pos.coordinates); }); @@ -84,7 +370,11 @@ export class GeoData { /** * Get line positions always ordered from side 1 to side 2. */ - getLinePositions(network, line, detailed = true) { + getLinePositions( + network: MapEquipments, + line: Line, + detailed = true + ): LonLat[] { const voltageLevel1 = network.getVoltageLevel(line.voltageLevelId1); if (!voltageLevel1) { throw new Error( @@ -121,7 +411,7 @@ export class GeoData { const linePositions = this.linePositionsById.get(line.id); // Is there any position for this line ? if (linePositions) { - const positions = new Array(linePositions.length); + const positions = new Array(linePositions.length); for (const [index, position] of linePositions.entries()) { positions[index] = [position.lon, position.lat]; @@ -134,9 +424,9 @@ export class GeoData { return [substationPosition1, substationPosition2]; } - getLineDistances(positions) { + getLineDistances(positions: LonLat[]) { if (positions !== null && positions.length > 1) { - let cumulativeDistanceArray = [0]; + const cumulativeDistanceArray = [0]; let cumulativeDistance = 0; let segmentDistance; let ruler; @@ -156,13 +446,17 @@ export class GeoData { * along with the remaining distance to travel on this segment to be at the exact wanted distance * (implemented using a binary search) */ - findSegment(positions, cumulativeDistances, wantedDistance) { + findSegment( + positions: LonLat[], + cumulativeDistances: number[], + wantedDistance: number + ) { let lowerBound = 0; let upperBound = cumulativeDistances.length - 1; let middlePoint; while (lowerBound + 1 !== upperBound) { middlePoint = Math.floor((lowerBound + upperBound) / 2); - let middlePointDistance = cumulativeDistances[middlePoint]; + const middlePointDistance = cumulativeDistances[middlePoint]; if (middlePointDistance <= wantedDistance) { lowerBound = middlePoint; } else { @@ -171,21 +465,24 @@ export class GeoData { } return { idx: lowerBound, - segment: positions.slice(lowerBound, lowerBound + 2), + segment: positions.slice(lowerBound, lowerBound + 2) as [ + LonLat, + LonLat + ], remainingDistance: wantedDistance - cumulativeDistances[lowerBound], }; } labelDisplayPosition( - positions, - cumulativeDistances, - arrowPosition, - arrowDirection, - lineParallelIndex, - lineAngle, - proximityAngle, - distanceBetweenLines, - proximityFactor + positions: LonLat[], + cumulativeDistances: number[], + arrowPosition: number, + arrowDirection: ArrowDirection, + lineParallelIndex: number, + lineAngle: number, + proximityAngle: number, + distanceBetweenLines: number, + proximityFactor: number ) { if (arrowPosition > 1 || arrowPosition < 0) { throw new Error( @@ -199,7 +496,8 @@ export class GeoData { ) { return null; } - let lineDistance = cumulativeDistances[cumulativeDistances.length - 1]; + const lineDistance = + cumulativeDistances[cumulativeDistances.length - 1]; let wantedDistance = lineDistance * arrowPosition; if (cumulativeDistances.length === 2) { @@ -211,7 +509,7 @@ export class GeoData { 2 * distanceBetweenLines * arrowPosition * proximityFactor; } - let goodSegment = this.findSegment( + const goodSegment = this.findSegment( positions, cumulativeDistances, wantedDistance @@ -234,9 +532,9 @@ export class GeoData { default: throw new Error('impossible'); } - let remainingDistance = goodSegment.remainingDistance * multiplier; + const remainingDistance = goodSegment.remainingDistance * multiplier; - let angle = this.getMapAngle( + const angle = this.getMapAngle( goodSegment.segment[0], goodSegment.segment[1] ); @@ -292,8 +590,12 @@ export class GeoData { return position; } - getLabelOffset(angle, offsetDistance, arrowDirection) { - let radiantAngle = (-angle + 90) / (180 / Math.PI); + getLabelOffset( + angle: number, + offsetDistance: number, + arrowDirection: ArrowDirection + ): [number, number] { + const radiantAngle = (-angle + 90) / (180 / Math.PI); let direction = 0; switch (arrowDirection) { case ArrowDirection.FROM_SIDE_2_TO_SIDE_1: @@ -316,11 +618,11 @@ export class GeoData { } //returns the angle between point1 and point2 in degrees [0-360) - getMapAngle(point1, point2) { + getMapAngle(point1: LonLat, point2: LonLat) { // We don't have the exact same angle calculation as in the arrow shader, and this // seems to give more approaching results let angle = getRhumbLineBearing(point1, point2); - let angle2 = getGreatCircleBearing(point1, point2); + const angle2 = getGreatCircleBearing(point1, point2); const coeff = 0.1; angle = coeff * angle + (1 - coeff) * angle2; return angle; diff --git a/packages/network-map-layers/src/network/layers/arrow-layer-fragment.frag b/packages/network-map-layers/src/network/layers/arrow-layer-fragment.frag new file mode 100644 index 00000000..9f926a5b --- /dev/null +++ b/packages/network-map-layers/src/network/layers/arrow-layer-fragment.frag @@ -0,0 +1,12 @@ +#version 300 es +#define SHADER_NAME arrow-layer-fragment-shader +precision highp float; +in vec4 vFillColor; +in float shouldDiscard; +out vec4 fragmentColor; +void main(void) { + if (shouldDiscard > 0.0) { + discard; + } + fragmentColor = vFillColor; +} diff --git a/src/components/network-map-viewer/network/layers/arrow-layer-vertex.glsl.js b/packages/network-map-layers/src/network/layers/arrow-layer-vertex.vert similarity index 72% rename from src/components/network-map-viewer/network/layers/arrow-layer-vertex.glsl.js rename to packages/network-map-layers/src/network/layers/arrow-layer-vertex.vert index 5f7984b4..900c02b0 100644 --- a/src/components/network-map-viewer/network/layers/arrow-layer-vertex.glsl.js +++ b/packages/network-map-layers/src/network/layers/arrow-layer-vertex.vert @@ -1,80 +1,61 @@ -/** - * Copyright (c) 2022, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -const vs = `\ +#version 300 es #define SHADER_NAME arrow-layer-vertex-shader precision highp float; -attribute vec3 positions; - -attribute float instanceSize; -attribute float instanceArrowDistance; -attribute vec4 instanceColor; -attribute float instanceSpeedFactor; -attribute float instanceLinePositionsTextureOffset; -attribute float instanceLineDistancesTextureOffset; -attribute float instanceLinePointCount; -attribute float instanceLineDistance; -attribute float instanceArrowDirection; -attribute float instanceLineParallelIndex; -attribute vec3 instanceLineAngles; -attribute vec2 instanceProximityFactors; +in vec3 positions; +in float instanceSize; +in vec4 instanceColor; +in float instanceSpeedFactor; +in float instanceArrowDistance; +in float instanceArrowDirection; +in float instanceLineDistance; +in int instanceLinePositionsTextureOffset; +in int instanceLineDistancesTextureOffset; +in int instanceLinePointCount; +in float instanceLineParallelIndex; +in vec3 instanceLineAngles; +in vec2 instanceProximityFactors; +in float instanceDistanceBetweenLines; uniform float sizeMinPixels; uniform float sizeMaxPixels; uniform float timestamp; uniform sampler2D linePositionsTexture; uniform sampler2D lineDistancesTexture; -uniform ivec2 linePositionsTextureSize; -uniform ivec2 lineDistancesTextureSize; -uniform float webgl2; -uniform float distanceBetweenLines; uniform float maxParallelOffset; uniform float minParallelOffset; uniform float opacity; +uniform ivec2 linePositionsTextureSize; -varying vec4 vFillColor; -varying float shouldDiscard; +uniform ivec2 lineDistancesTextureSize; -vec4 texelFetch(sampler2D sampler, ivec2 index, ivec2 size) { - float x = (2.0 * float(index.x) + 1.0) / (2.0 * float(size.x)); - float y = (2.0 * float(index.y) + 1.0) / (2.0 * float(size.y)); - return texture2D(sampler, vec2(x, y)); -} +out vec4 vFillColor; +out float shouldDiscard; /** * Calculate 2 dimensions texture index from flat index. */ ivec2 calculateTextureIndex(int flatIndex, ivec2 textureSize) { - int x = flatIndex - flatIndex / textureSize.x * textureSize.x; - int y = flatIndex / textureSize.y; - return ivec2(x, y); + return ivec2(flatIndex % textureSize.x, flatIndex / textureSize.x); } /** * Fetch WGS84 position from texture for a given point of the line. */ vec3 fetchLinePosition(int point) { - int flatIndex = int(instanceLinePositionsTextureOffset) + point; + int flatIndex = instanceLinePositionsTextureOffset + point; ivec2 textureIndex = calculateTextureIndex(flatIndex, linePositionsTextureSize); - vec4 color = texelFetch(linePositionsTexture, textureIndex, linePositionsTextureSize); - float x = color.r; - float y = webgl2 > 0.5 ? color.g : color.a; - return vec3(x, y, 0); + return vec3(texelFetch(linePositionsTexture, textureIndex, 0).xy, 0); } /** * Fetch distance (in meters from the start of the line) from texture for a point of the line. */ float fetchLineDistance(int point) { - int flatIndex = int(instanceLineDistancesTextureOffset) + point; + int flatIndex = instanceLineDistancesTextureOffset + point; ivec2 textureIndex = calculateTextureIndex(flatIndex, lineDistancesTextureSize); - return texelFetch(lineDistancesTexture, textureIndex, lineDistancesTextureSize).r; + return texelFetch(lineDistancesTexture, textureIndex, 0).x; } /** @@ -94,28 +75,22 @@ float fetchLineDistance(int point) { */ int findFirstLinePointAfterDistance(float distance) { int firstPoint = 0; - int lastPoint = int(instanceLinePointCount) - 1; + int lastPoint = instanceLinePointCount - 1; - // variable length loops are not supported in WebGL v1, it needs to be a constant and cannot be like in WebGL v2 an - // attribute, so we suppose here that we won't have more that 2^log2MaxPointCount points per line... - // - // WARNING!!!! - // also, we need to avoid break/return in the for loop even if search complete because with a WebGL1 browser - // it is not possible to call texture2D inside a non deterministic piece of code - // https://shadertoyunofficial.wordpress.com/2017/11/19/avoiding-compiler-crash-or-endless-compilation - const int log2MaxPointCount = 15; - for (int i = 0; i < log2MaxPointCount; i++) { - if (firstPoint + 1 != lastPoint) { - int middlePoint = (firstPoint + lastPoint) / 2; - float middlePointDistance = fetchLineDistance(middlePoint); - if (middlePointDistance <= distance) { - firstPoint = middlePoint; - } else { - lastPoint = middlePoint; - } - } - } - return lastPoint; + // variable length loops are not supported in GLSL, instanceLinePointCount is an upper bound that + // will never be reached as binary search complexity is in O(log(instanceLinePointCount)) + for (int i = 0; i < instanceLinePointCount; i++) { + if (firstPoint + 1 == lastPoint) { + return lastPoint; + } + int middlePoint = (firstPoint + lastPoint) / 2; + float middlePointDistance = fetchLineDistance(middlePoint); + if (middlePointDistance <= distance) { + firstPoint = middlePoint; + } else { + lastPoint = middlePoint; + } + } } mat3 calculateRotation(vec3 commonPosition1, vec3 commonPosition2) { @@ -190,7 +165,7 @@ void main(void) { // are not correctly positioned on the lines, they are slightly off. // This hack does not seem necessary for parallel-path or fork-line layers. vec3 arrowPositionWorldSpace = mix(linePosition1, linePosition2, interpolationValue); - float offsetCommonSpace = clamp(project_size_all_zoom_levels(distanceBetweenLines, arrowPositionWorldSpace.y), project_pixel_size(minParallelOffset), project_pixel_size(maxParallelOffset)); + float offsetCommonSpace = clamp(project_size_all_zoom_levels(instanceDistanceBetweenLines, arrowPositionWorldSpace.y), project_pixel_size(minParallelOffset), project_pixel_size(maxParallelOffset)); // calculate translation for the parallels lines, use the angle calculated from origin/destination // to maintain the same translation between segments @@ -234,6 +209,3 @@ void main(void) { shouldDiscard = 0.0; } } -`; - -export default vs; diff --git a/src/components/network-map-viewer/network/layers/arrow-layer.js b/packages/network-map-layers/src/network/layers/arrow-layer.ts similarity index 57% rename from src/components/network-map-viewer/network/layers/arrow-layer.js rename to packages/network-map-layers/src/network/layers/arrow-layer.ts index e9af855a..b0e0c128 100644 --- a/src/components/network-map-viewer/network/layers/arrow-layer.js +++ b/packages/network-map-layers/src/network/layers/arrow-layer.ts @@ -4,38 +4,90 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { Layer, project32, picking } from '@deck.gl/core'; -import GL from '@luma.gl/constants'; import { - Model, - Geometry, - Texture2D, - FEATURES, - hasFeatures, - isWebGL2, + Accessor, + DefaultProps, + Layer, + picking, + project32, +} from '@deck.gl/core'; +import { GL } from '@luma.gl/constants'; +import type { Texture } from '@luma.gl/core'; +import { Geometry, Model } from '@luma.gl/engine'; + +import { Line } from '@/utils/equipment-types'; +import { + Device, + RenderPass, + TextureFormat, + TextureProps, + UniformValue, } from '@luma.gl/core'; +import { + Color, + LayerContext, + LayerProps, + Position, + UpdateParameters, +} from 'deck.gl'; +import fs from './arrow-layer-fragment.frag?raw'; +import vs from './arrow-layer-vertex.vert?raw'; -import vs from './arrow-layer-vertex.glsl'; -import fs from './arrow-layer-fragment.glsl'; - -const DEFAULT_COLOR = [0, 0, 0, 255]; +const DEFAULT_COLOR = [0, 0, 0, 255] satisfies Color; // this value has to be consistent with the one in vertex shader const MAX_LINE_POINT_COUNT = 2 ** 15; -export const ArrowDirection = { - NONE: 'none', - FROM_SIDE_1_TO_SIDE_2: 'fromSide1ToSide2', - FROM_SIDE_2_TO_SIDE_1: 'fromSide2ToSide1', +export enum ArrowDirection { + NONE = 'none', + FROM_SIDE_1_TO_SIDE_2 = 'fromSide1ToSide2', + FROM_SIDE_2_TO_SIDE_1 = 'fromSide2ToSide1', +} + +export type Arrow = { + line: Line; + distance: number; }; -const defaultProps = { +export type LayerDataSource = DataType[]; +// | LayerData +// | string +// | AsyncIterable +// | Promise> +// | null; + +type _ArrowLayerProps = { + data: Arrow[]; + sizeMinPixels?: number; + sizeMaxPixels?: number; + getDistance: Accessor; + getLine: (arrow: Arrow) => Line; + getLinePositions: (line: Line) => Position[]; + getSize?: Accessor; + getColor?: Accessor; + getSpeedFactor?: Accessor; + getDirection?: Accessor; + animated?: boolean; + getLineParallelIndex?: Accessor; + getLineAngles?: Accessor; + getDistanceBetweenLines?: Accessor; + maxParallelOffset?: number; + minParallelOffset?: number; + opacity?: number; +} & LayerProps; + +type ArrowLayerProps = _ArrowLayerProps & LayerProps; + +const defaultProps: DefaultProps = { sizeMinPixels: { type: 'number', min: 0, value: 0 }, // min size in pixels sizeMaxPixels: { type: 'number', min: 0, value: Number.MAX_SAFE_INTEGER }, // max size in pixels - getDistance: { type: 'accessor', value: (arrow) => arrow.distance }, - getLine: { type: 'accessor', value: (arrow) => arrow.line }, - getLinePositions: { type: 'accessor', value: (line) => line.positions }, + // getDistance: { type: 'accessor', value: (arrow: Arrow) => arrow.distance }, + getLine: { type: 'function', value: (arrow: Arrow) => arrow.line }, + // getLinePositions: { + // type: 'function', + // value: (line: Line) => line.positions, + // }, getSize: { type: 'accessor', value: 1 }, getColor: { type: 'accessor', value: DEFAULT_COLOR }, getSpeedFactor: { type: 'accessor', value: 1.0 }, @@ -43,12 +95,33 @@ const defaultProps = { animated: { type: 'boolean', value: true }, getLineParallelIndex: { type: 'accessor', value: 0 }, getLineAngles: { type: 'accessor', value: [0, 0, 0] }, - distanceBetweenLines: { type: 'number', value: 1000 }, maxParallelOffset: { type: 'number', value: 100 }, minParallelOffset: { type: 'number', value: 3 }, opacity: { type: 'number', value: 1.0 }, + getDistanceBetweenLines: { type: 'accessor', value: 1000 }, +}; +type LineAttributes = { + distance: number; + positionsTextureOffset: number; + distancesTextureOffset: number; + pointCount: number; }; +// const isAccessorFunction = ( +// accessor: Accessor +// ): accessor is AccessorFunction => typeof accessor === 'function'; + +// const getValue = ( +// accessor: Accessor, +// object: In, +// objectInfo: AccessorContext +// ) => { +// if (isAccessorFunction(accessor)) { +// return accessor(object, objectInfo); +// } +// return accessor; +// }; + /** * A layer that draws arrows over the lines between voltage levels. The arrows are drawn on a direct line * or with a parallel offset. The initial point is also shifted to coincide with the fork line ends. @@ -59,12 +132,24 @@ const defaultProps = { * maxParallelOffset: max pixel distance * minParallelOffset: min pixel distance */ -export class ArrowLayer extends Layer { +export class ArrowLayer extends Layer> { + static layerName = 'ArrowLayer'; + static defaultProps = defaultProps; + + declare state: { + linePositionsTexture: Texture; + lineDistancesTexture: Texture; + lineAttributes: Map; + model?: Model; + timestamp: number; + stop: boolean; + maxTextureSize: number; + }; getShaders() { return super.getShaders({ vs, fs, modules: [project32, picking] }); } - getArrowLineAttributes(arrow) { + getArrowLineAttributes(arrow: Arrow): LineAttributes { const line = this.props.getLine(arrow); if (!line) { throw new Error('Invalid line'); @@ -77,21 +162,24 @@ export class ArrowLayer extends Layer { } initializeState() { - const { gl } = this.context; + const { device } = this.context; - if (!hasFeatures(gl, [FEATURES.TEXTURE_FLOAT])) { + if (!device.features.has('texture-blend-float-webgl')) { throw new Error('Arrow layer not supported on this browser'); } - const maxTextureSize = gl.getParameter(GL.MAX_TEXTURE_SIZE); + const maxTextureSize = device.getParametersWebGL( + GL.MAX_TEXTURE_SIZE + ) as unknown as number; + this.state = { maxTextureSize, - webgl2: isWebGL2(gl), - }; + } as this['state']; - this.getAttributeManager().addInstanced({ + this.getAttributeManager()?.addInstanced({ instanceSize: { size: 1, + type: 'float32', transition: true, accessor: 'getSize', defaultValue: 1, @@ -99,13 +187,13 @@ export class ArrowLayer extends Layer { instanceColor: { size: this.props.colorFormat.length, transition: true, - normalized: true, - type: GL.UNSIGNED_BYTE, + type: 'unorm8', // normalized: true, accessor: 'getColor', defaultValue: [0, 0, 0, 255], }, instanceSpeedFactor: { size: 1, + type: 'float32', transition: true, accessor: 'getSpeedFactor', defaultValue: 1.0, @@ -114,11 +202,12 @@ export class ArrowLayer extends Layer { size: 1, transition: true, accessor: 'getDistance', - type: GL.FLOAT, + type: 'float32', defaultValue: 0, }, instanceArrowDirection: { size: 1, + type: 'float32', transition: true, accessor: 'getDirection', transform: (direction) => { @@ -138,83 +227,98 @@ export class ArrowLayer extends Layer { instanceLineDistance: { size: 1, transition: true, - type: GL.FLOAT, - accessor: (arrow) => + type: 'float32', + accessor: (arrow: Arrow) => this.getArrowLineAttributes(arrow).distance, }, instanceLinePositionsTextureOffset: { size: 1, transition: true, - type: GL.FLOAT, - accessor: (arrow) => + type: 'sint32', + accessor: (arrow: Arrow) => this.getArrowLineAttributes(arrow).positionsTextureOffset, }, instanceLineDistancesTextureOffset: { size: 1, transition: true, - type: GL.FLOAT, - accessor: (arrow) => + type: 'sint32', + accessor: (arrow: Arrow) => this.getArrowLineAttributes(arrow).distancesTextureOffset, }, instanceLinePointCount: { size: 1, transition: true, - type: GL.FLOAT, - accessor: (arrow) => + type: 'sint32', + accessor: (arrow: Arrow) => this.getArrowLineAttributes(arrow).pointCount, }, instanceLineParallelIndex: { size: 1, accessor: 'getLineParallelIndex', - type: GL.FLOAT, + type: 'float32', }, instanceLineAngles: { size: 3, accessor: 'getLineAngles', - type: GL.FLOAT, + type: 'float32', }, instanceProximityFactors: { size: 2, - accessor: 'getProximityFactors', - type: GL.FLOAT, + accessor: 'getProximityFactors', //TODO where is it ??? + type: 'float32', + }, + instanceDistanceBetweenLines: { + size: 1, + transition: true, + accessor: 'getDistanceBetweenLines', + type: 'float32', + defaultValue: 1000, }, }); } - finalizeState() { - super.finalizeState(); + finalizeState(context: LayerContext) { + super.finalizeState(context); // we do not use setState to avoid a redraw, it is just used to stop the animation this.state.stop = true; } - createTexture2D(gl, data, elementSize, format, dataFormat) { + createTexture2D( + device: Device, + data: Array, + elementSize: number, + format: TextureFormat + ) { const start = performance.now(); - // we calculate the smallest square texture that is a power of 2 but less or equals to MAX_TEXTURE_SIZE + const { maxTextureSize } = this.state; + // we calculate the smallest texture width less or equals to MAX_TEXTURE_SIZE // (which is an property of the graphic card) const elementCount = data.length / elementSize; - const n = Math.ceil(Math.log2(elementCount) / 2); - const textureSize = 2 ** n; - const { maxTextureSize } = this.state; - if (textureSize > maxTextureSize) { + const expSum = Math.ceil(Math.log2(elementCount)); + const widthExp = Math.ceil(expSum / 2); + const heightExp = expSum - widthExp; + const width = Math.pow(2, widthExp); + const height = Math.pow(2, heightExp); + if (height > maxTextureSize || width > maxTextureSize) { throw new Error( - `Texture size (${textureSize}) cannot be greater than ${maxTextureSize}` + `Texture size ${width}*${height} cannot be greater than ${maxTextureSize}` ); } // data length needs to be width * height (otherwise we get an error), so we pad the data array with zero until // reaching the correct size. - if (data.length < textureSize * textureSize * elementSize) { - const oldLength = data.length; - data.length = textureSize * textureSize * elementSize; - data.fill(0, oldLength, textureSize * textureSize * elementSize); + const newLength = width * height * elementSize; + const oldLength = data.length; + if (data.length < newLength) { + data.length = newLength; + data.fill(0, oldLength, newLength); } - const texture2d = new Texture2D(gl, { - width: textureSize, - height: textureSize, - format: format, - dataFormat: dataFormat, + const texture2d = device.createTexture({ + width, + height, + format, type: GL.FLOAT, data: new Float32Array(data), parameters: { @@ -224,11 +328,11 @@ export class ArrowLayer extends Layer { [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE, }, mipmaps: false, - }); + } as TextureProps); const stop = performance.now(); console.info( - `Texture of ${elementCount} elements (${textureSize} * ${textureSize}) created in ${ + `Texture of ${elementCount} elements of size ${elementSize} (${width} * ${height}) created in ${ stop - start } ms` ); @@ -236,11 +340,11 @@ export class ArrowLayer extends Layer { return texture2d; } - createTexturesStructure(props) { + createTexturesStructure(props: this['props']) { const start = performance.now(); - const linePositionsTextureData = []; - const lineDistancesTextureData = []; + const linePositionsTextureData: number[] = []; + const lineDistancesTextureData: number[] = []; const lineAttributes = new Map(); let lineDistance = 0; @@ -259,16 +363,16 @@ export class ArrowLayer extends Layer { const lineDistancesTextureOffset = lineDistancesTextureData.length; let linePointCount = 0; if (positions.length > 0) { - positions.forEach((position) => { + positions.forEach((position: Position) => { // fill line positions texture linePositionsTextureData.push(position[0]); linePositionsTextureData.push(position[1]); linePointCount++; }); - lineDistancesTextureData.push(...line.cumulativeDistances); + lineDistancesTextureData.push(...line.cumulativeDistances!); lineDistance = - line.cumulativeDistances[ - line.cumulativeDistances.length - 1 + line.cumulativeDistances![ + line.cumulativeDistances!.length - 1 ]; } if (linePointCount > MAX_LINE_POINT_COUNT) { @@ -295,7 +399,7 @@ export class ArrowLayer extends Layer { }; } - updateGeometry({ props, changeFlags }) { + updateGeometry({ props, changeFlags }: UpdateParameters) { const geometryChanged = changeFlags.dataChanged || (changeFlags.updateTriggersChanged && @@ -303,7 +407,7 @@ export class ArrowLayer extends Layer { changeFlags.updateTriggersChanged.getLinePositions)); if (geometryChanged) { - const { gl } = this.context; + const { device } = this.context; const { linePositionsTextureData, @@ -312,18 +416,16 @@ export class ArrowLayer extends Layer { } = this.createTexturesStructure(props); const linePositionsTexture = this.createTexture2D( - gl, + device, linePositionsTextureData, 2, - this.state.webgl2 ? GL.RG32F : GL.LUMINANCE_ALPHA, - this.state.webgl2 ? GL.RG : GL.LUMINANCE_ALPHA + 'rg32float' //GL.RG32F, ); const lineDistancesTexture = this.createTexture2D( - gl, + device, lineDistancesTextureData, 1, - this.state.webgl2 ? GL.R32F : GL.LUMINANCE, - this.state.webgl2 ? GL.RED : GL.LUMINANCE + 'r32float' //GL.R32F, ); this.setState({ @@ -333,29 +435,29 @@ export class ArrowLayer extends Layer { }); if (!changeFlags.dataChanged) { - this.getAttributeManager().invalidateAll(); + this.getAttributeManager()?.invalidateAll(); } } } - updateModel({ changeFlags }) { - if (changeFlags.extensionsChanged) { - const { gl } = this.context; + updateModel({ changeFlags }: UpdateParameters) { + if (changeFlags.somethingChanged) { + const { device } = this.context; const { model } = this.state; if (model) { - model.delete(); + model.destroy(); } this.setState({ - model: this._getModel(gl), + model: this._getModel(device), }); - this.getAttributeManager().invalidateAll(); + this.getAttributeManager()?.invalidateAll(); } } - updateState(updateParams) { + updateState(updateParams: UpdateParameters) { super.updateState(updateParams); this.updateGeometry(updateParams); @@ -374,7 +476,7 @@ export class ArrowLayer extends Layer { } } - animate(timestamp) { + animate(timestamp: number) { if (this.state.stop) { return; } @@ -388,51 +490,60 @@ export class ArrowLayer extends Layer { window.requestAnimationFrame((timestamp) => this.animate(timestamp)); } - draw({ uniforms }) { - const { sizeMinPixels, sizeMaxPixels } = this.props; + draw({ + uniforms, + renderPass, + }: { + uniforms: Record; + renderPass: RenderPass; + }) { + const { sizeMinPixels, sizeMaxPixels, opacity } = this.props; const { + model, linePositionsTexture, lineDistancesTexture, timestamp, - webgl2, + // maxTextureSize, } = this.state; + model!.setBindings({ + linePositionsTexture, + lineDistancesTexture, + }); - this.state.model - .setUniforms(uniforms) - .setUniforms({ - sizeMinPixels, - sizeMaxPixels, - linePositionsTexture, - lineDistancesTexture, - linePositionsTextureSize: [ - linePositionsTexture.width, - linePositionsTexture.height, - ], - lineDistancesTextureSize: [ - lineDistancesTexture.width, - lineDistancesTexture.height, - ], - timestamp, - webgl2, - distanceBetweenLines: this.props.getDistanceBetweenLines, - maxParallelOffset: this.props.maxParallelOffset, - minParallelOffset: this.props.minParallelOffset, - }) - .draw(); + model!.setUniforms({ + ...uniforms, + sizeMinPixels, + sizeMaxPixels, + // maxTextureSize, + linePositionsTextureSize: [ + linePositionsTexture.width, + linePositionsTexture.height, + ], + opacity, + lineDistancesTextureSize: [ + lineDistancesTexture.width, + lineDistancesTexture.height, + ], + timestamp, + maxParallelOffset: this.props.maxParallelOffset, + minParallelOffset: this.props.minParallelOffset, + }); + model!.draw(renderPass); } - _getModel(gl) { + _getModel(device: Device) { const positions = [ -1, -1, 0, 0, 1, 0, 0, -0.6, 0, 1, -1, 0, 0, 1, 0, 0, -0.6, 0, ]; return new Model( - gl, + device, Object.assign(this.getShaders(), { id: this.props.id, + bufferLayout: this.getAttributeManager()!.getBufferLayouts(), geometry: new Geometry({ - drawMode: GL.TRIANGLES, + topology: 'triangle-list', vertexCount: 6, attributes: { positions: { @@ -446,6 +557,3 @@ export class ArrowLayer extends Layer { ); } } - -ArrowLayer.layerName = 'ArrowLayer'; -ArrowLayer.defaultProps = defaultProps; diff --git a/src/components/network-map-viewer/network/layers/fork-line-layer.js b/packages/network-map-layers/src/network/layers/fork-line-layer.ts similarity index 69% rename from src/components/network-map-viewer/network/layers/fork-line-layer.js rename to packages/network-map-layers/src/network/layers/fork-line-layer.ts index 8e48c935..5a505d53 100644 --- a/src/components/network-map-viewer/network/layers/fork-line-layer.js +++ b/packages/network-map-layers/src/network/layers/fork-line-layer.ts @@ -5,10 +5,30 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { LineLayer } from 'deck.gl'; -import GL from '@luma.gl/constants'; +import { Accessor, DefaultProps } from '@deck.gl/core'; +import { LineLayer, LineLayerProps } from '@deck.gl/layers'; -const defaultProps = { +export type ForkLineLayerProps = _ForkLineLayerProps & + LineLayerProps; + +type _ForkLineLayerProps = { + getLineParallelIndex: Accessor; + getLineAngle: Accessor; + distanceBetweenLines: Accessor; + maxParallelOffset: Accessor; + minParallelOffset: Accessor; + substationRadius: Accessor; + substationMaxPixel: Accessor; + minSubstationRadiusPixel: Accessor; + getDistanceBetweenLines: Accessor; + getMaxParallelOffset: Accessor; + getMinParallelOffset: Accessor; + getSubstationRadius: Accessor; + getSubstationMaxPixel: Accessor; + getMinSubstationRadiusPixel: Accessor; +}; + +const defaultProps: DefaultProps = { getLineParallelIndex: { type: 'accessor', value: 0 }, getLineAngle: { type: 'accessor', value: 0 }, distanceBetweenLines: { type: 'number', value: 1000 }, @@ -32,15 +52,23 @@ const defaultProps = { * substationMaxPixel: max pixel for a voltage level in substation * minSubstationRadiusPixel : min pixel for a substation */ -export default class ForkLineLayer extends LineLayer { +export default class ForkLineLayer extends LineLayer< + DataT, + Required<_ForkLineLayerProps> +> { + static layerName = 'ForkLineLayer'; + static defaultProps = defaultProps; + + // declare state: LineLayer['state']; + getShaders() { const shaders = super.getShaders(); shaders.inject = { 'vs:#decl': ` -attribute float instanceLineParallelIndex; -attribute float instanceLineAngle; -attribute float instanceOffsetStart; -attribute float instanceProximityFactor; +in float instanceLineParallelIndex; +in float instanceLineAngle; +in float instanceOffsetStart; +in float instanceProximityFactor; uniform float distanceBetweenLines; uniform float maxParallelOffset; uniform float minParallelOffset; @@ -71,35 +99,40 @@ uniform float minSubstationRadiusPixel; return shaders; } - initializeState(params) { - super.initializeState(params); + initializeState() { + super.initializeState(); - const attributeManager = this.getAttributeManager(); - attributeManager.addInstanced({ + this.getAttributeManager()?.addInstanced({ instanceLineParallelIndex: { size: 1, - type: GL.FLOAT, + type: 'float32', accessor: 'getLineParallelIndex', }, instanceLineAngle: { size: 1, - type: GL.FLOAT, + type: 'float32', accessor: 'getLineAngle', }, instanceOffsetStart: { size: 1, - type: GL.FLOAT, + type: 'float32', accessor: 'getSubstationOffset', }, instanceProximityFactor: { size: 1, - type: GL.FLOAT, + type: 'float32', accessor: 'getProximityFactor', }, }); } - draw({ uniforms }) { + draw({ + uniforms, + }: // renderPass, + { + uniforms: Record; + // renderPass: RenderPass; + }) { super.draw({ uniforms: { ...uniforms, @@ -114,6 +147,3 @@ uniform float minSubstationRadiusPixel; }); } } - -ForkLineLayer.layerName = 'ForkLineLayer'; -ForkLineLayer.defaultProps = defaultProps; diff --git a/src/components/network-map-viewer/network/layers/parallel-path-layer.js b/packages/network-map-layers/src/network/layers/parallel-path-layer.ts similarity index 82% rename from src/components/network-map-viewer/network/layers/parallel-path-layer.js rename to packages/network-map-layers/src/network/layers/parallel-path-layer.ts index e100f378..0b56f2a1 100644 --- a/src/components/network-map-viewer/network/layers/parallel-path-layer.js +++ b/packages/network-map-layers/src/network/layers/parallel-path-layer.ts @@ -4,10 +4,22 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { PathLayer } from 'deck.gl'; -import GL from '@luma.gl/constants'; +import { Accessor, DefaultProps } from '@deck.gl/core'; +import { PathLayer, PathLayerProps } from '@deck.gl/layers'; +import { RenderPass, UniformValue } from '@luma.gl/core'; -const defaultProps = { +type _ParallelPathLayerProps = { + getLineParallelIndex?: Accessor; + getLineAngle?: Accessor; + distanceBetweenLines?: number; + maxParallelOffset?: number; + minParallelOffset?: number; +}; + +export type ParallelPathLayerProps = + _ParallelPathLayerProps & PathLayerProps; + +const defaultProps: DefaultProps = { getLineParallelIndex: { type: 'accessor', value: 0 }, getLineAngle: { type: 'accessor', value: 0 }, distanceBetweenLines: { type: 'number', value: 1000 }, @@ -27,7 +39,13 @@ const defaultProps = { * maxParallelOffset: max pixel distance * minParallelOffset: min pixel distance */ -export default class ParallelPathLayer extends PathLayer { +export default class ParallelPathLayer extends PathLayer< + DataT, + Required<_ParallelPathLayerProps> +> { + static layerName = 'ParallelPathLayer'; + static defaultProps = defaultProps; + getShaders() { const shaders = super.getShaders(); shaders.inject = Object.assign({}, shaders.inject, { @@ -56,7 +74,7 @@ export default class ParallelPathLayer extends PathLayer { // also has the downside that you can't update one attribute and reconstruct // only its buffer, so it hurts performance a bit in this case. // But this is a rare case for us (changing parameters) so it doesn't matter much. -attribute vec4 instanceExtraAttributes; +in vec4 instanceExtraAttributes; uniform float distanceBetweenLines; uniform float maxParallelOffset; uniform float minParallelOffset; @@ -101,21 +119,25 @@ gl_Position += project_common_position_to_clipspace(trans) - project_uCenter; return shaders; } - initializeState(params) { - super.initializeState(params); + initializeState() { + super.initializeState(); - const attributeManager = this.getAttributeManager(); - attributeManager.addInstanced({ + this.getAttributeManager()?.addInstanced({ // too much instances variables need to compact some... instanceExtraAttributes: { size: 4, - type: GL.FLOAT, + type: 'float32', accessor: 'getExtraAttributes', }, }); } - draw({ uniforms }) { + draw({ + uniforms, + }: { + uniforms: Record; + renderPass: RenderPass; + }) { super.draw({ uniforms: { ...uniforms, @@ -126,6 +148,3 @@ gl_Position += project_common_position_to_clipspace(trans) - project_uCenter; }); } } - -ParallelPathLayer.layerName = 'ParallelPathLayer'; -ParallelPathLayer.defaultProps = defaultProps; diff --git a/src/components/network-map-viewer/network/layers/scatterplot-layer-ext.js b/packages/network-map-layers/src/network/layers/scatterplot-layer-ext.ts similarity index 56% rename from src/components/network-map-viewer/network/layers/scatterplot-layer-ext.js rename to packages/network-map-layers/src/network/layers/scatterplot-layer-ext.ts index 62ada661..c9a440e3 100644 --- a/src/components/network-map-viewer/network/layers/scatterplot-layer-ext.js +++ b/packages/network-map-layers/src/network/layers/scatterplot-layer-ext.ts @@ -4,17 +4,28 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { ScatterplotLayer } from 'deck.gl'; -import GL from '@luma.gl/constants'; +import { Accessor, DefaultProps } from '@deck.gl/core'; +import { ScatterplotLayer, ScatterplotLayerProps } from '@deck.gl/layers'; -const defaultProps = { +type _ScatterplotLayerExtProps = { + getRadiusMaxPixels: Accessor; +}; +export type ScatterplotLayerExtProps = + _ScatterplotLayerExtProps & ScatterplotLayerProps; + +const defaultProps: DefaultProps = { getRadiusMaxPixels: { type: 'accessor', value: 1 }, }; /** * An extended scatter plot layer that allows a radius max pixels to be different for each object. */ -export default class ScatterplotLayerExt extends ScatterplotLayer { +export default class ScatterplotLayerExt< + DataT = unknown +> extends ScatterplotLayer>> { + static layerName = 'ScatterplotLayerExt'; + static defaultProps = defaultProps; + getShaders() { const shaders = super.getShaders(); return Object.assign({}, shaders, { @@ -24,27 +35,23 @@ export default class ScatterplotLayerExt extends ScatterplotLayer { ), // hack to replace the uniform variable to corresponding attribute inject: { 'vs:#decl': `\ -attribute float instanceRadiusMaxPixels; +in float instanceRadiusMaxPixels; `, }, }); } - initializeState(params) { - super.initializeState(params); + initializeState() { + super.initializeState(); - const attributeManager = this.getAttributeManager(); - attributeManager.addInstanced({ + this.getAttributeManager()?.addInstanced({ instanceRadiusMaxPixels: { size: 1, transition: true, accessor: 'getRadiusMaxPixels', - type: GL.FLOAT, + type: 'float32', defaultValue: 0, }, }); } } - -ScatterplotLayerExt.layerName = 'ScatterplotLayerExt'; -ScatterplotLayerExt.defaultProps = defaultProps; diff --git a/src/components/network-map-viewer/network/line-layer.js b/packages/network-map-layers/src/network/line-layer.ts similarity index 71% rename from src/components/network-map-viewer/network/line-layer.js rename to packages/network-map-layers/src/network/line-layer.ts index 0a98e7af..97391f53 100644 --- a/src/components/network-map-viewer/network/line-layer.js +++ b/packages/network-map-layers/src/network/line-layer.ts @@ -5,47 +5,59 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { CompositeLayer, TextLayer, IconLayer } from 'deck.gl'; -import PadlockIcon from '../images/lock_black_24dp.svg'; -import BoltIcon from '../images/bolt_black_24dp.svg'; -import { PathStyleExtension } from '@deck.gl/extensions'; -import { ArrowLayer, ArrowDirection } from './layers/arrow-layer'; -import ParallelPathLayer from './layers/parallel-path-layer'; -import ForkLineLayer from './layers/fork-line-layer'; -import { getDistance } from 'geolib'; import { SUBSTATION_RADIUS, SUBSTATION_RADIUS_MAX_PIXEL, SUBSTATION_RADIUS_MIN_PIXEL, -} from './constants'; -import { INVALID_FLOW_OPACITY } from '../../../utils/colors'; +} from '@/constants'; +import BoltIcon from '@/images/bolt_black_24dp.svg?react'; +import PadlockIcon from '@/images/lock_black_24dp.svg?react'; +import { getNominalVoltageColor, INVALID_FLOW_OPACITY } from '@/utils/colors'; +import { Line, LonLat } from '@/utils/equipment-types'; +import { + Color, + CompositeLayer, + CompositeLayerProps, + Layer, + LayerContext, + Position, + UpdateParameters, +} from '@deck.gl/core'; +import { PathStyleExtension } from '@deck.gl/extensions'; +import { IconLayer, TextLayer } from '@deck.gl/layers'; +import { getDistance } from 'geolib'; +import { GeoData } from './geo-data'; +import { Arrow, ArrowDirection, ArrowLayer } from './layers/arrow-layer'; +import ForkLineLayer from './layers/fork-line-layer'; +import ParallelPathLayer from './layers/parallel-path-layer'; +import { MapEquipments } from './map-equipments'; const DISTANCE_BETWEEN_ARROWS = 10000.0; //Constants for Feeders mode const START_ARROW_POSITION = 0.1; const END_ARROW_POSITION = 0.9; -export const LineFlowMode = { - STATIC_ARROWS: 'staticArrows', - ANIMATED_ARROWS: 'animatedArrows', - FEEDERS: 'feeders', -}; +export enum LineFlowMode { + STATIC_ARROWS = 'staticArrows', + ANIMATED_ARROWS = 'animatedArrows', + FEEDERS = 'feeders', +} -export const LineFlowColorMode = { - NOMINAL_VOLTAGE: 'nominalVoltage', - OVERLOADS: 'overloads', -}; +export enum LineFlowColorMode { + NOMINAL_VOLTAGE = 'nominalVoltage', + OVERLOADS = 'overloads', +} const noDashArray = [0, 0]; const dashArray = [15, 10]; -function doDash(lineConnection) { +function doDash(lineConnection: LineConnection) { return ( !lineConnection.terminal1Connected || !lineConnection.terminal2Connected ); } -function getArrowDirection(p) { +function getArrowDirection(p: number) { if (p < 0) { return ArrowDirection.FROM_SIDE_2_TO_SIDE_1; } else if (p > 0) { @@ -55,22 +67,22 @@ function getArrowDirection(p) { } } -export const LineLoadingZone = { - UNKNOWN: 0, - SAFE: 1, - WARNING: 2, - OVERLOAD: 3, -}; +export enum LineLoadingZone { + UNKNOWN = 0, + SAFE = 1, + WARNING = 2, + OVERLOAD = 3, +} export function getLineLoadingZoneOfSide( - limit, - intensity, - lineFlowAlertThreshold + limit: number | undefined, + intensity: number | undefined, + lineFlowAlertThreshold: number ) { if (limit === undefined || intensity === undefined || intensity === 0) { return LineLoadingZone.UNKNOWN; } else { - let threshold = (lineFlowAlertThreshold * limit) / 100; + const threshold = (lineFlowAlertThreshold * limit) / 100; if (intensity > 0 && intensity < threshold) { return LineLoadingZone.SAFE; } else if (intensity >= threshold && intensity < limit) { @@ -81,7 +93,7 @@ export function getLineLoadingZoneOfSide( } } -export function getLineLoadingZone(line, lineFlowAlertThreshold) { +export function getLineLoadingZone(line: Line, lineFlowAlertThreshold: number) { const zone1 = getLineLoadingZoneOfSide( line.currentLimits1?.permanentLimit, line.i1, @@ -95,7 +107,7 @@ export function getLineLoadingZone(line, lineFlowAlertThreshold) { return Math.max(zone1, zone2); } -function getLineLoadingZoneColor(zone) { +function getLineLoadingZoneColor(zone: LineLoadingZone): Color { if (zone === LineLoadingZone.UNKNOWN) { return [128, 128, 128]; // grey } else if (zone === LineLoadingZone.SAFE) { @@ -109,11 +121,17 @@ function getLineLoadingZoneColor(zone) { } } -function getLineColor(line, nominalVoltageColor, props, lineConnection) { +function getLineColor( + line: Line, + nominalVoltageColor: Color, + props: LineLayer['props'], + lineConnection: LineConnection +) { if (props.lineFlowColorMode === LineFlowColorMode.NOMINAL_VOLTAGE) { if ( - !lineConnection.terminal1Connected && - !lineConnection.terminal2Connected + !lineConnection || + (!lineConnection.terminal1Connected && + !lineConnection.terminal2Connected) ) { return props.disconnectedLineColor; } else { @@ -127,7 +145,7 @@ function getLineColor(line, nominalVoltageColor, props, lineConnection) { } } -function getLineIcon(lineStatus) { +function getLineIcon(lineStatus: LineStatus) { return { url: lineStatus === 'PLANNED_OUTAGE' @@ -149,7 +167,10 @@ export const ArrowSpeed = { CRAZY: 4, }; -function getArrowSpeedOfSide(limit, intensity) { +function getArrowSpeedOfSide( + limit: number | undefined, + intensity: number | undefined +) { if (limit === undefined || intensity === undefined || intensity === 0) { return ArrowSpeed.STOPPED; } else { @@ -166,7 +187,7 @@ function getArrowSpeedOfSide(limit, intensity) { } } -function getArrowSpeed(line) { +function getArrowSpeed(line: Line) { const speed1 = getArrowSpeedOfSide( line.currentLimits1?.permanentLimit, line.i1 @@ -178,7 +199,7 @@ function getArrowSpeed(line) { return Math.max(speed1, speed2); } -function getArrowSpeedFactor(speed) { +function getArrowSpeedFactor(speed: number) { switch (speed) { case ArrowSpeed.STOPPED: return 0; @@ -195,9 +216,125 @@ function getArrowSpeedFactor(speed) { } } -export class LineLayer extends CompositeLayer { - initializeState() { - super.initializeState(); +type LineConnection = { + terminal1Connected: boolean; + terminal2Connected: boolean; +}; + +export enum LineStatus { + PLANNED_OUTAGE = 'PLANNED_OUTAGE', + FORCED_OUTAGE = 'FORCED_OUTAGE', + IN_OPERATION = 'IN_OPERATION', +} + +type LinesStatus = { + operatingStatus: LineStatus; +}; + +type CompositeDataLine = { + nominalV: number; + lines: Line[]; + arrows: Arrow[]; + positions: LonLat[]; + cumulativeDistances: number[]; +}; + +type ActivePower = { + p: number | undefined; + printPosition: Position; + offset: [number, number]; + line: Line; +}; + +type OperatingStatus = { + status: LineStatus; + printPosition: Position; + offset: [number, number]; +}; + +export type CompositeData = { + nominalV: number; + mapOriginDestination?: Map>; + lines: Line[]; + lineMap?: Map; + activePower: ActivePower[]; + operatingStatus: OperatingStatus[]; + arrows: Arrow[]; +}; + +type MinProximityFactor = { + lines: Line[]; + start: number; + end: number; +}; + +type _LineLayerProps = { + data: Line[]; + network: MapEquipments; + geoData: GeoData; + getNominalVoltageColor: (voltage: number) => Color; + disconnectedLineColor: Color; + filteredNominalVoltages: number[] | null; + lineFlowMode: LineFlowMode; + lineFlowColorMode: LineFlowColorMode; + lineFlowAlertThreshold: number; + showLineFlow: boolean; + lineFullPath: boolean; + lineParallelPath: boolean; + labelSize: number; + iconSize: number; + distanceBetweenLines: number; + maxParallelOffset: number; + minParallelOffset: number; + substationRadius: number; + substationMaxPixel: number; + minSubstationRadiusPixel: number; + areFlowsValid: boolean; + updatedLines: Line[]; + labelsVisible: boolean; + labelColor: Color; +}; + +export type LineLayerProps = _LineLayerProps & CompositeLayerProps; + +const defaultProps = { + network: null, + geoData: null, + getNominalVoltageColor: { type: 'accessor', value: getNominalVoltageColor }, + disconnectedLineColor: { type: 'color', value: [255, 255, 255] }, + filteredNominalVoltages: null, + lineFlowMode: LineFlowMode.FEEDERS, + lineFlowColorMode: LineFlowColorMode.NOMINAL_VOLTAGE, + lineFlowAlertThreshold: 100, + showLineFlow: true, + lineFullPath: true, + lineParallelPath: true, + labelSize: 12, + iconSize: 48, + distanceBetweenLines: 1000, + maxParallelOffset: 100, + minParallelOffset: 3, + substationRadius: { type: 'number', value: SUBSTATION_RADIUS }, + substationMaxPixel: { type: 'number', value: SUBSTATION_RADIUS_MAX_PIXEL }, + minSubstationRadiusPixel: { + type: 'number', + value: SUBSTATION_RADIUS_MIN_PIXEL, + }, + labelColor: [255, 255, 255], +}; + +export class LineLayer extends CompositeLayer> { + static layerName = 'LineLayer'; + static defaultProps = defaultProps; + + declare state: { + compositeData: CompositeData[]; + linesConnection: Map; + linesStatus: Map; + }; + + initializeState(context: LayerContext) { + super.initializeState(context); this.state = { compositeData: [], @@ -206,10 +343,16 @@ export class LineLayer extends CompositeLayer { }; } - getVoltageLevelIndex(voltageLevelId) { + getVoltageLevelIndex(voltageLevelId: string) { const { network } = this.props; const vl = network.getVoltageLevel(voltageLevelId); + if (vl === undefined) { + return undefined; + } const substation = network.getSubstation(vl.substationId); + if (substation === undefined) { + return undefined; + } return ( [ ...new Set( @@ -224,16 +367,15 @@ export class LineLayer extends CompositeLayer { } //TODO this is a huge function, refactor - updateState({ props, oldProps, changeFlags }) { - let compositeData; - let linesConnection; - let linesStatus; + updateState({ props, oldProps, changeFlags }: UpdateParameters) { + let compositeData: Partial[]; + let linesConnection: Map | undefined; + let linesStatus: Map | undefined; if (changeFlags.dataChanged) { compositeData = []; - - linesConnection = new Map(); - linesStatus = new Map(); + linesConnection = new Map(); + linesStatus = new Map(); if ( props.network != null && @@ -242,11 +384,15 @@ export class LineLayer extends CompositeLayer { props.geoData != null ) { // group lines by nominal voltage - const lineNominalVoltageIndexer = (map, line) => { + const lineNominalVoltageIndexer = ( + map: Map, + line: Line + ) => { const network = props.network; - const vl1 = network.getVoltageLevel(line.voltageLevelId1); - const vl2 = network.getVoltageLevel(line.voltageLevelId2); + const vl1 = network.getVoltageLevel(line.voltageLevelId1)!; + const vl2 = network.getVoltageLevel(line.voltageLevelId2)!; const vl = vl1 || vl2; + let list = map.get(vl.nominalV); if (!list) { list = []; @@ -259,31 +405,31 @@ export class LineLayer extends CompositeLayer { }; const linesByNominalVoltage = props.data.reduce( lineNominalVoltageIndexer, - new Map() + new Map() ); compositeData = Array.from(linesByNominalVoltage.entries()) - .map((e) => { - return { nominalV: e[0], lines: e[1] }; + .map(([nominalV, lines]) => { + return { nominalV, lines }; }) .sort((a, b) => b.nominalV - a.nominalV); - compositeData.forEach((compositeData) => { + compositeData.forEach((c) => { //find lines with same substations set - let mapOriginDestination = new Map(); - compositeData.mapOriginDestination = mapOriginDestination; - compositeData.lines.forEach((line) => { - linesConnection.set(line.id, { + const mapOriginDestination = new Map(); + c.mapOriginDestination = mapOriginDestination; + c.lines!.forEach((line) => { + linesConnection!.set(line.id, { terminal1Connected: line.terminal1Connected, terminal2Connected: line.terminal2Connected, }); - linesStatus.set(line.id, { - operatingStatus: line.operatingStatus, + linesStatus!.set(line.id, { + operatingStatus: line.operatingStatus!, }); const key = this.genLineKey(line); - let val = mapOriginDestination.get(key); + const val = mapOriginDestination.get(key); if (val == null) { mapOriginDestination.set(key, new Set([line])); } else { @@ -299,12 +445,12 @@ export class LineLayer extends CompositeLayer { if (props.updatedLines !== oldProps.updatedLines) { props.updatedLines.forEach((line1) => { - linesConnection.set(line1.id, { + linesConnection!.set(line1.id, { terminal1Connected: line1.terminal1Connected, terminal2Connected: line1.terminal2Connected, }); - linesStatus.set(line1.id, { - operatingStatus: line1.operatingStatus, + linesStatus!.set(line1.id, { + operatingStatus: line1.operatingStatus!, }); }); } @@ -317,7 +463,10 @@ export class LineLayer extends CompositeLayer { props.lineParallelPath !== oldProps.lineParallelPath || props.geoData !== oldProps.geoData)) ) { - this.recomputeParallelLinesIndex(compositeData, props); + this.recomputeParallelLinesIndex( + compositeData as CompositeData[], + props + ); } if ( @@ -326,9 +475,9 @@ export class LineLayer extends CompositeLayer { (oldProps.lineFullPath !== props.lineFullPath || oldProps.geoData !== props.geoData)) ) { - compositeData.forEach((compositeData) => { - let lineMap = new Map(); - compositeData.lines.forEach((line) => { + compositeData.forEach((c) => { + const lineMap = new Map(); + c.lines!.forEach((line) => { const positions = props.geoData.getLinePositions( props.network, line, @@ -342,7 +491,7 @@ export class LineLayer extends CompositeLayer { line: line, }); }); - compositeData.lineMap = lineMap; + c.lineMap = lineMap; }); } @@ -353,7 +502,7 @@ export class LineLayer extends CompositeLayer { props.lineParallelPath !== oldProps.lineParallelPath || props.geoData !== oldProps.geoData)) ) { - this.recomputeForkLines(compositeData, props); + this.recomputeForkLines(compositeData as CompositeData[], props); } if ( @@ -364,35 +513,35 @@ export class LineLayer extends CompositeLayer { props.geoData !== oldProps.geoData)) ) { //add labels - compositeData.forEach((compositeData) => { - compositeData.activePower = []; - compositeData.lines.forEach((line) => { - let lineData = compositeData.lineMap.get(line.id); - let arrowDirection = getArrowDirection(line.p1); - let coordinates1 = props.geoData.labelDisplayPosition( + compositeData.forEach((cData) => { + cData.activePower = []; + cData.lines!.forEach((line) => { + const lineData = cData.lineMap!.get(line.id)!; + const arrowDirection = getArrowDirection(line.p1); + const coordinates1 = props.geoData.labelDisplayPosition( lineData.positions, lineData.cumulativeDistances, START_ARROW_POSITION, arrowDirection, - line.parallelIndex, - (line.angle * 180) / Math.PI, - (line.angleStart * 180) / Math.PI, + line.parallelIndex!, + (line.angle! * 180) / Math.PI, + (line.angleStart! * 180) / Math.PI, props.distanceBetweenLines, - line.proximityFactorStart + line.proximityFactorStart! ); - let coordinates2 = props.geoData.labelDisplayPosition( + const coordinates2 = props.geoData.labelDisplayPosition( lineData.positions, lineData.cumulativeDistances, END_ARROW_POSITION, arrowDirection, - line.parallelIndex, - (line.angle * 180) / Math.PI, - (line.angleEnd * 180) / Math.PI, + line.parallelIndex!, + (line.angle! * 180) / Math.PI, + (line.angleEnd! * 180) / Math.PI, props.distanceBetweenLines, - line.proximityFactorEnd + line.proximityFactorEnd! ); if (coordinates1 !== null && coordinates2 !== null) { - compositeData.activePower.push({ + cData.activePower!.push({ line: line, p: line.p1, printPosition: [ @@ -401,7 +550,7 @@ export class LineLayer extends CompositeLayer { ], offset: coordinates1.offset, }); - compositeData.activePower.push({ + cData.activePower!.push({ line: line, p: line.p2, printPosition: [ @@ -424,30 +573,30 @@ export class LineLayer extends CompositeLayer { props.geoData !== oldProps.geoData)) ) { //add icons - compositeData.forEach((compositeData) => { - compositeData.operatingStatus = []; - compositeData.lines.forEach((line) => { - let lineStatus = linesStatus.get(line.id); + compositeData.forEach((cData) => { + cData.operatingStatus = []; + cData.lines!.forEach((line) => { + const lineStatus = linesStatus!.get(line.id); if ( lineStatus !== undefined && lineStatus.operatingStatus !== undefined && lineStatus.operatingStatus !== 'IN_OPERATION' ) { - let lineData = compositeData.lineMap.get(line.id); - let coordinatesIcon = + const lineData = cData.lineMap!.get(line.id)!; + const coordinatesIcon = props.geoData.labelDisplayPosition( lineData.positions, lineData.cumulativeDistances, 0.5, ArrowDirection.NONE, - line.parallelIndex, - (line.angle * 180) / Math.PI, - (line.angleEnd * 180) / Math.PI, + line.parallelIndex!, + (line.angle! * 180) / Math.PI, + (line.angleEnd! * 180) / Math.PI, props.distanceBetweenLines, - line.proximityFactorEnd + line.proximityFactorEnd! ); if (coordinatesIcon !== null) { - compositeData.operatingStatus.push({ + cData.operatingStatus!.push({ status: lineStatus.operatingStatus, printPosition: [ coordinatesIcon.position.longitude, @@ -473,12 +622,12 @@ export class LineLayer extends CompositeLayer { oldProps.lineFlowMode === LineFlowMode.FEEDERS)))) ) { // add arrows - compositeData.forEach((compositeData) => { - const lineMap = compositeData.lineMap; + compositeData.forEach((cData) => { + const lineMap = cData.lineMap!; // create one arrow each DISTANCE_BETWEEN_ARROWS - compositeData.arrows = compositeData.lines.flatMap((line) => { - let lineData = lineMap.get(line.id); + cData.arrows = cData.lines!.flatMap((line) => { + const lineData = lineMap.get(line.id)!; line.cumulativeDistances = lineData.cumulativeDistances; line.positions = lineData.positions; @@ -526,22 +675,21 @@ export class LineLayer extends CompositeLayer { }); }); } - this.setState({ - compositeData: compositeData, - linesConnection: linesConnection, - linesStatus: linesStatus, - }); + this.setState({ compositeData, linesConnection, linesStatus }); } - genLineKey(line) { + genLineKey(line: Line) { return line.voltageLevelId1 > line.voltageLevelId2 ? line.voltageLevelId1 + '##' + line.voltageLevelId2 : line.voltageLevelId2 + '##' + line.voltageLevelId1; } - recomputeParallelLinesIndex(compositeData, props) { - compositeData.forEach((compositeData) => { - const mapOriginDestination = compositeData.mapOriginDestination; + recomputeParallelLinesIndex( + compositeData: CompositeData[], + props: this['props'] + ) { + compositeData.forEach((cData) => { + const mapOriginDestination = cData.mapOriginDestination!; // calculate index for line with same substation set // The index is a real number in a normalized unit. // +1 => distanceBetweenLines on side @@ -572,11 +720,14 @@ export class LineLayer extends CompositeLayer { }); } - recomputeForkLines(compositeData, props) { - const mapMinProximityFactor = new Map(); - compositeData.forEach((compositeData) => { - compositeData.lines.forEach((line) => { - const positions = compositeData.lineMap.get(line.id).positions; + recomputeForkLines(compositeData: CompositeData[], props: this['props']) { + const mapMinProximityFactor = new Map(); + compositeData.forEach((cData) => { + cData.lines.forEach((line) => { + const positions = cData?.lineMap?.get(line.id)?.positions; + if (!positions) { + return; + } //the first and last in positions doesn't depend on lineFullPath line.origin = positions[0]; line.end = positions[positions.length - 1]; @@ -612,8 +763,8 @@ export class LineLayer extends CompositeLayer { positions[positions.length - 1] ); - let key = this.genLineKey(line); - let val = mapMinProximityFactor.get(key); + const key = this.genLineKey(line); + const val = mapMinProximityFactor.get(key); if (val == null) { mapMinProximityFactor.set(key, { lines: [line], @@ -636,7 +787,7 @@ export class LineLayer extends CompositeLayer { ); } - getProximityFactor(firstPosition, secondPosition) { + getProximityFactor(firstPosition: LonLat, secondPosition: LonLat) { let factor = getDistance(firstPosition, secondPosition) / (3 * this.props.distanceBetweenLines); @@ -646,7 +797,7 @@ export class LineLayer extends CompositeLayer { return factor; } - computeAngle(props, position1, position2) { + computeAngle(props: this['props'], position1: LonLat, position2: LonLat) { let angle = props.geoData.getMapAngle(position1, position2); angle = (angle * Math.PI) / 180 + Math.PI; if (angle < 0) { @@ -656,7 +807,7 @@ export class LineLayer extends CompositeLayer { } renderLayers() { - const layers = []; + const layers: Layer[] = []; const linePathUpdateTriggers = [ this.props.lineFullPath, @@ -665,44 +816,44 @@ export class LineLayer extends CompositeLayer { ]; // lines : create one layer per nominal voltage, starting from higher to lower nominal voltage - this.state.compositeData.forEach((compositeData) => { + this.state.compositeData.forEach((cData) => { const nominalVoltageColor = this.props.getNominalVoltageColor( - compositeData.nominalV + cData.nominalV ); const lineLayer = new ParallelPathLayer( this.getSubLayerProps({ - id: 'LineNominalVoltage' + compositeData.nominalV, - data: compositeData.lines, + id: 'LineNominalVoltage' + cData.nominalV, + data: cData.lines, widthScale: 20, widthMinPixels: 1, widthMaxPixels: 2, - getPath: (line) => + getPath: (line: Line) => this.props.geoData.getLinePositions( this.props.network, line, this.props.lineFullPath ), - getColor: (line) => + getColor: (line: Line) => getLineColor( line, nominalVoltageColor, this.props, - this.state.linesConnection.get(line.id) + this.state.linesConnection.get(line.id)! ), getWidth: 2, - getLineParallelIndex: (line) => line.parallelIndex, - getExtraAttributes: (line) => [ + getLineParallelIndex: (line: Line) => line.parallelIndex, + getExtraAttributes: (line: Line) => [ line.angleStart, line.angle, line.angleEnd, - line.parallelIndex * 2 + + line.parallelIndex! * 2 + 31 + 64 * - (Math.ceil(line.proximityFactorStart * 512) - + (Math.ceil(line.proximityFactorStart! * 512) - 1) + 64 * 512 * - (Math.ceil(line.proximityFactorEnd * 512) - 1), + (Math.ceil(line.proximityFactorEnd! * 512) - 1), ], distanceBetweenLines: this.props.distanceBetweenLines, maxParallelOffset: this.props.maxParallelOffset, @@ -710,7 +861,7 @@ export class LineLayer extends CompositeLayer { visible: !this.props.filteredNominalVoltages || this.props.filteredNominalVoltages.includes( - compositeData.nominalV + cData.nominalV ), updateTriggers: { getPath: linePathUpdateTriggers, @@ -726,8 +877,8 @@ export class LineLayer extends CompositeLayer { ], getDashArray: [this.props.updatedLines], }, - getDashArray: (line) => - doDash(this.state.linesConnection.get(line.id)) + getDashArray: (line: Line) => + doDash(this.state.linesConnection!.get(line.id)!) ? dashArray : noDashArray, extensions: [new PathStyleExtension({ dash: true })], @@ -737,42 +888,44 @@ export class LineLayer extends CompositeLayer { const arrowLayer = new ArrowLayer( this.getSubLayerProps({ - id: 'ArrowNominalVoltage' + compositeData.nominalV, - data: compositeData.arrows, + id: 'ArrowNominalVoltage' + cData.nominalV, + data: cData.arrows, sizeMinPixels: 3, sizeMaxPixels: 7, - getDistance: (arrow) => arrow.distance, - getLine: (arrow) => arrow.line, - getLinePositions: (line) => + getDistance: (arrow: Arrow) => arrow.distance, + getLine: (arrow: Arrow) => arrow.line, + getLinePositions: (line: Line) => this.props.geoData.getLinePositions( this.props.network, line, this.props.lineFullPath ), - getColor: (arrow) => + getColor: (arrow: Arrow) => getLineColor( arrow.line, nominalVoltageColor, this.props, - this.state.linesConnection.get(arrow.line.id) + this.state.linesConnection.get(arrow.line.id)! ), getSize: 700, - getSpeedFactor: (arrow) => + getSpeedFactor: (arrow: Arrow) => getArrowSpeedFactor(getArrowSpeed(arrow.line)), - getLineParallelIndex: (arrow) => arrow.line.parallelIndex, - getLineAngles: (arrow) => [ + getLineParallelIndex: (arrow: Arrow) => + arrow.line.parallelIndex, + getLineAngles: (arrow: Arrow) => [ arrow.line.angleStart, arrow.line.angle, arrow.line.angleEnd, ], - getProximityFactors: (arrow) => [ + getProximityFactors: (arrow: Arrow) => [ arrow.line.proximityFactorStart, arrow.line.proximityFactorEnd, ], - getDistanceBetweenLines: this.props.distanceBetweenLines, + getDistanceBetweenLines: () => + this.props.distanceBetweenLines, maxParallelOffset: this.props.maxParallelOffset, minParallelOffset: this.props.minParallelOffset, - getDirection: (arrow) => { + getDirection: (arrow: Arrow) => { return getArrowDirection(arrow.line.p1); }, animated: @@ -783,7 +936,7 @@ export class LineLayer extends CompositeLayer { this.props.showLineFlow && (!this.props.filteredNominalVoltages || this.props.filteredNominalVoltages.includes( - compositeData.nominalV + cData.nominalV )), opacity: this.props.areFlowsValid ? 1 @@ -806,25 +959,27 @@ export class LineLayer extends CompositeLayer { const startFork = new ForkLineLayer( this.getSubLayerProps({ - id: 'LineForkStart' + compositeData.nominalV, - getSourcePosition: (line) => line.origin, - getTargetPosition: (line) => line.end, - getSubstationOffset: (line) => line.substationIndexStart, - data: compositeData.lines, + id: 'LineForkStart' + cData.nominalV, + getSourcePosition: (line: Line) => line.origin, + getTargetPosition: (line: Line) => line.end, + getSubstationOffset: (line: Line) => + line.substationIndexStart, + data: cData.lines, widthScale: 20, widthMinPixels: 1, widthMaxPixels: 2, - getColor: (line) => + getColor: (line: Line) => getLineColor( line, nominalVoltageColor, this.props, - this.state.linesConnection.get(line.id) + this.state.linesConnection.get(line.id)! ), getWidth: 2, - getProximityFactor: (line) => line.proximityFactorStart, - getLineParallelIndex: (line) => line.parallelIndex, - getLineAngle: (line) => line.angleStart, + getProximityFactor: (line: Line) => + line.proximityFactorStart, + getLineParallelIndex: (line: Line) => line.parallelIndex, + getLineAngle: (line: Line) => line.angleStart, getDistanceBetweenLines: this.props.distanceBetweenLines, getMaxParallelOffset: this.props.maxParallelOffset, getMinParallelOffset: this.props.minParallelOffset, @@ -835,7 +990,7 @@ export class LineLayer extends CompositeLayer { visible: !this.props.filteredNominalVoltages || this.props.filteredNominalVoltages.includes( - compositeData.nominalV + cData.nominalV ), updateTriggers: { getLineParallelIndex: linePathUpdateTriggers, @@ -856,25 +1011,26 @@ export class LineLayer extends CompositeLayer { const endFork = new ForkLineLayer( this.getSubLayerProps({ - id: 'LineForkEnd' + compositeData.nominalV, - getSourcePosition: (line) => line.end, - getTargetPosition: (line) => line.origin, - getSubstationOffset: (line) => line.substationIndexEnd, - data: compositeData.lines, + id: 'LineForkEnd' + cData.nominalV, + getSourcePosition: (line: Line) => line.end, + getTargetPosition: (line: Line) => line.origin, + getSubstationOffset: (line: Line) => + line.substationIndexEnd, + data: cData.lines, widthScale: 20, widthMinPixels: 1, widthMaxPixels: 2, - getColor: (line) => + getColor: (line: Line) => getLineColor( line, nominalVoltageColor, this.props, - this.state.linesConnection.get(line.id) + this.state.linesConnection.get(line.id)! ), getWidth: 2, - getProximityFactor: (line) => line.proximityFactorEnd, - getLineParallelIndex: (line) => -line.parallelIndex, - getLineAngle: (line) => line.angleEnd + Math.PI, + getProximityFactor: (line: Line) => line.proximityFactorEnd, + getLineParallelIndex: (line: Line) => -line.parallelIndex!, + getLineAngle: (line: Line) => line.angleEnd! + Math.PI, getDistanceBetweenLines: this.props.distanceBetweenLines, getMaxParallelOffset: this.props.maxParallelOffset, getMinParallelOffset: this.props.minParallelOffset, @@ -885,7 +1041,7 @@ export class LineLayer extends CompositeLayer { visible: !this.props.filteredNominalVoltages || this.props.filteredNominalVoltages.includes( - compositeData.nominalV + cData.nominalV ), updateTriggers: { getLineParallelIndex: [this.props.lineParallelPath], @@ -907,9 +1063,9 @@ export class LineLayer extends CompositeLayer { // lines active power const lineActivePowerLabelsLayer = new TextLayer( this.getSubLayerProps({ - id: 'ActivePower' + compositeData.nominalV, - data: compositeData.activePower, - getText: (activePower) => + id: 'ActivePower' + cData.nominalV, + data: cData.activePower, + getText: (activePower: ActivePower) => activePower.p !== undefined ? Math.round(activePower.p).toString() : '', @@ -917,18 +1073,19 @@ export class LineLayer extends CompositeLayer { // the label is not correctly positioned on the lines, they are slightly off. // In the custom layers, we clamp the distanceBetweenLines. This is not done in the deck.gl TextLayer // and IconLayer or in the position calculated here. - getPosition: (activePower) => activePower.printPosition, + getPosition: (activePower: ActivePower) => + activePower.printPosition, getColor: this.props.labelColor, fontFamily: 'Roboto', getSize: this.props.labelSize, getAngle: 0, - getPixelOffset: (activePower) => + getPixelOffset: (activePower: ActivePower) => activePower.offset.map((x) => x), getTextAnchor: 'middle', visible: (!this.props.filteredNominalVoltages || this.props.filteredNominalVoltages.includes( - compositeData.nominalV + cData.nominalV )) && this.props.labelsVisible, opacity: this.props.areFlowsValid @@ -949,23 +1106,24 @@ export class LineLayer extends CompositeLayer { // line status const lineStatusIconLayer = new IconLayer( this.getSubLayerProps({ - id: 'OperatingStatus' + compositeData.nominalV, - data: compositeData.operatingStatus, + id: 'OperatingStatus' + cData.nominalV, + data: cData.operatingStatus, // The position passed to this layer causes a bug when zooming and maxParallelOffset is reached: // the icon is not correctly positioned on the lines, they are slightly off. // In the custom layers, we clamp the distanceBetweenLines. This is not done in the deck.gl TextLayer // and IconLayer or in the position calculated here. - getPosition: (operatingStatus) => + getPosition: (operatingStatus: OperatingStatus) => operatingStatus.printPosition, - getIcon: (operatingStatus) => + getIcon: (operatingStatus: OperatingStatus) => getLineIcon(operatingStatus.status), getSize: this.props.iconSize, getColor: () => this.props.labelColor, - getPixelOffset: (operatingStatus) => operatingStatus.offset, + getPixelOffset: (operatingStatus: OperatingStatus) => + operatingStatus.offset, visible: (!this.props.filteredNominalVoltages || this.props.filteredNominalVoltages.includes( - compositeData.nominalV + cData.nominalV )) && this.props.labelsVisible, updateTriggers: { @@ -985,30 +1143,3 @@ export class LineLayer extends CompositeLayer { return layers; } } - -LineLayer.layerName = 'LineLayer'; - -LineLayer.defaultProps = { - network: null, - geoData: null, - getNominalVoltageColor: { type: 'accessor', value: [255, 255, 255] }, - disconnectedLineColor: { type: 'color', value: [255, 255, 255] }, - filteredNominalVoltages: null, - lineFlowMode: LineFlowMode.FEEDERS, - lineFlowColorMode: LineFlowColorMode.NOMINAL_VOLTAGE, - lineFlowAlertThreshold: 100, - showLineFlow: true, - lineFullPath: true, - lineParallelPath: true, - labelSize: 12, - iconSize: 48, - distanceBetweenLines: 1000, - maxParallelOffset: 100, - minParallelOffset: 3, - substationRadius: { type: 'number', value: SUBSTATION_RADIUS }, - substationMaxPixel: { type: 'number', value: SUBSTATION_RADIUS_MAX_PIXEL }, - minSubstationRadiusPixel: { - type: 'number', - value: SUBSTATION_RADIUS_MIN_PIXEL, - }, -}; diff --git a/src/components/network-map-viewer/network/map-equipments.js b/packages/network-map-layers/src/network/map-equipments.ts similarity index 77% rename from src/components/network-map-viewer/network/map-equipments.js rename to packages/network-map-layers/src/network/map-equipments.ts index d6343045..d50d9e4a 100644 --- a/src/components/network-map-viewer/network/map-equipments.js +++ b/packages/network-map-layers/src/network/map-equipments.ts @@ -5,58 +5,56 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { EQUIPMENT_TYPES } from '../utils/equipment-types'; - -const elementIdIndexer = (map, element) => { +import { + EQUIPMENT_TYPES, + Equipment, + Line, + Substation, + VoltageLevel, +} from '@/utils/equipment-types'; + +const elementIdIndexer = ( + map: Map, + element: T +) => { map.set(element.id, element); return map; }; export class MapEquipments { - substations = []; - - substationsById = new Map(); - - lines = []; - - linesById = new Map(); - - tieLines = []; - - tieLinesById = new Map(); - - hvdcLines = []; - - hvdcLinesById = new Map(); - - voltageLevels = []; - - voltageLevelsById = new Map(); - - nominalVoltages = []; - + substations: Substation[] = []; + substationsById = new Map(); + lines: Line[] = []; + linesById = new Map(); + tieLines: Line[] = []; + tieLinesById = new Map(); + hvdcLines: Line[] = []; + hvdcLinesById = new Map(); + voltageLevels: VoltageLevel[] = []; + voltageLevelsById = new Map(); + nominalVoltages: number[] = []; intlRef = undefined; constructor() { // dummy constructor, to make children classes constructors happy } - newMapEquipmentForUpdate() { + newMapEquipmentForUpdate(): MapEquipments { /* shallow clone of the map-equipment https://stackoverflow.com/a/44782052 */ return Object.assign(Object.create(Object.getPrototypeOf(this)), this); } - checkAndGetValues(equipments) { + checkAndGetValues(equipments: Equipment[]) { return equipments ? equipments : []; } - completeSubstationsInfos(equipementsToIndex) { + completeSubstationsInfos(equipementsToIndex: Substation[]) { const nominalVoltagesSet = new Set(this.nominalVoltages); if (equipementsToIndex?.length === 0) { this.substationsById = new Map(); this.voltageLevelsById = new Map(); } - const substations = + const substations: Substation[] = equipementsToIndex?.length > 0 ? equipementsToIndex : this.substations; @@ -84,7 +82,11 @@ export class MapEquipments { ); } - updateEquipments(currentEquipments, newEquipements) { + updateEquipments( + currentEquipments: T[], + newEquipements: T[], + _equipmentType: EQUIPMENT_TYPES + ) { // replace current modified equipments currentEquipments.forEach((equipment1, index) => { const found = newEquipements.filter( @@ -104,7 +106,7 @@ export class MapEquipments { return [...currentEquipments, ...eqptsToAdd]; } - updateSubstations(substations, fullReload) { + updateSubstations(substations: Substation[], fullReload: boolean) { if (fullReload) { this.substations = []; } @@ -138,7 +140,7 @@ export class MapEquipments { } }); - if (substationAdded === true || voltageLevelAdded === true) { + if (substationAdded || voltageLevelAdded) { this.substations = [...this.substations]; } @@ -146,7 +148,7 @@ export class MapEquipments { this.completeSubstationsInfos(fullReload ? [] : substations); } - completeLinesInfos(equipementsToIndex) { + completeLinesInfos(equipementsToIndex: Line[]) { if (equipementsToIndex?.length > 0) { equipementsToIndex.forEach((line) => { this.linesById?.set(line.id, line); @@ -156,7 +158,7 @@ export class MapEquipments { } } - completeTieLinesInfos(equipementsToIndex) { + completeTieLinesInfos(equipementsToIndex: Line[]) { if (equipementsToIndex?.length > 0) { equipementsToIndex.forEach((tieLine) => { this.tieLinesById?.set(tieLine.id, tieLine); @@ -169,7 +171,7 @@ export class MapEquipments { } } - updateLines(lines, fullReload) { + updateLines(lines: Line[], fullReload: boolean) { if (fullReload) { this.lines = []; } @@ -181,7 +183,7 @@ export class MapEquipments { this.completeLinesInfos(fullReload ? [] : lines); } - updateTieLines(tieLines, fullReload) { + updateTieLines(tieLines: Line[], fullReload: boolean) { if (fullReload) { this.tieLines = []; } @@ -193,7 +195,7 @@ export class MapEquipments { this.completeTieLinesInfos(fullReload ? [] : tieLines); } - updateHvdcLines(hvdcLines, fullReload) { + updateHvdcLines(hvdcLines: Line[], fullReload: boolean) { if (fullReload) { this.hvdcLines = []; } @@ -205,7 +207,7 @@ export class MapEquipments { this.completeHvdcLinesInfos(fullReload ? [] : hvdcLines); } - completeHvdcLinesInfos(equipementsToIndex) { + completeHvdcLinesInfos(equipementsToIndex: Line[]) { if (equipementsToIndex?.length > 0) { equipementsToIndex.forEach((hvdcLine) => { this.hvdcLinesById?.set(hvdcLine.id, hvdcLine); @@ -218,7 +220,7 @@ export class MapEquipments { } } - removeBranchesOfVoltageLevel(branchesList, voltageLevelId) { + removeBranchesOfVoltageLevel(branchesList: Line[], voltageLevelId: string) { const remainingLines = branchesList.filter( (l) => l.voltageLevelId1 !== voltageLevelId && @@ -231,7 +233,7 @@ export class MapEquipments { return remainingLines; } - removeEquipment(equipmentType, equipmentId) { + removeEquipment(equipmentType: EQUIPMENT_TYPES, equipmentId: string) { switch (equipmentType) { case EQUIPMENT_TYPES.LINE: { this.lines = this.lines.filter((l) => l.id !== equipmentId); @@ -240,14 +242,17 @@ export class MapEquipments { } case EQUIPMENT_TYPES.VOLTAGE_LEVEL: { const substationId = - this.voltageLevelsById.get(equipmentId).substationId; - let voltageLevelsOfSubstation = - this.substationsById.get(substationId).voltageLevels; - voltageLevelsOfSubstation = voltageLevelsOfSubstation.filter( + this.voltageLevelsById.get(equipmentId)?.substationId; + if (substationId === undefined) { + return; + } + const substation = this.substationsById.get(substationId); + if (substation === undefined) { + return; + } + substation.voltageLevels = substation.voltageLevels.filter( (l) => l.id !== equipmentId ); - this.substationsById.get(substationId).voltageLevels = - voltageLevelsOfSubstation; this.removeBranchesOfVoltageLevel(this.lines, equipmentId); //New reference on substations to trigger reload of NetworkExplorer and NetworkMap @@ -260,6 +265,9 @@ export class MapEquipments { ); const substation = this.substationsById.get(equipmentId); + if (substation === undefined) { + return; + } substation.voltageLevels.map((vl) => this.removeEquipment(EQUIPMENT_TYPES.VOLTAGE_LEVEL, vl.id) ); @@ -274,7 +282,7 @@ export class MapEquipments { return this.voltageLevels; } - getVoltageLevel(id) { + getVoltageLevel(id: string) { return this.voltageLevelsById.get(id); } @@ -282,7 +290,7 @@ export class MapEquipments { return this.substations; } - getSubstation(id) { + getSubstation(id: string) { return this.substationsById.get(id); } @@ -294,7 +302,7 @@ export class MapEquipments { return this.lines; } - getLine(id) { + getLine(id: string) { return this.linesById.get(id); } @@ -302,7 +310,7 @@ export class MapEquipments { return this.hvdcLines; } - getHvdcLine(id) { + getHvdcLine(id: string) { return this.hvdcLinesById.get(id); } @@ -310,7 +318,7 @@ export class MapEquipments { return this.tieLines; } - getTieLine(id) { + getTieLine(id: string) { return this.tieLinesById.get(id); } } diff --git a/src/components/network-map-viewer/network/substation-layer.js b/packages/network-map-layers/src/network/substation-layer.ts similarity index 68% rename from src/components/network-map-viewer/network/substation-layer.js rename to packages/network-map-layers/src/network/substation-layer.ts index f83aaab2..6943ea8b 100644 --- a/src/components/network-map-viewer/network/substation-layer.js +++ b/packages/network-map-layers/src/network/substation-layer.ts @@ -5,16 +5,31 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { CompositeLayer, TextLayer } from 'deck.gl'; +import { + Color, + CompositeLayer, + DefaultProps, + LayerContext, + UpdateParameters, +} from '@deck.gl/core'; +import { TextLayer } from '@deck.gl/layers'; import ScatterplotLayerExt from './layers/scatterplot-layer-ext'; import { SUBSTATION_RADIUS, SUBSTATION_RADIUS_MAX_PIXEL, SUBSTATION_RADIUS_MIN_PIXEL, -} from './constants'; +} from '@/constants'; +import { getNominalVoltageColor } from '@/utils/colors'; +import { Substation, VoltageLevel } from '@/utils/equipment-types'; +import { GeoData } from './geo-data'; +import { CompositeData } from './line-layer'; +import { MapEquipments } from './map-equipments'; -const voltageLevelNominalVoltageIndexer = (map, voltageLevel) => { +const voltageLevelNominalVoltageIndexer = ( + map: Map, + voltageLevel: VoltageLevel +) => { let list = map.get(voltageLevel.nominalV); if (!list) { list = []; @@ -24,9 +39,48 @@ const voltageLevelNominalVoltageIndexer = (map, voltageLevel) => { return map; }; -export class SubstationLayer extends CompositeLayer { - initializeState() { - super.initializeState(); +type MetaVoltageLevel = { + nominalVoltageIndex: number; + voltageLevels: VoltageLevel[]; +}; + +type MetaVoltageLevelsByNominalVoltage = { + nominalV: number; + metaVoltageLevels: MetaVoltageLevel[]; +}; + +export type SubstationLayerProps = { + data: Substation[]; + network: MapEquipments; + geoData: GeoData; + getNominalVoltageColor: (nominalV: number) => Color; + filteredNominalVoltages: number[] | null; + labelsVisible: boolean; + labelColor: Color; + labelSize: number; + getNameOrId: (infos: Substation) => string | null; +}; + +const defaultProps: DefaultProps = { + getNominalVoltageColor: { type: 'function', value: getNominalVoltageColor }, + filteredNominalVoltages: null, + labelsVisible: false, + labelColor: { type: 'color', value: [255, 255, 255] }, + labelSize: 12, +}; + +export class SubstationLayer extends CompositeLayer { + static layerName = 'SubstationLayer'; + static defaultProps = defaultProps; + + declare state: { + compositeData: CompositeData[]; + metaVoltageLevelsByNominalVoltage?: MetaVoltageLevelsByNominalVoltage[]; + substationsLabels: Substation[]; + }; + + initializeState(context: LayerContext) { + super.initializeState(context); this.state = { compositeData: [], @@ -34,16 +88,23 @@ export class SubstationLayer extends CompositeLayer { }; } - updateState({ props, oldProps, changeFlags }) { + updateState({ + props: { data, filteredNominalVoltages, geoData, getNameOrId, network }, + oldProps, + changeFlags, + }: UpdateParameters) { if (changeFlags.dataChanged) { - let metaVoltageLevelsByNominalVoltage = new Map(); + const metaVoltageLevelsByNominalVoltage = new Map< + number, + MetaVoltageLevel[] + >(); - if (props.network != null && props.geoData != null) { + if (network != null && geoData != null) { // create meta voltage levels // a meta voltage level is made of: // - a list of voltage level that belong to same substation and with same nominal voltage // - index of the voltage levels nominal voltage in the substation nominal voltage list - props.data.forEach((substation) => { + data.forEach((substation) => { // index voltage levels of this substation by its nominal voltage (this is because we might // have several voltage levels with the same nominal voltage in the same substation) const voltageLevelsByNominalVoltage = @@ -66,10 +127,7 @@ export class SubstationLayer extends CompositeLayer { // add to global map of meta voltage levels indexed by nominal voltage Array.from(voltageLevelsByNominalVoltage.entries()).forEach( - (e) => { - const nominalV = e[0]; - const voltageLevels = e[1]; - + ([nominalV, voltageLevels]) => { let metaVoltageLevels = metaVoltageLevelsByNominalVoltage.get(nominalV); if (!metaVoltageLevels) { @@ -106,22 +164,22 @@ export class SubstationLayer extends CompositeLayer { if ( changeFlags.dataChanged || - props.getNameOrId !== oldProps.getNameOrId || - props.filteredNominalVoltages !== oldProps.filteredNominalVoltages + getNameOrId !== oldProps.getNameOrId || + filteredNominalVoltages !== oldProps.filteredNominalVoltages ) { - let substationsLabels = props.data; + let substationsLabels = data; if ( - props.network != null && - props.geoData != null && - props.filteredNominalVoltages != null + network != null && + geoData != null && + filteredNominalVoltages != null ) { // we construct the substations where there is at least one voltage level with a nominal voltage // present in the filteredVoltageLevels property, in order to handle correctly the substations labels visibility substationsLabels = substationsLabels.filter( (substation) => substation.voltageLevels.find((v) => - props.filteredNominalVoltages.includes(v.nominalV) + filteredNominalVoltages.includes(v.nominalV) ) !== undefined ); } @@ -134,21 +192,21 @@ export class SubstationLayer extends CompositeLayer { const layers = []; // substations : create one layer per nominal voltage, starting from higher to lower nominal voltage - this.state.metaVoltageLevelsByNominalVoltage.forEach((e) => { + this.state.metaVoltageLevelsByNominalVoltage?.forEach((e) => { const substationsLayer = new ScatterplotLayerExt( this.getSubLayerProps({ id: 'NominalVoltage' + e.nominalV, data: e.metaVoltageLevels, radiusMinPixels: SUBSTATION_RADIUS_MIN_PIXEL, - getRadiusMaxPixels: (metaVoltageLevel) => + getRadiusMaxPixels: (metaVoltageLevel: MetaVoltageLevel) => SUBSTATION_RADIUS_MAX_PIXEL * (metaVoltageLevel.nominalVoltageIndex + 1), - getPosition: (metaVoltageLevel) => + getPosition: (metaVoltageLevel: MetaVoltageLevel) => this.props.geoData.getSubstationPosition( metaVoltageLevel.voltageLevels[0].substationId ), getFillColor: this.props.getNominalVoltageColor(e.nominalV), - getRadius: (voltageLevel) => + getRadius: (voltageLevel: MetaVoltageLevel) => SUBSTATION_RADIUS * (voltageLevel.nominalVoltageIndex + 1), visible: @@ -156,8 +214,8 @@ export class SubstationLayer extends CompositeLayer { this.props.filteredNominalVoltages.includes(e.nominalV), updateTriggers: { getPosition: [ - this.props.geoData.substationPositionsById, - this.props.network.substations, + this.props?.geoData?.substationPositionsById, + this.props?.network?.substations, ], }, }) @@ -170,9 +228,10 @@ export class SubstationLayer extends CompositeLayer { this.getSubLayerProps({ id: 'Label', data: this.state.substationsLabels, - getPosition: (substation) => + getPosition: (substation: Substation) => this.props.geoData.getSubstationPosition(substation.id), - getText: (substation) => this.props.getNameOrId(substation), + getText: (substation: Substation) => + this.props.getNameOrId(substation), getColor: this.props.labelColor, fontFamily: 'Roboto', getSize: this.props.labelSize, @@ -195,15 +254,3 @@ export class SubstationLayer extends CompositeLayer { return layers; } } - -SubstationLayer.layerName = 'SubstationLayer'; - -SubstationLayer.defaultProps = { - network: null, - geoData: null, - getNominalVoltageColor: { type: 'accessor', value: [255, 255, 255] }, - filteredNominalVoltages: null, - labelsVisible: false, - labelColor: { type: 'color', value: [255, 255, 255] }, - labelSize: 12, -}; diff --git a/src/utils/colors.js b/packages/network-map-layers/src/utils/colors.ts similarity index 89% rename from src/utils/colors.js rename to packages/network-map-layers/src/utils/colors.ts index f59b8bec..fc191f23 100644 --- a/src/utils/colors.js +++ b/packages/network-map-layers/src/utils/colors.ts @@ -5,7 +5,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -export function getNominalVoltageColor(nominalVoltage) { +import { Color } from '@deck.gl/core'; + +export function getNominalVoltageColor(nominalVoltage: number): Color { if (nominalVoltage >= 300) { return [255, 0, 0]; } else if (nominalVoltage >= 170 && nominalVoltage < 300) { diff --git a/packages/network-map-layers/src/utils/equipment-types.ts b/packages/network-map-layers/src/utils/equipment-types.ts new file mode 100644 index 00000000..b0e6f0ca --- /dev/null +++ b/packages/network-map-layers/src/utils/equipment-types.ts @@ -0,0 +1,130 @@ +/** + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +import { LineStatus } from '@/network/line-layer'; + +export const EQUIPMENT_INFOS_TYPES = { + LIST: { type: 'LIST' }, + MAP: { type: 'MAP' }, + FORM: { type: 'FORM' }, + TAB: { type: 'TAB' }, + TOOLTIP: { type: 'TOOLTIP' }, +}; + +export enum EQUIPMENT_TYPES { + SUBSTATION = 'SUBSTATION', + VOLTAGE_LEVEL = 'VOLTAGE_LEVEL', + LINE = 'LINE', + TWO_WINDINGS_TRANSFORMER = 'TWO_WINDINGS_TRANSFORMER', + THREE_WINDINGS_TRANSFORMER = 'THREE_WINDINGS_TRANSFORMER', + HVDC_LINE = 'HVDC_LINE', + GENERATOR = 'GENERATOR', + BATTERY = 'BATTERY', + LOAD = 'LOAD', + SHUNT_COMPENSATOR = 'SHUNT_COMPENSATOR', + TIE_LINE = 'TIE_LINE', + DANGLING_LINE = 'DANGLING_LINE', + STATIC_VAR_COMPENSATOR = 'STATIC_VAR_COMPENSATOR', + HVDC_CONVERTER_STATION = 'HVDC_CONVERTER_STATION', + VSC_CONVERTER_STATION = 'VSC_CONVERTER_STATION', + LCC_CONVERTER_STATION = 'LCC_CONVERTER_STATION', + SWITCH = 'SWITCH', +} + +export type LonLat = [number, number]; + +export type VoltageLevel = { + id: string; + nominalV: number; + substationId: string; + substationName?: string; +}; + +export type Substation = { + id: string; + name: string; + voltageLevels: VoltageLevel[]; +}; + +export const isVoltageLevel = ( + object: Record +): object is VoltageLevel => 'substationId' in object; + +export const isSubstation = ( + object: Record +): object is Substation => 'voltageLevels' in object; + +export type Line = { + id: string; + voltageLevelId1: string; + voltageLevelId2: string; + name: string; + terminal1Connected: boolean; + terminal2Connected: boolean; + p1: number; + p2: number; + i1?: number; + i2?: number; + operatingStatus?: LineStatus; + currentLimits1?: { + permanentLimit: number; + } | null; + currentLimits2?: { + permanentLimit: number; + } | null; + // additionnal from line-layer + origin?: LonLat; + end?: LonLat; + substationIndexStart?: number; + substationIndexEnd?: number; + angle?: number; + angleStart?: number; + angleEnd?: number; + proximityFactorStart?: number; + proximityFactorEnd?: number; + parallelIndex?: number; + cumulativeDistances?: number[]; + positions?: LonLat[]; +}; + +export const isLine = (object: Record): object is Line => + 'id' in object && + 'voltageLevelId1' in object && + 'voltageLevelId2' in object; + +export type TieLine = { + id: string; +}; + +export enum ConvertersMode { + SIDE_1_RECTIFIER_SIDE_2_INVERTER, + SIDE_1_INVERTER_SIDE_2_RECTIFIER, +} + +export type HvdcLine = { + id: string; + convertersMode: ConvertersMode; + r: number; + nominalV: number; + activePowerSetpoint: number; + maxP: number; +}; + +export type Equipment = Line | Substation | TieLine | HvdcLine; + +// type EquimentLineTypes = EQUIPMENT_TYPES.LINE | EQUIPMENT_TYPES.TIE_LINE | EQUIPMENT_TYPES.HVDC_LINE; +export type LineEquimentLine = Line & { equipmentType: EQUIPMENT_TYPES.LINE }; +export type TieLineEquimentLine = Line & { + equipmentType: EQUIPMENT_TYPES.TIE_LINE; +}; +export type HvdcLineEquimentLine = Line & { + equipmentType: EQUIPMENT_TYPES.HVDC_LINE; +}; +export type EquimentLine = + | LineEquimentLine + | TieLineEquimentLine + | HvdcLineEquimentLine; diff --git a/packages/network-map-layers/src/vite-env.d.ts b/packages/network-map-layers/src/vite-env.d.ts new file mode 100644 index 00000000..ee9857a6 --- /dev/null +++ b/packages/network-map-layers/src/vite-env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/packages/network-map-layers/tsconfig.json b/packages/network-map-layers/tsconfig.json new file mode 100644 index 00000000..ec617a27 --- /dev/null +++ b/packages/network-map-layers/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "esnext", + "lib": ["ES2022"], + "target": "ESNext", + "declaration": true, + "outDir": "./dist", + "strict": true, + "skipLibCheck": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "noFallthroughCasesInSwitch": true, + "moduleResolution": "bundler", + "noEmit": true, + "resolveJsonModule": true, + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src"] +} diff --git a/packages/network-map-layers/vite.config.ts b/packages/network-map-layers/vite.config.ts new file mode 100644 index 00000000..8924fbd2 --- /dev/null +++ b/packages/network-map-layers/vite.config.ts @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2024, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +import * as path from 'node:path'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; +import svgr from 'vite-plugin-svgr'; +import pkg from './package.json' assert { type: 'json' }; + +export default defineConfig((_config) => ({ + plugins: [svgr(), dts()], + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, + build: { + minify: false, + lib: { + entry: path.resolve(__dirname, 'src/index.ts'), + formats: ['es'], + name: 'PowSyBl network map layers', + fileName: 'powsybl-network-map-layers', + }, + rollupOptions: { + external: [...Object.keys(pkg.peerDependencies), /^node:.*/], + }, + target: 'esnext', + }, +})); diff --git a/packages/single-line-diagram-viewer/package.json b/packages/single-line-diagram-viewer/package.json new file mode 100644 index 00000000..3c104e1b --- /dev/null +++ b/packages/single-line-diagram-viewer/package.json @@ -0,0 +1,35 @@ +{ + "name": "@amarant/single-line-diagram-viewer", + "version": "0.6.0", + "description": "Typescript library to integrate a powsybl svg diagram in a javascript project.", + "author": "powsybl team", + "homepage": "https://www.powsybl.org/", + "license": "MPL-2.0", + "repository": "git://github.com/powsybl/powsybl-diagram-viewer.git", + "type": "module", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "module": "./dist/single-line-diagram-viewer.js", + "exports": { + ".": { + "import": "./dist/single-line-diagram-viewer.js", + "types": "./dist/index.d.ts" + } + }, + "scripts": { + "build": "vite build" + }, + "dependencies": { + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.panzoom.js": "^2.1.2" + }, + "devDependencies": { + "typescript": "5.5.3", + "vite": "^5.3.3", + "vite-plugin-dts": "^3.9.1", + "vite-plugin-externalize-deps": "^0.8.0", + "vite-plugin-svgr": "^4.2.0" + } +} diff --git a/packages/single-line-diagram-viewer/src/index.ts b/packages/single-line-diagram-viewer/src/index.ts new file mode 100644 index 00000000..e756a1d0 --- /dev/null +++ b/packages/single-line-diagram-viewer/src/index.ts @@ -0,0 +1,12 @@ +export { SingleLineDiagramViewer } from './single-line-diagram-viewer'; +export type { + HandleTogglePopoverType, + OnBreakerCallbackType, + OnBusCallbackType, + OnFeederCallbackType, + OnNextVoltageCallbackType, + SLDMetadata, + SLDMetadataComponent, + SLDMetadataComponentSize, + SLDMetadataNode, +} from './single-line-diagram-viewer'; diff --git a/src/components/single-line-diagram-viewer/single-line-diagram-viewer.ts b/packages/single-line-diagram-viewer/src/single-line-diagram-viewer.ts similarity index 94% rename from src/components/single-line-diagram-viewer/single-line-diagram-viewer.ts rename to packages/single-line-diagram-viewer/src/single-line-diagram-viewer.ts index 3e4f2cc0..7e92b5ec 100644 --- a/src/components/single-line-diagram-viewer/single-line-diagram-viewer.ts +++ b/packages/single-line-diagram-viewer/src/single-line-diagram-viewer.ts @@ -50,16 +50,22 @@ const ARROW_SVG = const ARROW_HOVER_SVG = ''; +type Label = { + id: string; + positionName: string; +}; + export interface SLDMetadataNode { id: string; vid: string; - nextVId: string; - componentType: string; + nextVId?: string; + componentType?: string; rotationAngle?: number; open: boolean; - direction: string; + direction?: string; vlabel: boolean; - equipmentId: string; + equipmentId?: string; + labels: Label[]; } export interface SLDMetadataComponentSize { @@ -67,13 +73,25 @@ export interface SLDMetadataComponentSize { height: number; } +export type AnchorPoint = { + x: number; + y: number; + orientation: string; //'VERTICAL' | 'HORIZONTAL'; +}; + +export type Transformation = { + LEFT?: string; + RIGHT?: string; + DOWN?: string; +}; + export interface SLDMetadataComponent { type: string; - vid: string; - anchorPoints: unknown[]; + vid?: string; + anchorPoints?: AnchorPoint[]; size: SLDMetadataComponentSize; - transformations: unknown; - styleClass: string; + transformations?: Transformation; + styleClass?: string; } //models just the metadata subelements that are actually used(nodes) @@ -82,7 +100,7 @@ export interface SLDMetadata { nodes: SLDMetadataNode[]; wires: unknown[]; lines: unknown[]; - arrows: unknown[]; + arrows?: unknown[]; layoutParams: unknown; } @@ -109,7 +127,7 @@ export type OnBusCallbackType = ( y: number ) => void; -export type handleTogglePopoverType = ( +export type HandleTogglePopoverType = ( shouldDisplay: boolean, anchorEl: EventTarget | null, equipmentId: string, @@ -128,12 +146,12 @@ export class SingleLineDiagramViewer { onBreakerCallback: OnBreakerCallbackType | null; onFeederCallback: OnFeederCallbackType | null; onBusCallback: OnBusCallbackType | null; - selectionBackColor: string; + selectionBackColor: string | null; svgType: string; arrowSvg: string; arrowHoverSvg: string; svgDraw: Svg | undefined; - handleTogglePopover: handleTogglePopoverType | null; + handleTogglePopover: HandleTogglePopoverType | null; constructor( container: HTMLElement, @@ -148,8 +166,8 @@ export class SingleLineDiagramViewer { onBreakerCallback: OnBreakerCallbackType | null, onFeederCallback: OnFeederCallbackType | null, onBusCallback: OnBusCallbackType | null, - selectionBackColor: string, - handleTogglePopover: handleTogglePopoverType + selectionBackColor: string | null, + handleTogglePopover: HandleTogglePopoverType | null ) { this.container = container; this.svgType = svgType; @@ -400,7 +418,7 @@ export class SingleLineDiagramViewer { //remove arrows if the arrow points to the current svg navigable = navigable?.filter((element) => { - return vlList?.indexOf(element.nextVId) === -1; + return vlList?.indexOf(element!.nextVId!) === -1; }); const highestY = new Map(); @@ -450,7 +468,7 @@ export class SingleLineDiagramViewer { )?.size.width || 0; this.createSvgArrow( elementById, - element.direction, + element!.direction!, x + feederWidth / 2, highestY.get(element.vid), lowestY.get(element.vid) @@ -514,7 +532,11 @@ export class SingleLineDiagramViewer { // handling the navigation between voltage levels group.style.cursor = 'pointer'; - this.setArrowsStyle(group, 'currentColor', this.selectionBackColor); + this.setArrowsStyle( + group, + 'currentColor', + this.selectionBackColor! + ); let dragged = false; group.addEventListener('mousedown', () => { dragged = false; @@ -530,7 +552,7 @@ export class SingleLineDiagramViewer { (other) => other.id === element.id ); if (meta !== undefined && meta !== null) { - this.onNextVoltageCallback?.(meta.nextVId); + this.onNextVoltageCallback?.(meta.nextVId!); } }); @@ -538,7 +560,7 @@ export class SingleLineDiagramViewer { group.addEventListener('mouseenter', (e: Event) => { this.setArrowsStyle( e.target as SVGElement, - this.selectionBackColor, + this.selectionBackColor!, 'currentColor' ); }); @@ -547,7 +569,7 @@ export class SingleLineDiagramViewer { this.setArrowsStyle( e.target as SVGElement, 'currentColor', - this.selectionBackColor + this.selectionBackColor! ); }); } @@ -557,7 +579,7 @@ export class SingleLineDiagramViewer { // handling the click on a switch if (this.onBreakerCallback != null) { const switches = this.svgMetadata?.nodes.filter((element) => - SWITCH_COMPONENT_TYPES.has(element.componentType) + SWITCH_COMPONENT_TYPES.has(element.componentType!) ); switches?.forEach((aSwitch) => { const domEl: HTMLElement | null = this.container.querySelector( @@ -579,7 +601,7 @@ export class SingleLineDiagramViewer { const switchId = aSwitch.equipmentId; const open = aSwitch.open; this.onBreakerCallback?.( - switchId, + switchId!, !open, event.currentTarget ); @@ -679,7 +701,7 @@ export class SingleLineDiagramViewer { const feeders = this.svgMetadata?.nodes.filter((element) => { return ( element.vid !== '' && - FEEDER_COMPONENT_TYPES.has(element.componentType) + FEEDER_COMPONENT_TYPES.has(element.componentType!) ); }); feeders?.forEach((feeder) => { @@ -690,7 +712,7 @@ export class SingleLineDiagramViewer { if (svgText !== undefined && svgText !== null) { svgText.style.cursor = 'pointer'; svgText.addEventListener('mouseenter', () => { - showFeederSelection(svgText, this.selectionBackColor); + showFeederSelection(svgText, this.selectionBackColor!); }); svgText.addEventListener('mouseleave', () => { hideFeederSelection(svgText); @@ -699,8 +721,8 @@ export class SingleLineDiagramViewer { event.preventDefault(); event.stopPropagation(); this.onFeederCallback?.( - feeder.equipmentId, - feeder.componentType, + feeder.equipmentId!, + feeder.componentType!, feeder.id, event.x, event.y @@ -720,7 +742,7 @@ export class SingleLineDiagramViewer { // handling the hover on the equipments const svgEquipments = this.svgMetadata?.nodes.filter((node) => - equipmentsWithPopover.includes(node.componentType) + equipmentsWithPopover.includes(node.componentType!) ); svgEquipments?.forEach((equipment) => { const svgEquipment = this.container?.querySelector( @@ -734,8 +756,8 @@ export class SingleLineDiagramViewer { this.handleTogglePopover?.( true, event.currentTarget, - equipment.equipmentId, - equipmentType + equipment.equipmentId!, + equipmentType! ); }); svgEquipment?.addEventListener('mouseout', () => { @@ -746,7 +768,7 @@ export class SingleLineDiagramViewer { private addBusHandler() { const buses = this.svgMetadata?.nodes.filter((element) => - BUSBAR_SECTION_TYPES.has(element.componentType) + BUSBAR_SECTION_TYPES.has(element.componentType!) ); buses?.forEach((bus) => { const svgBus: HTMLElement | null = this.container?.querySelector( @@ -758,7 +780,7 @@ export class SingleLineDiagramViewer { event.preventDefault(); event.stopPropagation(); this.onBusCallback?.( - bus.equipmentId, + bus.equipmentId!, bus.id, event.x, event.y diff --git a/packages/single-line-diagram-viewer/tsconfig.json b/packages/single-line-diagram-viewer/tsconfig.json new file mode 100644 index 00000000..ec617a27 --- /dev/null +++ b/packages/single-line-diagram-viewer/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "esnext", + "lib": ["ES2022"], + "target": "ESNext", + "declaration": true, + "outDir": "./dist", + "strict": true, + "skipLibCheck": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "noFallthroughCasesInSwitch": true, + "moduleResolution": "bundler", + "noEmit": true, + "resolveJsonModule": true, + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src"] +} diff --git a/packages/single-line-diagram-viewer/vite.config.ts b/packages/single-line-diagram-viewer/vite.config.ts new file mode 100644 index 00000000..aea298f9 --- /dev/null +++ b/packages/single-line-diagram-viewer/vite.config.ts @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2024, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +import * as path from 'node:path'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; +import svgr from 'vite-plugin-svgr'; +import pkg from './package.json' assert { type: 'json' }; + +export default defineConfig((_config) => ({ + plugins: [svgr(), dts()], + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, + build: { + minify: false, + lib: { + entry: path.resolve(__dirname, 'src/index.ts'), + formats: ['es'], + name: 'PowSyBl single line diagram viewer', + fileName: 'single-line-diagram-viewer', + }, + rollupOptions: { + external: [...Object.keys(pkg.dependencies), /^node:.*/], + }, + target: 'esnext', + }, +})); diff --git a/src/components/network-area-diagram-viewer/network-area-diagram-viewer.test.ts b/src/components/network-area-diagram-viewer/network-area-diagram-viewer.test.ts index 7296025d..0be7d8e1 100644 --- a/src/components/network-area-diagram-viewer/network-area-diagram-viewer.test.ts +++ b/src/components/network-area-diagram-viewer/network-area-diagram-viewer.test.ts @@ -7,7 +7,7 @@ import { NetworkAreaDiagramViewer } from './network-area-diagram-viewer'; -describe('Test network-area-diagram-viewer.ts', () => { +describe('Test network-area-diagram-viewer', () => { // SVG aren't loaded properly in DOM with Jest. Has to be enriched... test('nad creation', () => { const container: HTMLDivElement = document.createElement('div'); diff --git a/src/components/network-map-viewer/network/draw-control.ts b/src/components/network-map-viewer/network/draw-control.ts index 20e464fc..256a9797 100644 --- a/src/components/network-map-viewer/network/draw-control.ts +++ b/src/components/network-map-viewer/network/draw-control.ts @@ -8,8 +8,8 @@ import MapboxDraw from '@mapbox/mapbox-gl-draw'; import { useCallback } from 'react'; import { useControl } from 'react-map-gl'; -import type { ControlPosition } from 'react-map-gl'; import { EventedListener } from 'mapbox-gl'; +import type { ControlPosition } from 'react-map-gl'; let mapDrawerController: MapboxDraw | undefined = undefined; @@ -24,17 +24,33 @@ export enum DRAW_MODES { DIRECT_SELECT = 'direct_select', } -type DrawControlProps = ConstructorParameters[0] & { +export type DrawControlProps = ConstructorParameters[0] & { position?: ControlPosition; readyToDisplay: boolean; onDrawPolygonModeActive: (polygoneDrawing: DRAW_MODES) => void; - onCreate: EventedListener; - onUpdate: EventedListener; - onDelete: EventedListener; + onCreate?: EventedListener; + onUpdate?: EventedListener; + onDelete?: EventedListener; +}; + +const DefaultProps = { + onCreate: () => {}, + onUpdate: () => {}, + onDelete: () => {}, }; export default function DrawControl(props: DrawControlProps) { - const { onDrawPolygonModeActive } = props; + const { + onDrawPolygonModeActive, + position, + onCreate, + onUpdate, + onDelete, + ...mapboxProps + } = { + ...DefaultProps, + ...props, + }; const onModeChange = useCallback( (e: { mode: DRAW_MODES }) => { onDrawPolygonModeActive(e.mode); @@ -45,33 +61,27 @@ export default function DrawControl(props: DrawControlProps) { useControl( //onCreate () => { - mapDrawerController = new MapboxDraw({ ...props }); + mapDrawerController = new MapboxDraw({ ...mapboxProps }); return mapDrawerController; }, //on add ({ map }) => { - map.on('draw.create', props.onCreate); - map.on('draw.update', props.onUpdate); - map.on('draw.delete', props.onDelete); + map.on('draw.create', onCreate); + map.on('draw.update', onUpdate); + map.on('draw.delete', onDelete); map.on('draw.modechange', onModeChange); }, //onRemove ({ map }) => { - map.off('draw.create', props.onCreate); - map.off('draw.update', props.onUpdate); - map.off('draw.delete', props.onDelete); + map.off('draw.create', onCreate); + map.off('draw.update', onUpdate); + map.off('draw.delete', onDelete); map.off('draw.modechange', onModeChange); }, { - position: props.position, + position, } ); return null; } - -DrawControl.defaultProps = { - onCreate: () => {}, - onUpdate: () => {}, - onDelete: () => {}, -}; diff --git a/src/components/network-map-viewer/network/layers/arrow-layer-fragment.glsl.js b/src/components/network-map-viewer/network/layers/arrow-layer-fragment.glsl.js deleted file mode 100644 index e97b7c0b..00000000 --- a/src/components/network-map-viewer/network/layers/arrow-layer-fragment.glsl.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (c) 2022, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -const fs = `\ -#define SHADER_NAME arrow-layer-fragment-shader - -precision highp float; - -varying vec4 vFillColor; -varying float shouldDiscard; - -void main(void) { - if (shouldDiscard > 0.0) { - discard; - } - gl_FragColor = vFillColor; -} -`; -export default fs; diff --git a/src/components/network-map-viewer/network/network-map.jsx b/src/components/network-map-viewer/network/network-map.jsx deleted file mode 100644 index a770c8a6..00000000 --- a/src/components/network-map-viewer/network/network-map.jsx +++ /dev/null @@ -1,841 +0,0 @@ -/** - * Copyright (c) 2020, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -import PropTypes from 'prop-types'; -import React, { - forwardRef, - useCallback, - useEffect, - useImperativeHandle, - useMemo, - useRef, - useState, -} from 'react'; - -import { Box, decomposeColor } from '@mui/system'; -import LoaderWithOverlay from '../utils/loader-with-overlay'; - -import { MapboxOverlay } from '@deck.gl/mapbox'; -import { Replay } from '@mui/icons-material'; -import { Button, useTheme } from '@mui/material'; -import { FormattedMessage } from 'react-intl'; -import { Map, NavigationControl, useControl } from 'react-map-gl'; -import { getNominalVoltageColor } from '../../../utils/colors'; -import { useNameOrId } from '../utils/equipmentInfosHandler'; -import { GeoData } from './geo-data'; -import DrawControl, { getMapDrawer } from './draw-control.ts'; -import { LineFlowColorMode, LineFlowMode, LineLayer } from './line-layer'; -import { MapEquipments } from './map-equipments'; -import { SubstationLayer } from './substation-layer'; - -import booleanPointInPolygon from '@turf/boolean-point-in-polygon'; -import mapboxgl from 'mapbox-gl'; -import 'mapbox-gl/dist/mapbox-gl.css'; -import maplibregl from 'maplibre-gl'; -import 'maplibre-gl/dist/maplibre-gl.css'; -import '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css'; -import { EQUIPMENT_TYPES } from '../utils/equipment-types.js'; - -// MouseEvent.button https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button -const MOUSE_EVENT_BUTTON_LEFT = 0; -const MOUSE_EVENT_BUTTON_RIGHT = 2; - -/** - * Represents the draw event types for the network map. - * when a draw event is triggered, the event type is passed to the onDrawEvent callback - * On create, when the user create a new polygon (shape finished) - */ -export const DRAW_EVENT = { - CREATE: 1, - UPDATE: 2, - DELETE: 0, -}; - -// Small boilerplate recommended by deckgl, to bridge to a react-map-gl control declaratively -// see https://deck.gl/docs/api-reference/mapbox/mapbox-overlay#using-with-react-map-gl -const DeckGLOverlay = React.forwardRef((props, ref) => { - const overlay = useControl(() => new MapboxOverlay(props)); - overlay.setProps(props); - useImperativeHandle(ref, () => overlay, [overlay]); - return null; -}); - -const PICKING_RADIUS = 5; - -const CARTO = 'carto'; -const CARTO_NOLABEL = 'cartonolabel'; -const MAPBOX = 'mapbox'; - -const LIGHT = 'light'; -const DARK = 'dark'; - -const styles = { - mapManualRefreshBackdrop: { - width: '100%', - height: '100%', - textAlign: 'center', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - background: 'grey', - opacity: '0.8', - zIndex: 99, - fontSize: 30, - }, -}; - -const FALLBACK_MAPBOX_TOKEN = - 'pk.eyJ1IjoiZ2VvZmphbWciLCJhIjoiY2pwbnRwcm8wMDYzMDQ4b2pieXd0bDMxNSJ9.Q4aL20nBo5CzGkrWtxroug'; - -const SUBSTATION_LAYER_PREFIX = 'substationLayer'; -const LINE_LAYER_PREFIX = 'lineLayer'; -const LABEL_SIZE = 12; -const INITIAL_CENTERED = { - lastCenteredSubstation: null, - centeredSubstationId: null, - centered: false, -}; - -// get polygon coordinates (features) or an empty object -function getPolygonFeatures() { - return getMapDrawer()?.getAll()?.features[0] ?? {}; -} -const NetworkMap = forwardRef((props, ref) => { - const [labelsVisible, setLabelsVisible] = useState(false); - const [showLineFlow, setShowLineFlow] = useState(true); - const [showTooltip, setShowTooltip] = useState(true); - const mapRef = useRef(); - const deckRef = useRef(); - const [centered, setCentered] = useState(INITIAL_CENTERED); - const lastViewStateRef = useRef(null); - const [tooltip, setTooltip] = useState({}); - const theme = useTheme(); - const foregroundNeutralColor = useMemo(() => { - const labelColor = decomposeColor(theme.palette.text.primary).values; - labelColor[3] *= 255; - return labelColor; - }, [theme]); - const [cursorType, setCursorType] = useState('grab'); - const [isDragging, setDragging] = useState(false); - - //NOTE these constants are moved to the component's parameters list - //const currentNode = useSelector((state) => state.currentTreeNode); - const { - onPolygonChanged, - centerOnSubstation, - onDrawEvent, - shouldDisableToolTip, - } = props; - - const { getNameOrId } = useNameOrId(props.useName); - - const readyToDisplay = - props.mapEquipments !== null && - props.geoData !== null && - !props.disabled; - - const readyToDisplaySubstations = - readyToDisplay && - props.mapEquipments.substations && - props.geoData.substationPositionsById.size > 0; - - const readyToDisplayLines = - readyToDisplay && - (props.mapEquipments?.lines || - props.mapEquipments?.hvdcLines || - props.mapEquipments?.tieLines) && - props.mapEquipments.voltageLevels && - props.geoData.substationPositionsById.size > 0; - - const mapEquipmentsLines = useMemo(() => { - return [ - ...(props.mapEquipments?.lines.map((line) => ({ - ...line, - equipmentType: EQUIPMENT_TYPES.LINE, - })) ?? []), - ...(props.mapEquipments?.tieLines.map((tieLine) => ({ - ...tieLine, - equipmentType: EQUIPMENT_TYPES.TIE_LINE, - })) ?? []), - ...(props.mapEquipments?.hvdcLines.map((hvdcLine) => ({ - ...hvdcLine, - equipmentType: EQUIPMENT_TYPES.HVDC_LINE, - })) ?? []), - ]; - }, [ - props.mapEquipments?.hvdcLines, - props.mapEquipments?.tieLines, - props.mapEquipments?.lines, - ]); - - const divRef = useRef(); - - const mToken = !props.mapBoxToken - ? FALLBACK_MAPBOX_TOKEN - : props.mapBoxToken; - - useEffect(() => { - if (centerOnSubstation === null) { - return; - } - setCentered({ - lastCenteredSubstation: null, - centeredSubstationId: centerOnSubstation?.to, - centered: true, - }); - }, [centerOnSubstation]); - - // TODO simplify this, now we use Map as the camera controlling component - // so we don't need the deckgl ref anymore. The following comments are - // probably outdated, cleanup everything: - // Do this in onAfterRender because when doing it in useEffect (triggered by calling setDeck()), - // it doesn't work in the case of using the browser backward/forward buttons (because in this particular case, - // we get the ref to the deck and it has not yet initialized..) - function onAfterRender() { - // TODO outdated comment - //use centered and deck to execute this block only once when the data is ready and deckgl is initialized - //TODO, replace the next lines with setProps( { initialViewState } ) when we upgrade to 8.1.0 - //see https://github.com/uber/deck.gl/pull/4038 - //This is a hack because it accesses the properties of deck directly but for now it works - if ( - (!centered.centered || - (centered.centeredSubstationId && - centered.centeredSubstationId !== - centered.lastCenteredSubstation)) && - props.geoData !== null - ) { - if (props.geoData.substationPositionsById.size > 0) { - if (centered.centeredSubstationId) { - const geodata = props.geoData.substationPositionsById.get( - centered.centeredSubstationId - ); - if (!geodata) { - return; - } // can't center on substation if no coordinate. - mapRef.current?.flyTo({ - center: [geodata.lon, geodata.lat], - duration: 2000, - }); - setCentered({ - lastCenteredSubstation: centered.centeredSubstationId, - centeredSubstationId: centered.centeredSubstationId, - centered: true, - }); - } else { - const coords = Array.from( - props.geoData.substationPositionsById.entries() - ).map((x) => x[1]); - const maxlon = Math.max.apply( - null, - coords.map((x) => x.lon) - ); - const minlon = Math.min.apply( - null, - coords.map((x) => x.lon) - ); - const maxlat = Math.max.apply( - null, - coords.map((x) => x.lat) - ); - const minlat = Math.min.apply( - null, - coords.map((x) => x.lat) - ); - const marginlon = (maxlon - minlon) / 10; - const marginlat = (maxlat - minlat) / 10; - mapRef.current?.fitBounds( - [ - [minlon - marginlon / 2, minlat - marginlat / 2], - [maxlon + marginlon / 2, maxlat + marginlat / 2], - ], - { animate: false } - ); - setCentered({ - lastCenteredSubstation: null, - centered: true, - }); - } - } - } - } - - function onViewStateChange(info) { - lastViewStateRef.current = info.viewState; - if ( - !info.interactionState || // first event of before an animation (e.g. clicking the +/- buttons of the navigation controls, gives the target - (info.interactionState && !info.interactionState.inTransition) // Any event not part of a animation (mouse panning or zooming) - ) { - if ( - info.viewState.zoom >= props.labelsZoomThreshold && - !labelsVisible - ) { - setLabelsVisible(true); - } else if ( - info.viewState.zoom < props.labelsZoomThreshold && - labelsVisible - ) { - setLabelsVisible(false); - } - setShowTooltip(info.viewState.zoom >= props.tooltipZoomThreshold); - setShowLineFlow(info.viewState.zoom >= props.arrowsZoomThreshold); - } - } - - function renderTooltip() { - return ( - tooltip && - tooltip.visible && - !shouldDisableToolTip && - //As of now only LINE tooltip is implemented, the following condition is to be removed or tweaked once other types of line tooltip are implemented - tooltip.equipmentType === EQUIPMENT_TYPES.LINE && ( -
- {props.renderPopover(tooltip.equipmentId, divRef.current)} -
- ) - ); - } - - function onClickHandler(info, event, network) { - const leftButton = - event.originalEvent.button === MOUSE_EVENT_BUTTON_LEFT; - const rightButton = - event.originalEvent.button === MOUSE_EVENT_BUTTON_RIGHT; - if ( - info.layer && - info.layer.id.startsWith(SUBSTATION_LAYER_PREFIX) && - info.object && - (info.object.substationId || info.object.voltageLevels) // is a voltage level marker, or a substation text - ) { - let idVl; - let idSubstation; - if (info.object.substationId) { - idVl = info.object.id; - } else if (info.object.voltageLevels) { - if (info.object.voltageLevels.length === 1) { - let idS = info.object.voltageLevels[0].substationId; - let substation = network.getSubstation(idS); - if (substation && substation.voltageLevels.length > 1) { - idSubstation = idS; - } else { - idVl = info.object.voltageLevels[0].id; - } - } else { - idSubstation = info.object.voltageLevels[0].substationId; - } - } - if (idVl !== undefined) { - if (props.onSubstationClick && leftButton) { - props.onSubstationClick(idVl); - } else if (props.onVoltageLevelMenuClick && rightButton) { - props.onVoltageLevelMenuClick( - network.getVoltageLevel(idVl), - event.originalEvent.x, - event.originalEvent.y - ); - } - } - if (idSubstation !== undefined) { - if (props.onSubstationClickChooseVoltageLevel && leftButton) { - props.onSubstationClickChooseVoltageLevel( - idSubstation, - event.originalEvent.x, - event.originalEvent.y - ); - } else if (props.onSubstationMenuClick && rightButton) { - props.onSubstationMenuClick( - network.getSubstation(idSubstation), - event.originalEvent.x, - event.originalEvent.y - ); - } - } - } - if ( - rightButton && - info.layer && - info.layer.id.startsWith(LINE_LAYER_PREFIX) && - info.object && - info.object.id && - info.object.voltageLevelId1 && - info.object.voltageLevelId2 - ) { - // picked line properties are retrieved from network data and not from pickable object infos, - // because pickable object infos might not be up to date - const line = network.getLine(info.object.id); - const tieLine = network.getTieLine(info.object.id); - const hvdcLine = network.getHvdcLine(info.object.id); - - const equipment = line || tieLine || hvdcLine; - if (equipment) { - const menuClickFunction = - equipment === line - ? props.onLineMenuClick - : equipment === tieLine - ? props.onTieLineMenuClick - : props.onHvdcLineMenuClick; - - menuClickFunction( - equipment, - event.originalEvent.x, - event.originalEvent.y - ); - } - } - } - - function onMapContextMenu(event) { - const info = - deckRef.current && - deckRef.current.pickObject({ - x: event.point.x, - y: event.point.y, - radius: PICKING_RADIUS, - }); - info && onClickHandler(info, event, props.mapEquipments); - } - - function cursorHandler() { - return isDragging ? 'grabbing' : cursorType; - } - - const layers = []; - - if (readyToDisplaySubstations) { - layers.push( - new SubstationLayer({ - id: SUBSTATION_LAYER_PREFIX, - data: props.mapEquipments?.substations, - network: props.mapEquipments, - geoData: props.geoData, - getNominalVoltageColor: getNominalVoltageColor, - filteredNominalVoltages: props.filteredNominalVoltages, - labelsVisible: labelsVisible, - labelColor: foregroundNeutralColor, - labelSize: LABEL_SIZE, - pickable: true, - onHover: ({ object }) => { - setCursorType(object ? 'pointer' : 'grab'); - }, - getNameOrId: getNameOrId, - }) - ); - } - - if (readyToDisplayLines) { - layers.push( - new LineLayer({ - areFlowsValid: props.areFlowsValid, - id: LINE_LAYER_PREFIX, - data: mapEquipmentsLines, - network: props.mapEquipments, - updatedLines: props.updatedLines, - geoData: props.geoData, - getNominalVoltageColor: getNominalVoltageColor, - disconnectedLineColor: foregroundNeutralColor, - filteredNominalVoltages: props.filteredNominalVoltages, - lineFlowMode: props.lineFlowMode, - showLineFlow: props.visible && showLineFlow, - lineFlowColorMode: props.lineFlowColorMode, - lineFlowAlertThreshold: props.lineFlowAlertThreshold, - lineFullPath: - props.geoData.linePositionsById.size > 0 && - props.lineFullPath, - lineParallelPath: props.lineParallelPath, - labelsVisible: labelsVisible, - labelColor: foregroundNeutralColor, - labelSize: LABEL_SIZE, - pickable: true, - onHover: ({ object, x, y }) => { - if (object) { - setCursorType('pointer'); - const lineObject = object?.line ?? object; - setTooltip({ - equipmentId: lineObject?.id, - equipmentType: lineObject?.equipmentType, - pointerX: x, - pointerY: y, - visible: showTooltip, - }); - } else { - setCursorType('grab'); - setTooltip(null); - } - }, - }) - ); - } - - const initialViewState = { - longitude: props.initialPosition[0], - latitude: props.initialPosition[1], - zoom: props.initialZoom, - maxZoom: 14, - pitch: 0, - bearing: 0, - }; - - const renderOverlay = () => ( - - ); - - useEffect(() => { - mapRef.current?.resize(); - }, [props.triggerMapResizeOnChange]); - - const getMapStyle = (mapLibrary, mapTheme) => { - switch (mapLibrary) { - case MAPBOX: - if (mapTheme === LIGHT) { - return 'mapbox://styles/mapbox/light-v9'; - } else { - return 'mapbox://styles/mapbox/dark-v9'; - } - case CARTO: - if (mapTheme === LIGHT) { - return 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json'; - } else { - return 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json'; - } - case CARTO_NOLABEL: - if (mapTheme === LIGHT) { - return 'https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json'; - } else { - return 'https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json'; - } - default: - return 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json'; - } - }; - - const mapStyle = useMemo( - () => getMapStyle(props.mapLibrary, props.mapTheme), - [props.mapLibrary, props.mapTheme] - ); - - const mapLib = - props.mapLibrary === MAPBOX - ? mToken && { - key: 'mapboxgl', - mapLib: mapboxgl, - mapboxAccessToken: mToken, - } - : { - key: 'maplibregl', - mapLib: maplibregl, - }; - - // because the mapLib prop of react-map-gl is not reactive, we need to - // unmount/mount the Map with 'key', so we need also to reset all state - // associated with uncontrolled state of the map - useEffect(() => { - setCentered(INITIAL_CENTERED); - }, [mapLib?.key]); - - const onUpdate = useCallback(() => { - onPolygonChanged(getPolygonFeatures()); - onDrawEvent(DRAW_EVENT.UPDATE); - }, [onDrawEvent, onPolygonChanged]); - - const onCreate = useCallback(() => { - onPolygonChanged(getPolygonFeatures()); - onDrawEvent(DRAW_EVENT.CREATE); - }, [onDrawEvent, onPolygonChanged]); - const getSelectedLines = useCallback(() => { - const polygonFeatures = getPolygonFeatures(); - const polygonCoordinates = polygonFeatures?.geometry; - if (!polygonCoordinates || polygonCoordinates.coordinates < 3) { - return []; - } - //for each line, check if it is in the polygon - const selectedLines = getSelectedLinesInPolygon( - props.mapEquipments, - mapEquipmentsLines, - props.geoData, - polygonCoordinates - ); - return selectedLines.filter((line) => { - return props.filteredNominalVoltages.some((nv) => { - return ( - nv === - props.mapEquipments.getVoltageLevel( - line.voltageLevelId1 - ).nominalV || - nv === - props.mapEquipments.getVoltageLevel( - line.voltageLevelId2 - ).nominalV - ); - }); - }); - }, [ - props.mapEquipments, - mapEquipmentsLines, - props.geoData, - props.filteredNominalVoltages, - ]); - - const getSelectedSubstations = useCallback(() => { - const substations = getSubstationsInPolygon( - getPolygonFeatures(), - props.mapEquipments, - props.geoData - ); - return ( - substations.filter((substation) => { - return substation.voltageLevels.some((vl) => - props.filteredNominalVoltages.includes(vl.nominalV) - ); - }) ?? [] - ); - }, [props.mapEquipments, props.geoData, props.filteredNominalVoltages]); - - useImperativeHandle( - ref, - () => ({ - getSelectedSubstations, - getSelectedLines, - cleanDraw() { - //because deleteAll does not trigger a update of the polygonFeature callback - getMapDrawer()?.deleteAll(); - onPolygonChanged(getPolygonFeatures()); - onDrawEvent(DRAW_EVENT.DELETE); - }, - getMapDrawer, - }), - [ - onPolygonChanged, - getSelectedSubstations, - getSelectedLines, - onDrawEvent, - ] - ); - - const onDelete = useCallback(() => { - onPolygonChanged(getPolygonFeatures()); - onDrawEvent(DRAW_EVENT.DELETE); - }, [onPolygonChanged, onDrawEvent]); - - return ( - mapLib && ( - setDragging(true)} - onDragEnd={() => setDragging(false)} - onContextMenu={onMapContextMenu} - > - {props.displayOverlayLoader && renderOverlay()} - {props.isManualRefreshBackdropDisplayed && ( - - - - )} - { - onClickHandler( - info, - event.srcEvent, - props.mapEquipments - ); - }} - onAfterRender={onAfterRender} // TODO simplify this - layers={layers} - pickingRadius={PICKING_RADIUS} - /> - {showTooltip && renderTooltip()} - {/* visualizePitch true makes the compass reset the pitch when clicked in addition to visualizing it */} - - { - props.onDrawPolygonModeActive(polygon_draw); - }} - onCreate={onCreate} - onUpdate={onUpdate} - onDelete={onDelete} - /> - - ) - ); -}); - -NetworkMap.defaultProps = { - areFlowsValid: true, - arrowsZoomThreshold: 7, - centerOnSubstation: null, - disabled: false, - displayOverlayLoader: false, - filteredNominalVoltages: null, - geoData: null, - initialPosition: [0, 0], - initialZoom: 5, - isManualRefreshBackdropDisplayed: false, - labelsZoomThreshold: 9, - lineFlowAlertThreshold: 100, - lineFlowColorMode: LineFlowColorMode.NOMINAL_VOLTAGE, - lineFlowHidden: true, - lineFlowMode: LineFlowMode.FEEDERS, - lineFullPath: true, - lineParallelPath: true, - mapBoxToken: null, - mapEquipments: null, - mapLibrary: CARTO, - tooltipZoomThreshold: 7, - mapTheme: DARK, - updatedLines: [], - useName: true, - visible: true, - shouldDisableToolTip: false, - - onSubstationClick: () => {}, - onSubstationClickChooseVoltageLevel: () => {}, - onSubstationMenuClick: () => {}, - onVoltageLevelMenuClick: () => {}, - onLineMenuClick: () => {}, - onTieLineMenuClick: () => {}, - onHvdcLineMenuClick: () => {}, - onManualRefreshClick: () => {}, - renderPopover: (eId) => { - return eId; - }, - onDrawPolygonModeActive: () => {}, - onPolygonChanged: () => {}, - onDrawEvent: () => {}, -}; - -NetworkMap.propTypes = { - disabled: PropTypes.bool, - geoData: PropTypes.instanceOf(GeoData), - mapBoxToken: PropTypes.string, - mapEquipments: PropTypes.instanceOf(MapEquipments), - mapLibrary: PropTypes.oneOf([CARTO, CARTO_NOLABEL, MAPBOX]), - mapTheme: PropTypes.oneOf([LIGHT, DARK]), - - areFlowsValid: PropTypes.bool, - arrowsZoomThreshold: PropTypes.number, - centerOnSubstation: PropTypes.any, - displayOverlayLoader: PropTypes.bool, - filteredNominalVoltages: PropTypes.array, - initialPosition: PropTypes.arrayOf(PropTypes.number), - initialZoom: PropTypes.number, - isManualRefreshBackdropDisplayed: PropTypes.bool, - labelsZoomThreshold: PropTypes.number, - lineFlowAlertThreshold: PropTypes.number, - lineFlowColorMode: PropTypes.oneOf(Object.values(LineFlowColorMode)), - lineFlowHidden: PropTypes.bool, - lineFlowMode: PropTypes.oneOf(Object.values(LineFlowMode)), - lineFullPath: PropTypes.bool, - lineParallelPath: PropTypes.bool, - renderPopover: PropTypes.func, - tooltipZoomThreshold: PropTypes.number, - // With mapboxgl v2 (not a problem with maplibre), we need to call - // map.resize() when the parent size has changed, otherwise the map is not - // redrawn. It seems like this is autodetected when the browser window is - // resized, but not for programmatic resizes of the parent. For now in our - // app, only study display mode resizes programmatically - // use this prop to make the map resize when needed, each time this prop changes, map.resize() is trigged - triggerMapResizeOnChange: PropTypes.any, - updatedLines: PropTypes.array, - useName: PropTypes.bool, - visible: PropTypes.bool, - shouldDisableToolTip: PropTypes.bool, - - onHvdcLineMenuClick: PropTypes.func, - onLineMenuClick: PropTypes.func, - onTieLineMenuClick: PropTypes.func, - onManualRefreshClick: PropTypes.func, - onSubstationClick: PropTypes.func, - onSubstationClickChooseVoltageLevel: PropTypes.func, - onSubstationMenuClick: PropTypes.func, - onVoltageLevelMenuClick: PropTypes.func, - onDrawPolygonModeActive: PropTypes.func, - onPolygonChanged: PropTypes.func, - onDrawEvent: PropTypes.func, -}; - -export default React.memo(NetworkMap); - -function getSubstationsInPolygon(features, mapEquipments, geoData) { - const polygonCoordinates = features?.geometry; - if (!polygonCoordinates || polygonCoordinates.coordinates < 3) { - return []; - } - //get the list of substation - const substationsList = mapEquipments?.substations ?? []; - //for each substation, check if it is in the polygon - return substationsList // keep only the sybstation in the polygon - .filter((substation) => { - const pos = geoData.getSubstationPosition(substation.id); - return booleanPointInPolygon(pos, polygonCoordinates); - }); -} - -function getSelectedLinesInPolygon( - network, - lines, - geoData, - polygonCoordinates -) { - return lines.filter((line) => { - try { - const linePos = geoData.getLinePositions(network, line); - if (!linePos) { - return false; - } - if (linePos.length < 2) { - return false; - } - const extremities = [linePos[0], linePos[linePos.length - 1]]; - return extremities.some((pos) => - booleanPointInPolygon(pos, polygonCoordinates) - ); - } catch (error) { - console.error(error); - return false; - } - }); -} diff --git a/src/components/network-map-viewer/network/network-map.tsx b/src/components/network-map-viewer/network/network-map.tsx new file mode 100644 index 00000000..b8a63b7b --- /dev/null +++ b/src/components/network-map-viewer/network/network-map.tsx @@ -0,0 +1,959 @@ +/** + * Copyright (c) 2020, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +import React, { + ReactNode, + forwardRef, + useCallback, + useEffect, + useImperativeHandle, + useMemo, + useRef, + useState, +} from 'react'; + +import { Box, decomposeColor } from '@mui/system'; +import LoaderWithOverlay from '../utils/loader-with-overlay'; + +import { MapboxOverlay, MapboxOverlayProps } from '@deck.gl/mapbox'; +import { Replay } from '@mui/icons-material'; +import { Button, ButtonProps, useTheme } from '@mui/material'; +import { + GeoData, + LineFlowColorMode, + LineFlowMode, + LineLayer, + MapEquipments, + SubstationLayer, + getNominalVoltageColor, + isLine, + isSubstation, + isVoltageLevel, +} from '@powsybl/network-map-layers'; +import type { LineLayerProps } from '@powsybl/network-map-layers/dist/network/line-layer'; +import { FormattedMessage } from 'react-intl'; +import { + Map, + NavigationControl, + ViewState, + ViewStateChangeEvent, + useControl, +} from 'react-map-gl'; +import { useNameOrId } from '../utils/equipmentInfosHandler'; +import DrawControl, { + DRAW_MODES, + DrawControlProps, + getMapDrawer, +} from './draw-control'; + +import mapboxgl from 'mapbox-gl'; +import 'mapbox-gl/dist/mapbox-gl.css'; +import maplibregl from 'maplibre-gl'; +import 'maplibre-gl/dist/maplibre-gl.css'; +import type { MapLib, MapRef } from 'react-map-gl'; + +import '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css'; +import booleanPointInPolygon from '@turf/boolean-point-in-polygon'; +import { PickingInfo } from 'deck.gl'; +import { Feature, Polygon } from 'geojson'; +// import 'mapbox-gl/dist/mapbox-gl.css'; +import { + EQUIPMENT_TYPES, + EquimentLine, + Equipment, + HvdcLineEquimentLine, + Line, + LineEquimentLine, + Substation, + TieLineEquimentLine, + VoltageLevel, +} from '@powsybl/network-map-layers'; +import 'maplibre-gl/dist/maplibre-gl.css'; + +// MouseEvent.button https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button +const MOUSE_EVENT_BUTTON_LEFT = 0; +const MOUSE_EVENT_BUTTON_RIGHT = 2; + +/** + * Represents the draw event types for the network map. + * when a draw event is triggered, the event type is passed to the onDrawEvent callback + * On create, when the user create a new polygon (shape finished) + */ +export enum DRAW_EVENT { + CREATE = 1, + UPDATE = 2, + DELETE = 0, +} + +export type MenuClickFunction = ( + equipment: T, + eventX: number, + eventY: number +) => void; + +// Small boilerplate recommended by deckgl, to bridge to a react-map-gl control declaratively +// see https://deck.gl/docs/api-reference/mapbox/mapbox-overlay#using-with-react-map-gl +const DeckGLOverlay = React.forwardRef( + (props, ref) => { + const overlay = useControl(() => new MapboxOverlay(props)); + overlay.setProps(props); + useImperativeHandle(ref, () => overlay, [overlay]); + return null; + } +); + +type TooltipType = { + equipmentId: string; + equipmentType: string; + pointerX: number; + pointerY: number; + visible: boolean; +}; + +const PICKING_RADIUS = 5; + +const CARTO = 'carto'; +const CARTO_NOLABEL = 'cartonolabel'; +const MAPBOX = 'mapbox'; +type MapLibrary = typeof CARTO | typeof CARTO_NOLABEL | typeof MAPBOX; + +const LIGHT = 'light'; +const DARK = 'dark'; +type MapTheme = typeof LIGHT | typeof DARK; + +const styles = { + mapManualRefreshBackdrop: { + width: '100%', + height: '100%', + textAlign: 'center', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + background: 'grey', + opacity: '0.8', + zIndex: 99, + fontSize: 30, + }, +}; + +const FALLBACK_MAPBOX_TOKEN = + 'pk.eyJ1IjoiZ2VvZmphbWciLCJhIjoiY2pwbnRwcm8wMDYzMDQ4b2pieXd0bDMxNSJ9.Q4aL20nBo5CzGkrWtxroug'; + +const SUBSTATION_LAYER_PREFIX = 'substationLayer'; +const LINE_LAYER_PREFIX = 'lineLayer'; +const LABEL_SIZE = 12; + +type Centered = { + lastCenteredSubstation: string | null; + centeredSubstationId?: string | null; + centered: boolean; +}; + +const INITIAL_CENTERED = { + lastCenteredSubstation: null, + centeredSubstationId: null, + centered: false, +} satisfies Centered; + +// get polygon coordinates (features) or an empty object +function getPolygonFeatures(): Feature | Record { + return getMapDrawer()?.getAll()?.features[0] ?? {}; +} +type NetworkMapProps = { + disabled?: boolean; + geoData?: GeoData | null; + mapBoxToken?: string | null; + mapEquipments?: MapEquipments | null; + mapLibrary?: 'carto' | 'cartonolabel' | 'mapbox'; + mapTheme?: 'light' | 'dark'; + areFlowsValid?: boolean; + arrowsZoomThreshold?: number; + centerOnSubstation?: { to: string } | null; + displayOverlayLoader?: boolean; + filteredNominalVoltages?: number[] | null; + initialPosition?: [number, number]; + initialZoom?: number; + isManualRefreshBackdropDisplayed?: boolean; + labelsZoomThreshold?: number; + lineFlowAlertThreshold?: number; + lineFlowColorMode?: LineFlowColorMode; + lineFlowHidden?: boolean; + lineFlowMode?: LineFlowMode; + lineFullPath?: boolean; + lineParallelPath?: boolean; + renderPopover?: ( + equipmentId: string, + divRef: HTMLDivElement | null + ) => ReactNode; + tooltipZoomThreshold?: number; + // With mapboxgl v2 (not a problem with maplibre), we need to call + // map.resize() when the parent size has changed, otherwise the map is not + // redrawn. It seems like this is autodetected when the browser window is + // resized, but not for programmatic resizes of the parent. For now in our + // app, only study display mode resizes programmatically + // use this prop to make the map resize when needed, each time this prop changes, map.resize() is trigged + triggerMapResizeOnChange?: unknown; + updatedLines?: LineLayerProps['updatedLines']; + useName?: boolean; + visible?: boolean; + shouldDisableToolTip?: boolean; + onHvdcLineMenuClick?: MenuClickFunction; + onLineMenuClick?: MenuClickFunction; + onTieLineMenuClick?: MenuClickFunction; + onManualRefreshClick?: ButtonProps['onClick']; + onSubstationClick?: (idVoltageLevel: string) => void; + onSubstationClickChooseVoltageLevel?: ( + idSubstation: string, + eventX: number, + eventY: number + ) => void; + onSubstationMenuClick?: MenuClickFunction; + onVoltageLevelMenuClick?: MenuClickFunction; + onDrawPolygonModeActive?: DrawControlProps['onDrawPolygonModeActive']; + onPolygonChanged?: ( + polygoneFeature: Feature | Record + ) => void; + onDrawEvent?: (drawEvent: DRAW_EVENT) => void; +}; + +export type NetworkMapRef = { + getSelectedSubstations: () => Substation[]; + getSelectedLines: () => Line[]; + cleanDraw: () => void; + getMapDrawer: () => MapboxDraw | undefined; +}; + +const NetworkMap = forwardRef( + ( + { + areFlowsValid = true, + arrowsZoomThreshold = 7, + centerOnSubstation = null, + disabled = false, + displayOverlayLoader = false, + filteredNominalVoltages = null, + geoData = null, + initialPosition = [0, 0], + initialZoom = 5, + isManualRefreshBackdropDisplayed = false, + labelsZoomThreshold = 9, + lineFlowAlertThreshold = 100, + lineFlowColorMode = LineFlowColorMode.NOMINAL_VOLTAGE, + // lineFlowHidden = true, + lineFlowMode = LineFlowMode.FEEDERS, + lineFullPath = true, + lineParallelPath = true, + mapBoxToken = null, + mapEquipments = null, + mapLibrary = CARTO, + tooltipZoomThreshold = 7, + mapTheme = DARK, + triggerMapResizeOnChange = false, + updatedLines = [], + useName = true, + visible = true, + shouldDisableToolTip = false, + + onSubstationClick = () => {}, + onSubstationClickChooseVoltageLevel = () => {}, + onSubstationMenuClick = () => {}, + onVoltageLevelMenuClick = () => {}, + onLineMenuClick = () => {}, + onTieLineMenuClick = () => {}, + onHvdcLineMenuClick = () => {}, + onManualRefreshClick = () => {}, + renderPopover = (eId) => { + return eId; + }, + onDrawPolygonModeActive = (_drawMode: DRAW_MODES) => {}, + onPolygonChanged = () => {}, + onDrawEvent = () => {}, + }, + ref + ) => { + const [labelsVisible, setLabelsVisible] = useState(false); + const [showLineFlow, setShowLineFlow] = useState(true); + const [showTooltip, setShowTooltip] = useState(true); + const mapRef = useRef(null); + const deckRef = useRef(null); + const [centered, setCentered] = useState(INITIAL_CENTERED); + const lastViewStateRef = useRef(); + const [tooltip, setTooltip] = useState< + TooltipType | Record | null + >({}); + const theme = useTheme(); + const foregroundNeutralColor = useMemo(() => { + const labelColor = decomposeColor(theme.palette.text.primary) + .values as [number, number, number, number]; + labelColor[3] *= 255; + return labelColor; + }, [theme]); + const [cursorType, setCursorType] = useState('grab'); + const [isDragging, setDragging] = useState(false); + + //NOTE these constants are moved to the component's parameters list + //const currentNode = useSelector((state) => state.currentTreeNode); + // const { + // onPolygonChanged, + // centerOnSubstation, + // onDrawEvent, + // shouldDisableToolTip, + // } = props; + + const { getNameOrId } = useNameOrId(useName); + + const readyToDisplay = + mapEquipments !== null && geoData !== null && !disabled; + + const readyToDisplaySubstations = + readyToDisplay && + mapEquipments.substations && + geoData.substationPositionsById.size > 0; + + const readyToDisplayLines = + readyToDisplay && + (mapEquipments?.lines || + mapEquipments?.hvdcLines || + mapEquipments?.tieLines) && + mapEquipments.voltageLevels && + geoData.substationPositionsById.size > 0; + + const mapEquipmentsLines = useMemo(() => { + return [ + ...(mapEquipments?.lines.map( + (line) => + ({ + ...line, + equipmentType: EQUIPMENT_TYPES.LINE, + } as LineEquimentLine) + ) ?? []), + ...(mapEquipments?.tieLines.map( + (tieLine) => + ({ + ...tieLine, + equipmentType: EQUIPMENT_TYPES.TIE_LINE, + } as TieLineEquimentLine) + ) ?? []), + ...(mapEquipments?.hvdcLines.map( + (hvdcLine) => + ({ + ...hvdcLine, + equipmentType: EQUIPMENT_TYPES.HVDC_LINE, + } as HvdcLineEquimentLine) + ) ?? []), + ]; + }, [ + mapEquipments?.hvdcLines, + mapEquipments?.tieLines, + mapEquipments?.lines, + ]) as EquimentLine[]; + + const divRef = useRef(null); + + const mToken = !mapBoxToken ? FALLBACK_MAPBOX_TOKEN : mapBoxToken; + + useEffect(() => { + if (centerOnSubstation === null) { + return; + } + setCentered({ + lastCenteredSubstation: null, + centeredSubstationId: centerOnSubstation?.to, + centered: true, + }); + }, [centerOnSubstation]); + + // TODO simplify this, now we use Map as the camera controlling component + // so we don't need the deckgl ref anymore. The following comments are + // probably outdated, cleanup everything: + // Do this in onAfterRender because when doing it in useEffect (triggered by calling setDeck()), + // it doesn't work in the case of using the browser backward/forward buttons (because in this particular case, + // we get the ref to the deck and it has not yet initialized..) + function onAfterRender() { + // TODO outdated comment + //use centered and deck to execute this block only once when the data is ready and deckgl is initialized + //TODO, replace the next lines with setProps( { initialViewState } ) when we upgrade to 8.1.0 + //see https://github.com/uber/deck.gl/pull/4038 + //This is a hack because it accesses the properties of deck directly but for now it works + if ( + (!centered.centered || + (centered.centeredSubstationId && + centered.centeredSubstationId !== + centered.lastCenteredSubstation)) && + geoData !== null + ) { + if (geoData.substationPositionsById.size > 0) { + if (centered.centeredSubstationId) { + const geodata = geoData.substationPositionsById.get( + centered.centeredSubstationId + ); + if (!geodata) { + return; + } // can't center on substation if no coordinate. + mapRef.current?.flyTo({ + center: [geodata.lon, geodata.lat], + duration: 2000, + }); + setCentered({ + lastCenteredSubstation: + centered.centeredSubstationId, + centeredSubstationId: centered.centeredSubstationId, + centered: true, + }); + } else { + const coords = Array.from( + geoData.substationPositionsById.entries() + ).map((x) => x[1]); + const maxlon = Math.max.apply( + null, + coords.map((x) => x.lon) + ); + const minlon = Math.min.apply( + null, + coords.map((x) => x.lon) + ); + const maxlat = Math.max.apply( + null, + coords.map((x) => x.lat) + ); + const minlat = Math.min.apply( + null, + coords.map((x) => x.lat) + ); + const marginlon = (maxlon - minlon) / 10; + const marginlat = (maxlat - minlat) / 10; + mapRef.current?.fitBounds( + [ + [ + minlon - marginlon / 2, + minlat - marginlat / 2, + ], + [ + maxlon + marginlon / 2, + maxlat + marginlat / 2, + ], + ], + { animate: false } + ); + setCentered({ + lastCenteredSubstation: null, + centered: true, + }); + } + } + } + } + + function onViewStateChange(info: ViewStateChangeEvent) { + lastViewStateRef.current = info.viewState; + if ( + // @ts-expect-error: TODO fix interactionState + !info.interactionState || // first event of before an animation (e.g. clicking the +/- buttons of the navigation controls, gives the target + // @ts-expect-error: TODO fix interactionState + (info.interactionState && !info.interactionState.inTransition) // Any event not part of a animation (mouse panning or zooming) + ) { + if ( + info.viewState.zoom >= labelsZoomThreshold && + !labelsVisible + ) { + setLabelsVisible(true); + } else if ( + info.viewState.zoom < labelsZoomThreshold && + labelsVisible + ) { + setLabelsVisible(false); + } + setShowTooltip(info.viewState.zoom >= tooltipZoomThreshold); + setShowLineFlow(info.viewState.zoom >= arrowsZoomThreshold); + } + } + + function renderTooltip() { + return ( + tooltip && + tooltip.visible && + !shouldDisableToolTip && + //As of now only LINE tooltip is implemented, the following condition is to be removed or tweaked once other types of line tooltip are implemented + tooltip.equipmentType === EQUIPMENT_TYPES.LINE && ( +
+ {tooltip.equipmentId && + divRef.current && + renderPopover(tooltip.equipmentId, divRef.current)} +
+ ) + ); + } + + function onClickHandler( + info: PickingInfo>, + event: mapboxgl.MapLayerMouseEvent | maplibregl.MapLayerMouseEvent, + network: MapEquipments + ) { + const leftButton = + event.originalEvent.button === MOUSE_EVENT_BUTTON_LEFT; + const rightButton = + event.originalEvent.button === MOUSE_EVENT_BUTTON_RIGHT; + if ( + info.layer && + info.layer.id.startsWith(SUBSTATION_LAYER_PREFIX) && + info.object && + (isSubstation(info.object) || isVoltageLevel(info.object)) // is a voltage level marker, or a substation text + ) { + let idVl; + let idSubstation; + if (isVoltageLevel(info.object)) { + idVl = info.object.id; + } else if (isSubstation(info.object)) { + if (info.object.voltageLevels.length === 1) { + const idS = info.object.voltageLevels[0].substationId; + const substation = network?.getSubstation(idS); + if (substation && substation.voltageLevels.length > 1) { + idSubstation = idS; + } else { + idVl = info.object.voltageLevels[0].id; + } + } else { + idSubstation = + info.object.voltageLevels[0].substationId; + } + } + if (idVl !== undefined) { + if (onSubstationClick && leftButton) { + onSubstationClick(idVl); + } else if (onVoltageLevelMenuClick && rightButton) { + onVoltageLevelMenuClick( + network.getVoltageLevel(idVl)!, + event.originalEvent.x, + event.originalEvent.y + ); + } + } + if (idSubstation !== undefined) { + if (onSubstationClickChooseVoltageLevel && leftButton) { + onSubstationClickChooseVoltageLevel( + idSubstation, + event.originalEvent.x, + event.originalEvent.y + ); + } else if (onSubstationMenuClick && rightButton) { + onSubstationMenuClick( + network.getSubstation(idSubstation)!, + event.originalEvent.x, + event.originalEvent.y + ); + } + } + } + if ( + rightButton && + info.layer && + info.layer.id.startsWith(LINE_LAYER_PREFIX) && + info.object && + isLine(info.object) + ) { + // picked line properties are retrieved from network data and not from pickable object infos, + // because pickable object infos might not be up to date + const line = network.getLine(info.object.id); + const tieLine = network.getTieLine(info.object.id); + const hvdcLine = network.getHvdcLine(info.object.id); + + const equipment = line || tieLine || hvdcLine; + if (equipment) { + const menuClickFunction = + equipment === line + ? onLineMenuClick + : equipment === tieLine + ? onTieLineMenuClick + : onHvdcLineMenuClick; + + menuClickFunction( + equipment, + event.originalEvent.x, + event.originalEvent.y + ); + } + } + } + + function onMapContextMenu( + event: mapboxgl.MapLayerMouseEvent | maplibregl.MapLayerMouseEvent + ) { + const info = + deckRef.current && + deckRef.current.pickObject({ + x: event.point.x, + y: event.point.y, + radius: PICKING_RADIUS, + }); + info && mapEquipments && onClickHandler(info, event, mapEquipments); + } + + function cursorHandler() { + return isDragging ? 'grabbing' : cursorType; + } + + const layers = []; + + if (readyToDisplaySubstations) { + layers.push( + new SubstationLayer({ + id: SUBSTATION_LAYER_PREFIX, + data: mapEquipments?.substations, + network: mapEquipments, + geoData: geoData, + getNominalVoltageColor: getNominalVoltageColor, + filteredNominalVoltages: filteredNominalVoltages, + labelsVisible: labelsVisible, + labelColor: foregroundNeutralColor, + labelSize: LABEL_SIZE, + pickable: true, + onHover: ({ object }) => { + setCursorType(object ? 'pointer' : 'grab'); + }, + getNameOrId: getNameOrId, + }) + ); + } + + if (readyToDisplayLines) { + layers.push( + new LineLayer({ + areFlowsValid: areFlowsValid, + id: LINE_LAYER_PREFIX, + data: mapEquipmentsLines, + network: mapEquipments, + updatedLines: updatedLines, + geoData: geoData, + getNominalVoltageColor: getNominalVoltageColor, + disconnectedLineColor: foregroundNeutralColor, + filteredNominalVoltages: filteredNominalVoltages, + lineFlowMode: lineFlowMode, + showLineFlow: visible && showLineFlow, + lineFlowColorMode: lineFlowColorMode, + lineFlowAlertThreshold: lineFlowAlertThreshold, + lineFullPath: + geoData.linePositionsById.size > 0 && lineFullPath, + lineParallelPath: lineParallelPath, + labelsVisible: labelsVisible, + labelColor: foregroundNeutralColor, + labelSize: LABEL_SIZE, + pickable: true, + onHover: ({ + object: lineObject, + x, + y, + }: PickingInfo) => { + if (lineObject) { + setCursorType('pointer'); + setTooltip({ + equipmentId: lineObject?.id, + equipmentType: (lineObject as EquimentLine) + ?.equipmentType, + pointerX: x, + pointerY: y, + visible: showTooltip, + }); + } else { + setCursorType('grab'); + setTooltip(null); + } + }, + }) + ); + } + + const initialViewState = { + longitude: initialPosition[0], + latitude: initialPosition[1], + zoom: initialZoom, + maxZoom: 14, + pitch: 0, + bearing: 0, + }; + + const renderOverlay = () => ( + + ); + + useEffect(() => { + mapRef.current?.resize(); + }, [mapRef, triggerMapResizeOnChange]); + + const getMapStyle = (mapLibrary: MapLibrary, mapTheme: MapTheme) => { + switch (mapLibrary) { + case MAPBOX: + if (mapTheme === LIGHT) { + return 'mapbox://styles/mapbox/light-v9'; + } else { + return 'mapbox://styles/mapbox/dark-v9'; + } + case CARTO: + if (mapTheme === LIGHT) { + return 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json'; + } else { + return 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json'; + } + case CARTO_NOLABEL: + if (mapTheme === LIGHT) { + return 'https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json'; + } else { + return 'https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json'; + } + default: + return 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json'; + } + }; + + const mapStyle = useMemo( + () => getMapStyle(mapLibrary, mapTheme), + [mapLibrary, mapTheme] + ); + + const key = mapLibrary === MAPBOX && mToken ? 'mapboxgl' : 'maplibregl'; + + const mapLib = + mapLibrary === MAPBOX && mToken + ? { + mapLib: mapboxgl, + mapboxAccessToken: mToken, + } + : { + mapLib: maplibregl, + }; + + // because the mapLib prop of react-map-gl is not reactive, we need to + // unmount/mount the Map with 'key', so we need also to reset all state + // associated with uncontrolled state of the map + useEffect(() => { + setCentered(INITIAL_CENTERED); + }, [key]); + + const onUpdate = useCallback(() => { + onPolygonChanged(getPolygonFeatures()); + onDrawEvent(DRAW_EVENT.UPDATE); + }, [onDrawEvent, onPolygonChanged]); + + const onCreate = useCallback(() => { + onPolygonChanged(getPolygonFeatures()); + onDrawEvent(DRAW_EVENT.CREATE); + }, [onDrawEvent, onPolygonChanged]); + const getSelectedLines = useCallback(() => { + const polygonFeatures = getPolygonFeatures(); + const polygonCoordinates = polygonFeatures?.geometry; + if ( + !polygonCoordinates || + polygonCoordinates.type !== 'Polygon' || + polygonCoordinates.coordinates[0].length < 3 + ) { + return []; + } + //for each line, check if it is in the polygon + const selectedLines = getSelectedLinesInPolygon( + mapEquipments, + mapEquipmentsLines, + geoData, + polygonCoordinates as Polygon + ); + return selectedLines.filter((line) => { + return filteredNominalVoltages!.some((nv) => { + return ( + nv === + mapEquipments!.getVoltageLevel( + line.voltageLevelId1 + )!.nominalV || + nv === + mapEquipments!.getVoltageLevel( + line.voltageLevelId2 + )!.nominalV + ); + }); + }); + }, [ + mapEquipments, + mapEquipmentsLines, + geoData, + filteredNominalVoltages, + ]); + + const getSelectedSubstations = useCallback(() => { + const substations = getSubstationsInPolygon( + getPolygonFeatures(), + mapEquipments, + geoData + ); + if (filteredNominalVoltages === null) { + return substations; + } + return ( + substations.filter((substation) => { + return substation.voltageLevels.some((vl) => + filteredNominalVoltages.includes(vl.nominalV) + ); + }) ?? [] + ); + }, [mapEquipments, geoData, filteredNominalVoltages]); + + useImperativeHandle( + ref, + () => ({ + getSelectedSubstations, + getSelectedLines, + cleanDraw() { + //because deleteAll does not trigger a update of the polygonFeature callback + getMapDrawer()?.deleteAll(); + onPolygonChanged(getPolygonFeatures()); + onDrawEvent(DRAW_EVENT.DELETE); + }, + getMapDrawer, + }), + [ + onPolygonChanged, + getSelectedSubstations, + getSelectedLines, + onDrawEvent, + ] + ); + + const onDelete = useCallback(() => { + onPolygonChanged(getPolygonFeatures()); + onDrawEvent(DRAW_EVENT.DELETE); + }, [onPolygonChanged, onDrawEvent]); + + return ( + setDragging(true)} + onDragEnd={() => setDragging(false)} + onContextMenu={onMapContextMenu} + mapLib={mapLib.mapLib as MapLib} + > + {displayOverlayLoader && renderOverlay()} + {isManualRefreshBackdropDisplayed && ( + + + + )} + { + //@ts-expect-error: TODO fix srcEvent + onClickHandler(info, event.srcEvent, mapEquipments); + }} + onAfterRender={onAfterRender} // TODO simplify this + layers={layers} + pickingRadius={PICKING_RADIUS} + /> + {showTooltip && renderTooltip()} + {/* visualizePitch true makes the compass reset the pitch when clicked in addition to visualizing it */} + + { + onDrawPolygonModeActive(polygon_draw); + }} + onCreate={onCreate} + onUpdate={onUpdate} + onDelete={onDelete} + /> + + ); + } +); + +export default React.memo(NetworkMap); + +function getSubstationsInPolygon( + features: Partial, // Feature from geojson + mapEquipments: MapEquipments | null, + geoData: GeoData | null +) { + const polygonCoordinates = features?.geometry; + if ( + !geoData || + !polygonCoordinates || + polygonCoordinates.type !== 'Polygon' || + polygonCoordinates.coordinates[0].length < 3 + ) { + return []; + } + //get the list of substation + const substationsList = mapEquipments?.substations ?? []; + //for each substation, check if it is in the polygon + return substationsList // keep only the sybstation in the polygon + .filter((substation) => { + const pos = geoData.getSubstationPosition(substation.id); + return booleanPointInPolygon(pos, polygonCoordinates); + }); +} + +function getSelectedLinesInPolygon( + network: MapEquipments | null, + lines: Line[], + geoData: GeoData | null, + polygonCoordinates: Polygon +) { + return lines.filter((line) => { + try { + const linePos = network + ? geoData?.getLinePositions(network, line) + : null; + if (!linePos) { + return false; + } + if (linePos.length < 2) { + return false; + } + const extremities = [linePos[0], linePos[linePos.length - 1]]; + return extremities.some((pos) => + booleanPointInPolygon(pos, polygonCoordinates) + ); + } catch (error) { + console.error(error); + return false; + } + }); +} diff --git a/src/components/network-map-viewer/utils/equipment-types.js b/src/components/network-map-viewer/utils/equipment-types.js deleted file mode 100644 index 0bc25e77..00000000 --- a/src/components/network-map-viewer/utils/equipment-types.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright (c) 2023, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -export const EQUIPMENT_INFOS_TYPES = { - LIST: { type: 'LIST' }, - MAP: { type: 'MAP' }, - FORM: { type: 'FORM' }, - TAB: { type: 'TAB' }, - TOOLTIP: { type: 'TOOLTIP' }, -}; - -export const EQUIPMENT_TYPES = { - SUBSTATION: 'SUBSTATION', - VOLTAGE_LEVEL: 'VOLTAGE_LEVEL', - LINE: 'LINE', - TWO_WINDINGS_TRANSFORMER: 'TWO_WINDINGS_TRANSFORMER', - THREE_WINDINGS_TRANSFORMER: 'THREE_WINDINGS_TRANSFORMER', - HVDC_LINE: 'HVDC_LINE', - GENERATOR: 'GENERATOR', - BATTERY: 'BATTERY', - LOAD: 'LOAD', - SHUNT_COMPENSATOR: 'SHUNT_COMPENSATOR', - TIE_LINE: 'TIE_LINE', - DANGLING_LINE: 'DANGLING_LINE', - STATIC_VAR_COMPENSATOR: 'STATIC_VAR_COMPENSATOR', - HVDC_CONVERTER_STATION: 'HVDC_CONVERTER_STATION', - VSC_CONVERTER_STATION: 'VSC_CONVERTER_STATION', - LCC_CONVERTER_STATION: 'LCC_CONVERTER_STATION', - SWITCH: 'SWITCH', -}; diff --git a/src/components/network-map-viewer/utils/equipmentInfosHandler.js b/src/components/network-map-viewer/utils/equipmentInfosHandler.ts similarity index 75% rename from src/components/network-map-viewer/utils/equipmentInfosHandler.js rename to src/components/network-map-viewer/utils/equipmentInfosHandler.ts index 29283c45..57a55565 100644 --- a/src/components/network-map-viewer/utils/equipmentInfosHandler.js +++ b/src/components/network-map-viewer/utils/equipmentInfosHandler.ts @@ -7,14 +7,19 @@ import { useCallback } from 'react'; -export const useNameOrId = (useName) => { +type EquipmentInfos = { + id: string; + name: string | null; +}; + +export const useNameOrId = (useName: boolean) => { const getNameOrId = useCallback( - (infos) => { + (infos: EquipmentInfos | null) => { if (infos != null) { const name = infos.name; return useName && name != null && name.trim() !== '' ? name - : infos?.id; + : infos?.id ?? null; } return null; }, diff --git a/src/components/network-map-viewer/utils/loader-with-overlay.jsx b/src/components/network-map-viewer/utils/loader-with-overlay.tsx similarity index 69% rename from src/components/network-map-viewer/utils/loader-with-overlay.jsx rename to src/components/network-map-viewer/utils/loader-with-overlay.tsx index 39a4ab8c..c78ca5e1 100644 --- a/src/components/network-map-viewer/utils/loader-with-overlay.jsx +++ b/src/components/network-map-viewer/utils/loader-with-overlay.tsx @@ -5,12 +5,18 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import React from 'react'; -import { CircularProgress } from '@mui/material'; +import { CircularProgress, CircularProgressProps } from '@mui/material'; +import { Box, SxProps, Theme } from '@mui/system'; import { FormattedMessage } from 'react-intl'; -import { Box } from '@mui/system'; -const styles = { +type LoaderWithOverlayProps = { + color: CircularProgressProps['color']; + loaderSize: CircularProgressProps['size']; + loadingMessageText: string; + isFixed: boolean; +}; + +const styles: Record> = { overlay: { top: 0, bottom: 0, @@ -28,12 +34,12 @@ const styles = { }, }; -const LoaderWithOverlay = ({ +export default function LoaderWithOverlay({ color, loaderSize, loadingMessageText, isFixed, -}) => { +}: Readonly) { return ( ); -}; - -export default LoaderWithOverlay; +} diff --git a/src/index.d.ts b/src/index.d.ts deleted file mode 100644 index 352084f4..00000000 --- a/src/index.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Copyright (c) 2024, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -export { DRAW_MODES } from './components/network-map-viewer/network/draw-control'; diff --git a/src/index.js b/src/index.ts similarity index 54% rename from src/index.js rename to src/index.ts index 109c8184..9f63612b 100644 --- a/src/index.js +++ b/src/index.ts @@ -5,19 +5,29 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -export { NetworkAreaDiagramViewer } from './components/network-area-diagram-viewer/network-area-diagram-viewer'; -export { SingleLineDiagramViewer } from './components/single-line-diagram-viewer/single-line-diagram-viewer'; -export { GeoData } from './components/network-map-viewer/network/geo-data'; export { - LineFlowMode, + GeoData, LineFlowColorMode, - LineLoadingZone, - getLineLoadingZone, -} from './components/network-map-viewer/network/line-layer'; -export { MapEquipments } from './components/network-map-viewer/network/map-equipments'; + LineFlowMode, + MapEquipments, +} from '@powsybl/network-map-layers'; +export { SingleLineDiagramViewer } from '@powsybl/single-line-diagram-viewer'; +export type { + HandleTogglePopoverType, + OnBreakerCallbackType, + OnBusCallbackType, + OnFeederCallbackType, + OnNextVoltageCallbackType, + SLDMetadata, + SLDMetadataComponent, + SLDMetadataComponentSize, + SLDMetadataNode, +} from '@powsybl/single-line-diagram-viewer'; +export { NetworkAreaDiagramViewer } from './components/network-area-diagram-viewer/network-area-diagram-viewer'; export { - default as NetworkMap, DRAW_EVENT, + default as NetworkMap, } from './components/network-map-viewer/network/network-map'; +export type { NetworkMapRef } from './components/network-map-viewer/network/network-map'; export { DRAW_MODES } from './components/network-map-viewer/network/draw-control'; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 00000000..ee9857a6 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/tsconfig.json b/tsconfig.json index da928dc5..7a8b5d44 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,17 +1,23 @@ { - "compilerOptions": { - "module": "esnext", - "target": "es6", - "declaration": true, - "outDir": "./dist", - "strict": true, - "skipLibCheck": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "allowSyntheticDefaultImports": true, - "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", - "noEmit": true - }, - "include": ["src", "demo"] // we can let demo because the file generation is managed my vite and we have noEmit anyway -} \ No newline at end of file + "compilerOptions": { + "module": "esnext", + "lib": ["ES2022"], + "target": "ESNext", + "declaration": true, + "outDir": "./dist", + "strict": true, + "skipLibCheck": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "noFallthroughCasesInSwitch": true, + "moduleResolution": "node", + "noEmit": true, + "jsx": "react-jsx", + "resolveJsonModule": true, + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src", "demo"] // we can let demo because the file generation is managed my vite and we have noEmit anyway +} diff --git a/vite.config.ts b/vite.config.ts index 4871cacf..fee066cc 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,45 +5,41 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +import react from '@vitejs/plugin-react'; +import * as path from 'node:path'; import { defineConfig } from 'vite'; -import { resolve } from 'path'; -import eslint from 'vite-plugin-eslint'; import dts from 'vite-plugin-dts'; -import react from '@vitejs/plugin-react'; -import { externalizeDeps } from 'vite-plugin-externalize-deps'; +import svgr from 'vite-plugin-svgr'; -export default defineConfig((config) => ({ +export default defineConfig((_config) => ({ plugins: [ react(), - eslint({ - failOnWarning: config.mode !== 'development', - lintOnStart: true, - }), - dts({ - include: ['src'], - }), - //https://stackoverflow.com/questions/59134241/using-deck-gl-as-webpack-external - //https://github.com/visgl/deck.gl/blob/94bad4bb209a5da0686fb03f107e86b18199c108/website/webpack.config.js#L128-L141 - externalizeDeps({ - include: [ - /^@deck.gl(?:\/.*)?$/, - /^@loaders.gl(?:\/.*)?$/, - /^@luma.gl(?:\/.*)?$/, - /^@probe.gl(?:\/.*)?$/, - 'prop-types', - ], - }), + svgr(), // works on every import with the pattern "**/*.svg?react" + // eslint({ + // failOnWarning: config.mode !== 'development', + // lintOnStart: true, + // }), + dts(), ], + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, build: { - minify: false, + minify: false, // easier to debug on the apps using this lib lib: { // Could also be a dictionary or array of multiple entry points - entry: resolve(__dirname, 'src/index.js'), - name: 'Powsybl diagram viewer', + entry: path.resolve(__dirname, 'src/index.ts'), + name: 'PowSyBl diagram viewer', // the proper extensions will be added fileName: 'powsybl-diagram-viewer', }, rollupOptions: { + //https://stackoverflow.com/questions/59134241/using-deck-gl-as-webpack-external + //https://github.com/visgl/deck.gl/blob/94bad4bb209a5da0686fb03f107e86b18199c108/website/webpack.config.js#L128-L141 + external: (id: string) => + !id.startsWith('.') && !path.isAbsolute(id), output: { // preserveModules: true, // entryFileNames: '[name].js', // override vite and allow to keep the original tree and .js extension even in ESM @@ -73,6 +69,13 @@ export default defineConfig((config) => ({ '@luma.gl/constants': 'LumaGlConstants', '@luma.gl/core': 'LumaGlCore', '@svgdotjs/svg.js': 'SvgJs', + '@powsybl/network-map-layers': 'PowsyblNetworkMapLayers', + '@powsybl/single-line-diagram-viewer': + 'PowsyblSingleLineDiagramViewer', + 'react-map-gl/maplibre': 'ReactMapGlMaplibre', + '@mapbox/mapbox-gl-draw': 'MapboxGlDraw', + '@turf/boolean-point-in-polygon': + 'TurfBooleanPointInPolygon', }, }, },