From 238376488c406b1453298b0d49612ab97024ae03 Mon Sep 17 00:00:00 2001 From: Damon Ulmi Date: Tue, 5 Nov 2024 13:44:53 -0800 Subject: [PATCH] refactor: remove dataAccessPath from initial layer configs Closes #2537 --- common/config/rush/pnpm-lock.yaml | 816 ++++++++++-------- packages/geoview-core/package.json | 2 +- .../public/configs/OSDP/function-event.json | 2 +- .../public/configs/my-config.json | 2 +- .../configs/navigator/05-zoom-layer.json | 2 +- .../configs/navigator/06-basic-footer.json | 2 +- .../configs/navigator/07-basic-appbar.json | 2 +- .../navigator/12-package-geochart.json | 2 +- .../configs/navigator/13-all-layers.json | 24 +- .../public/configs/navigator/15-xyz-tile.json | 8 +- .../configs/navigator/18-esri-image.json | 5 +- .../public/configs/navigator/19-geojson.json | 2 +- .../configs/navigator/22-static-image.json | 4 +- .../public/configs/navigator/23-csv.json | 2 +- .../configs/navigator/24-vector-tile.json | 7 +- .../configs/navigator/25-geojson-multi.json | 4 +- .../package-swiper3-config-swiper.json | 2 +- .../configs/package-swiper3-config.json | 8 +- ...ydro-metadata.json => hydro-metadata.meta} | 1 - ...etadata-blank.json => metadata-blank.meta} | 0 .../public/datasets/geojson/metadata.meta | 663 +++++--------- .../{metadata1.json => metadata1.meta} | 0 ...-metadata.json => processes-metadata.meta} | 0 .../public/templates/demos/demo-cgdi.html | 3 +- .../templates/demos/demo-geojson-inject.html | 4 +- .../public/templates/demos/demo-gsc.html | 8 +- .../demos/demo-osdp-non-currated.html | 26 +- .../public/templates/layers/csv.html | 2 +- .../public/templates/layers/esri-image.html | 5 +- .../public/templates/layers/geojson.html | 2 +- .../public/templates/layers/image-static.html | 4 +- .../public/templates/layers/vector-tiles.html | 14 +- .../public/templates/layers/xyz.html | 8 +- .../templates/outliers/outlier-geometry.html | 2 +- .../templates/outliers/outlier-style.html | 2 +- .../public/templates/package-swiper.html | 200 +++-- .../public/templates/pygeoapi-processes.html | 4 +- packages/geoview-core/schema.json | 10 +- .../abstract-geoview-esri-layer-config.ts | 5 +- .../vector-config/geojson-config.ts | 23 +- .../types/config-validation-schema.json | 4 + .../layer-state.ts | 1 - .../utils/config/reader/uuid-config-reader.ts | 5 +- .../esri-dynamic-layer-entry-config.ts | 10 +- .../esri-image-layer-entry-config.ts | 11 +- .../image-static-layer-entry-config.ts | 14 +- .../ogc-wms-layer-entry-config.ts | 20 +- .../vector-tiles-layer-entry-config.ts | 12 +- .../xyz-layer-entry-config.ts | 12 +- .../csv-layer-entry-config.ts | 12 +- .../esri-feature-layer-entry-config.ts | 12 +- .../geojson-layer-entry-config.ts | 12 +- .../geopackage-layer-config-entry.ts | 12 +- .../ogc-layer-entry-config.ts | 10 +- .../wfs-layer-entry-config.ts | 10 +- .../geoview-layers/abstract-geoview-layers.ts | 4 +- .../geoview-layers/raster/esri-dynamic.ts | 2 - .../layer/geoview-layers/raster/xyz-tiles.ts | 3 +- .../vector/abstract-geoview-vector.ts | 4 +- .../geoview-layers/vector/esri-feature.ts | 2 +- .../src/geo/map/map-schema-types.ts | 8 +- 61 files changed, 985 insertions(+), 1077 deletions(-) rename packages/geoview-core/public/datasets/geojson/{hydro-metadata.json => hydro-metadata.meta} (98%) rename packages/geoview-core/public/datasets/geojson/{metadata-blank.json => metadata-blank.meta} (100%) rename packages/geoview-core/public/datasets/geojson/{metadata1.json => metadata1.meta} (100%) rename packages/geoview-core/public/datasets/geojson/{processes-metadata.json => processes-metadata.meta} (100%) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 6e2522bec60..1e07eb04765 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -116,10 +116,10 @@ importers: dependencies: '@emotion/react': specifier: ^11.13.3 - version: 11.13.3(@types/react@18.3.12)(react@18.3.1) + version: 11.13.5(@types/react@18.3.12)(react@18.3.1) '@emotion/styled': specifier: ^11.13.0 - version: 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) + version: 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) '@fontsource/roboto': specifier: ^5.1.0 version: 5.1.0 @@ -128,22 +128,22 @@ importers: version: 5.0.0-beta.58(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) '@mui/icons-material': specifier: ^6.1.3 - version: 6.1.6(@mui/material@6.1.6)(@types/react@18.3.12)(react@18.3.1) + version: 6.1.8(@mui/material@6.1.8)(@types/react@18.3.12)(react@18.3.1) '@mui/lab': specifier: 6.0.0-beta.11 - version: 6.0.0-beta.11(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@mui/material@6.1.6)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + version: 6.0.0-beta.11(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@mui/material@6.1.8)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) '@mui/material': specifier: ^6.1.3 - version: 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) '@mui/styles': specifier: ^6.1.3 - version: 6.1.6(@types/react@18.3.12)(react@18.3.1) + version: 6.1.8(@types/react@18.3.12)(react@18.3.1) '@mui/system': specifier: ^6.1.3 - version: 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react@18.3.1) + version: 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react@18.3.1) '@mui/x-date-pickers': specifier: ^7.20.0 - version: 7.22.1(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@mui/material@6.1.6)(@mui/system@6.1.6)(@types/react@18.3.12)(dayjs@1.11.13)(react-dom@18.3.1)(react@18.3.1) + version: 7.22.2(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@mui/material@6.1.8)(@mui/system@6.1.8)(@types/react@18.3.12)(dayjs@1.11.13)(react-dom@18.3.1)(react@18.3.1) '@nieuwlandgeo/sldreader': specifier: ^0.4.3 version: 0.4.3(ol@10.2.1) @@ -188,19 +188,19 @@ importers: version: 4.3.7 linkify-html: specifier: ^4.1.3 - version: 4.1.3(linkifyjs@4.1.3) + version: 4.1.4(linkifyjs@4.1.4) linkifyjs: specifier: ^4.1.3 - version: 4.1.3 + version: 4.1.4 lodash: specifier: ^4.17.21 version: 4.17.21 markdown-to-jsx: specifier: ~7.5.0 - version: 7.5.0(react@18.3.1) + version: 7.5.1(react@18.3.1) material-react-table: specifier: ^3.0.1 - version: 3.0.1(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@mui/icons-material@6.1.6)(@mui/material@6.1.6)(@mui/x-date-pickers@7.22.1)(react-dom@18.3.1)(react@18.3.1) + version: 3.0.1(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@mui/icons-material@6.1.8)(@mui/material@6.1.8)(@mui/x-date-pickers@7.22.2)(react-dom@18.3.1)(react@18.3.1) ol: specifier: ^10.2.1 version: 10.2.1 @@ -239,7 +239,7 @@ importers: version: 1.12.0 yet-another-react-lightbox: specifier: ^3.21.6 - version: 3.21.6(react-dom@18.3.1)(react@18.3.1) + version: 3.21.7(react-dom@18.3.1)(react@18.3.1) zustand: specifier: ~5.0.0 version: 5.0.1(@types/react@18.3.12)(react@18.3.1) @@ -438,7 +438,7 @@ importers: dependencies: '@mui/material': specifier: ^6.1.3 - version: 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) geochart: specifier: Canadian-Geospatial-Platform/geochart#develop version: github.com/Canadian-Geospatial-Platform/geochart/c4a471e1fb15753a6fec3eb3bc86ab07cb350ce2(@types/react@18.3.12) @@ -466,7 +466,7 @@ importers: version: 18.3.1 markdown-to-jsx: specifier: ~7.5.0 - version: 7.5.0(react@18.3.1) + version: 7.5.1(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -515,7 +515,7 @@ importers: dependencies: '@mui/material': specifier: ^6.1.3 - version: 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) geoview-core: specifier: workspace:~1.0.0 version: link:../geoview-core @@ -534,7 +534,7 @@ importers: version: 18.3.1 markdown-to-jsx: specifier: ~7.5.0 - version: 7.5.0(react@18.3.1) + version: 7.5.1(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -693,8 +693,8 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.26.0): - resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + /@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0): + resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: @@ -1731,9 +1731,9 @@ packages: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -1922,9 +1922,9 @@ packages: '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) core-js-compat: 3.39.0 semver: 6.3.1 transitivePeerDependencies: @@ -2027,14 +2027,14 @@ packages: engines: {node: '>=10.0.0'} dev: true - /@emotion/babel-plugin@11.12.0: - resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} + /@emotion/babel-plugin@11.13.5: + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} dependencies: '@babel/helper-module-imports': 7.25.9 '@babel/runtime': 7.26.0 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 - '@emotion/serialize': 1.3.2 + '@emotion/serialize': 1.3.3 babel-plugin-macros: 3.1.0 convert-source-map: 1.9.0 escape-string-regexp: 4.0.0 @@ -2045,12 +2045,12 @@ packages: - supports-color dev: false - /@emotion/cache@11.13.1: - resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} + /@emotion/cache@11.13.5: + resolution: {integrity: sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g==} dependencies: '@emotion/memoize': 0.9.0 '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.1 + '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 stylis: 4.2.0 dev: false @@ -2069,8 +2069,8 @@ packages: resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} dev: false - /@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1): - resolution: {integrity: sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==} + /@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1): + resolution: {integrity: sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==} peerDependencies: '@types/react': '*' react: '>=16.8.0' @@ -2079,11 +2079,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/babel-plugin': 11.12.0 - '@emotion/cache': 11.13.1 - '@emotion/serialize': 1.3.2 + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.13.5 + '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) - '@emotion/utils': 1.4.1 + '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 '@types/react': 18.3.12 hoist-non-react-statics: 3.3.2 @@ -2092,13 +2092,13 @@ packages: - supports-color dev: false - /@emotion/serialize@1.3.2: - resolution: {integrity: sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==} + /@emotion/serialize@1.3.3: + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} dependencies: '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/unitless': 0.10.0 - '@emotion/utils': 1.4.1 + '@emotion/utils': 1.4.2 csstype: 3.1.3 dev: false @@ -2106,8 +2106,8 @@ packages: resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} dev: false - /@emotion/styled@11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1): - resolution: {integrity: sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==} + /@emotion/styled@11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1): + resolution: {integrity: sha512-gnOQ+nGLPvDXgIx119JqGalys64lhMdnNQA9TMxhDA4K0Hq5+++OE20Zs5GxiCV9r814xQ2K5WmtofSpHVW6BQ==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 '@types/react': '*' @@ -2117,12 +2117,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/babel-plugin': 11.12.0 + '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.3.1 - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/serialize': 1.3.2 + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) - '@emotion/utils': 1.4.1 + '@emotion/utils': 1.4.2 '@types/react': 18.3.12 react: 18.3.1 transitivePeerDependencies: @@ -2141,8 +2141,8 @@ packages: react: 18.3.1 dev: false - /@emotion/utils@1.4.1: - resolution: {integrity: sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==} + /@emotion/utils@1.4.2: + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} dev: false /@emotion/weak-memoize@0.4.0: @@ -2261,7 +2261,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -2282,14 +2282,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.9.0) + jest-config: 29.7.0(@types/node@22.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -2317,7 +2317,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 jest-mock: 29.7.0 dev: true @@ -2344,7 +2344,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.9.0 + '@types/node': 22.9.1 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -2377,7 +2377,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.9.0 + '@types/node': 22.9.1 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -2465,7 +2465,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.9.0 + '@types/node': 22.9.1 '@types/yargs': 17.0.33 chalk: 4.1.2 dev: true @@ -2533,8 +2533,8 @@ packages: tslib: 2.8.1 dev: true - /@kurkle/color@0.3.2: - resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} + /@kurkle/color@0.3.4: + resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==} dev: false /@leichtgewicht/ip-codec@2.0.5: @@ -2595,8 +2595,8 @@ packages: resolution: {integrity: sha512-RtsCt4Geed2/v74sbihWzzRs+HsIQCfclHeORh5Ynu2fS4icIKozcSubwuG7vtzq2uW3fOR1zITSP84TNt2GoQ==} dev: false - /@mui/core-downloads-tracker@6.1.6: - resolution: {integrity: sha512-nz1SlR9TdBYYPz4qKoNasMPRiGb4PaIHFkzLzhju0YVYS5QSuFF2+n7CsiHMIDcHv3piPu/xDWI53ruhOqvZwQ==} + /@mui/core-downloads-tracker@6.1.8: + resolution: {integrity: sha512-TGAvzwUg9hybDacwfIGFjI2bXYXrIqky+vMfaeay8rvT56/PNAlvIDUJ54kpT5KRc9AWAihOvtDI7/LJOThOmQ==} dev: false /@mui/icons-material@5.16.7(@mui/material@5.16.7)(@types/react@18.3.12)(react@18.3.1): @@ -2611,16 +2611,16 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@mui/material': 5.16.7(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + '@mui/material': 5.16.7(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) '@types/react': 18.3.12 react: 18.3.1 dev: false - /@mui/icons-material@6.1.6(@mui/material@6.1.6)(@types/react@18.3.12)(react@18.3.1): - resolution: {integrity: sha512-5r9urIL2lxXb/sPN3LFfFYEibsXJUb986HhhIeu1gOcte460pwdSiEhBSxkAuyT8Dj7jvu9MjqSBmSumQELo8A==} + /@mui/icons-material@6.1.8(@mui/material@6.1.8)(@types/react@18.3.12)(react@18.3.1): + resolution: {integrity: sha512-6frsXcf1TcJKWevWwRup6V4L8lzI33cbHcAjT83YLgKw0vYRZKY0kjMI9fhrJZdRWXgFFgKKvEv3GjoxbqFF7A==} engines: {node: '>=14.0.0'} peerDependencies: - '@mui/material': ^6.1.6 + '@mui/material': ^6.1.8 '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: @@ -2628,12 +2628,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@mui/material': 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + '@mui/material': 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) '@types/react': 18.3.12 react: 18.3.1 dev: false - /@mui/lab@6.0.0-beta.11(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@mui/material@6.1.6)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): + /@mui/lab@6.0.0-beta.11(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@mui/material@6.1.8)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-IoYzxAepMs0gnQ2tTMokEd8Bmqt+To/8HQyzjrQCbYZmKyYR/6aK3wm3Y5NpfSLuBo1UrkeXWyKsHeRcHreGdQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2655,13 +2655,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) '@mui/base': 5.0.0-beta.58(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) - '@mui/material': 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) - '@mui/system': 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react@18.3.1) + '@mui/material': 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + '@mui/system': 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) - '@mui/utils': 6.1.6(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 6.1.8(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 clsx: 2.1.1 prop-types: 15.8.1 @@ -2669,7 +2669,7 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@mui/material@5.16.7(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): + /@mui/material@5.16.7(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-cwwVQxBhK60OIOqZOVLFt55t01zmarKJiJUWbk0+8s/Ix5IaUzAShqlJchxsIQ4mSrWqgcKCCXKtIlG5H+/Jmg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -2687,10 +2687,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) '@mui/core-downloads-tracker': 5.16.7 - '@mui/system': 5.16.7(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react@18.3.1) + '@mui/system': 5.16.7(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) '@popperjs/core': 2.11.8 @@ -2705,13 +2705,13 @@ packages: react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1) dev: false - /@mui/material@6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-1yvejiQ/601l5AK3uIdUlAVElyCxoqKnl7QA+2oFB/2qYPWfRwDgavW/MoywS5Y2gZEslcJKhe0s2F3IthgFgw==} + /@mui/material@6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-QZdQFnXct+7NXIzHgT3qt+sQiO7HYGZU2vymP9Xl9tUMXEOA/S1mZMMb7+WGZrk5TzNlU/kP/85K0da5V1jXoQ==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@mui/material-pigment-css': ^6.1.6 + '@mui/material-pigment-css': ^6.1.8 '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2726,12 +2726,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) - '@mui/core-downloads-tracker': 6.1.6 - '@mui/system': 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react@18.3.1) + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) + '@mui/core-downloads-tracker': 6.1.8 + '@mui/system': 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) - '@mui/utils': 6.1.6(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 6.1.8(@types/react@18.3.12)(react@18.3.1) '@popperjs/core': 2.11.8 '@types/react': 18.3.12 '@types/react-transition-group': 4.4.11 @@ -2761,8 +2761,8 @@ packages: react: 18.3.1 dev: false - /@mui/private-theming@6.1.6(@types/react@18.3.12)(react@18.3.1): - resolution: {integrity: sha512-ioAiFckaD/fJSnTrUMWgjl9HYBWt7ixCh7zZw7gDZ+Tae7NuprNV6QJK95EidDT7K0GetR2rU3kAeIR61Myttw==} + /@mui/private-theming@6.1.8(@types/react@18.3.12)(react@18.3.1): + resolution: {integrity: sha512-TuKl7msynCNCVvhX3c0ef1sF0Qb3VHcPs8XOGB/8bdOGBr/ynmIG1yTMjZeiFQXk8yN9fzK/FDEKMFxILNn3wg==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2772,13 +2772,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@mui/utils': 6.1.6(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 6.1.8(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 prop-types: 15.8.1 react: 18.3.1 dev: false - /@mui/styled-engine@5.16.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(react@18.3.1): + /@mui/styled-engine@5.16.6(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(react@18.3.1): resolution: {integrity: sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==} engines: {node: '>=12.0.0'} peerDependencies: @@ -2792,16 +2792,16 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/cache': 11.13.1 - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) + '@emotion/cache': 11.13.5 + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) csstype: 3.1.3 prop-types: 15.8.1 react: 18.3.1 dev: false - /@mui/styled-engine@6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(react@18.3.1): - resolution: {integrity: sha512-I+yS1cSuSvHnZDBO7e7VHxTWpj+R7XlSZvTC4lS/OIbUNJOMMSd3UDP6V2sfwzAdmdDNBi7NGCRv2SZ6O9hGDA==} + /@mui/styled-engine@6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(react@18.3.1): + resolution: {integrity: sha512-ZvEoT0U2nPLSLI+B4by4cVjaZnPT2f20f4JUPkyHdwLv65ZzuoHiTlwyhqX1Ch63p8bcJzKTHQVGisEoMK6PGA==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -2814,18 +2814,18 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/cache': 11.13.1 - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/serialize': 1.3.2 + '@emotion/cache': 11.13.5 + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/serialize': 1.3.3 '@emotion/sheet': 1.4.0 - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) csstype: 3.1.3 prop-types: 15.8.1 react: 18.3.1 dev: false - /@mui/styles@6.1.6(@types/react@18.3.12)(react@18.3.1): - resolution: {integrity: sha512-2cGEUMi4kYNskrg2Upe0bR3Th2/e4j3Vd6R2lIMksBDivJH9o+nkwLjtf91KUOhKZ4BReCDVDC398dbOs+Ygdw==} + /@mui/styles@6.1.8(@types/react@18.3.12)(react@18.3.1): + resolution: {integrity: sha512-i6x01fNV/pqHMZStP6N90vCq8I+z8FacIAjCdsH1dFyBqfQldhtrBHDHqEZ860jkwG5ER/EEmG7ug7nUf8xsJA==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2836,9 +2836,9 @@ packages: dependencies: '@babel/runtime': 7.26.0 '@emotion/hash': 0.9.2 - '@mui/private-theming': 6.1.6(@types/react@18.3.12)(react@18.3.1) + '@mui/private-theming': 6.1.8(@types/react@18.3.12)(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) - '@mui/utils': 6.1.6(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 6.1.8(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 clsx: 2.1.1 csstype: 3.1.3 @@ -2855,7 +2855,7 @@ packages: react: 18.3.1 dev: false - /@mui/system@5.16.7(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react@18.3.1): + /@mui/system@5.16.7(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react@18.3.1): resolution: {integrity: sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==} engines: {node: '>=12.0.0'} peerDependencies: @@ -2872,10 +2872,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) '@mui/private-theming': 5.16.6(@types/react@18.3.12)(react@18.3.1) - '@mui/styled-engine': 5.16.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(react@18.3.1) + '@mui/styled-engine': 5.16.6(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 @@ -2885,8 +2885,8 @@ packages: react: 18.3.1 dev: false - /@mui/system@6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react@18.3.1): - resolution: {integrity: sha512-qOf1VUE9wK8syiB0BBCp82oNBAVPYdj4Trh+G1s+L+ImYiKlubWhhqlnvWt3xqMevR+D2h1CXzA1vhX2FvA+VQ==} + /@mui/system@6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react@18.3.1): + resolution: {integrity: sha512-i1kLfQoWxzFpXTBQIuPoA3xKnAnP3en4I2T8xIolovSolGQX5k8vGjw1JaydQS40td++cFsgCdEU458HDNTGUA==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2902,12 +2902,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) - '@mui/private-theming': 6.1.6(@types/react@18.3.12)(react@18.3.1) - '@mui/styled-engine': 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(react@18.3.1) + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) + '@mui/private-theming': 6.1.8(@types/react@18.3.12)(react@18.3.1) + '@mui/styled-engine': 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(react@18.3.1) '@mui/types': 7.2.19(@types/react@18.3.12) - '@mui/utils': 6.1.6(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 6.1.8(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 clsx: 2.1.1 csstype: 3.1.3 @@ -2966,8 +2966,8 @@ packages: react-is: 18.3.1 dev: false - /@mui/utils@6.1.6(@types/react@18.3.12)(react@18.3.1): - resolution: {integrity: sha512-sBS6D9mJECtELASLM+18WUcXF6RH3zNxBRFeyCRg8wad6NbyNrdxLuwK+Ikvc38sTZwBzAz691HmSofLqHd9sQ==} + /@mui/utils@6.1.8(@types/react@18.3.12)(react@18.3.1): + resolution: {integrity: sha512-O2DWb1kz8hiANVcR7Z4gOB3SvPPsSQGUmStpyBDzde6dJIfBzgV9PbEQOBZd3EBsd1pB+Uv1z5LAJAbymmawrA==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2986,8 +2986,8 @@ packages: react-is: 18.3.1 dev: false - /@mui/x-date-pickers@7.22.1(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@mui/material@6.1.6)(@mui/system@6.1.6)(@types/react@18.3.12)(dayjs@1.11.13)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-VBgicE+7PvJrdHSL6HyieHT6a/0dENH8RaMIM2VwUFrGoZzvik50WNwY5U+Hip1BwZLIEvlqtNRQIIj6kgBR6Q==} + /@mui/x-date-pickers@7.22.2(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@mui/material@6.1.8)(@mui/system@6.1.8)(@types/react@18.3.12)(dayjs@1.11.13)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-1KHSlIlnSoY3oHm820By8X344pIdGYqPvCCvfVHrEeeIQ/pHdxDD8tjZFWkFl4Jgm9oVFK90fMcqNZAzc+WaCw==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.9.0 @@ -2999,7 +2999,7 @@ packages: dayjs: ^1.10.7 luxon: ^3.0.2 moment: ^2.29.4 - moment-hijri: ^2.1.2 + moment-hijri: ^2.1.2 || ^3.0.0 moment-jalaali: ^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 @@ -3024,11 +3024,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.26.0 - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) - '@mui/material': 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) - '@mui/system': 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react@18.3.1) - '@mui/utils': 6.1.6(@types/react@18.3.12)(react@18.3.1) + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) + '@mui/material': 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + '@mui/system': 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 6.1.8(@types/react@18.3.12)(react@18.3.1) '@mui/x-internals': 7.21.0(@types/react@18.3.12)(react@18.3.1) '@types/react-transition-group': 4.4.11 clsx: 2.1.1 @@ -3048,7 +3048,7 @@ packages: react: ^17.0.0 || ^18.0.0 dependencies: '@babel/runtime': 7.26.0 - '@mui/utils': 6.1.6(@types/react@18.3.12)(react@18.3.1) + '@mui/utils': 6.1.8(@types/react@18.3.12)(react@18.3.1) react: 18.3.1 transitivePeerDependencies: - '@types/react' @@ -3169,34 +3169,34 @@ packages: resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} dev: true - /@shikijs/core@1.22.2: - resolution: {integrity: sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==} + /@shikijs/core@1.23.1: + resolution: {integrity: sha512-NuOVgwcHgVC6jBVH5V7iblziw6iQbWWHrj5IlZI3Fqu2yx9awH7OIQkXIcsHsUmY19ckwSgUMgrqExEyP5A0TA==} dependencies: - '@shikijs/engine-javascript': 1.22.2 - '@shikijs/engine-oniguruma': 1.22.2 - '@shikijs/types': 1.22.2 + '@shikijs/engine-javascript': 1.23.1 + '@shikijs/engine-oniguruma': 1.23.1 + '@shikijs/types': 1.23.1 '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 hast-util-to-html: 9.0.3 dev: true - /@shikijs/engine-javascript@1.22.2: - resolution: {integrity: sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==} + /@shikijs/engine-javascript@1.23.1: + resolution: {integrity: sha512-i/LdEwT5k3FVu07SiApRFwRcSJs5QM9+tod5vYCPig1Ywi8GR30zcujbxGQFJHwYD7A5BUqagi8o5KS+LEVgBg==} dependencies: - '@shikijs/types': 1.22.2 + '@shikijs/types': 1.23.1 '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-js: 0.4.3 + oniguruma-to-es: 0.4.1 dev: true - /@shikijs/engine-oniguruma@1.22.2: - resolution: {integrity: sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==} + /@shikijs/engine-oniguruma@1.23.1: + resolution: {integrity: sha512-KQ+lgeJJ5m2ISbUZudLR1qHeH3MnSs2mjFg7bnencgs5jDVPeJ2NVDJ3N5ZHbcTsOIh0qIueyAJnwg7lg7kwXQ==} dependencies: - '@shikijs/types': 1.22.2 + '@shikijs/types': 1.23.1 '@shikijs/vscode-textmate': 9.3.0 dev: true - /@shikijs/types@1.22.2: - resolution: {integrity: sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==} + /@shikijs/types@1.23.1: + resolution: {integrity: sha512-98A5hGyEhzzAgQh2dAeHKrWW4HfCMeoFER2z16p5eJ+vmPeF6lZ/elEne6/UCU551F/WqkopqRsr1l2Yu6+A0g==} dependencies: '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 @@ -3299,26 +3299,26 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/bonjour@3.5.13: resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/connect-history-api-fallback@1.5.4: resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: '@types/express-serve-static-core': 5.0.1 - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/create-react-class@15.6.8: @@ -3353,7 +3353,7 @@ packages: /@types/express-serve-static-core@4.19.6: resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -3362,7 +3362,7 @@ packages: /@types/express-serve-static-core@5.0.1: resolution: {integrity: sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -3392,13 +3392,13 @@ packages: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/hast@3.0.4: @@ -3422,7 +3422,7 @@ packages: /@types/http-proxy@1.17.15: resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -3483,11 +3483,11 @@ packages: /@types/node-forge@1.3.11: resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true - /@types/node@22.9.0: - resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} + /@types/node@22.9.1: + resolution: {integrity: sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==} dependencies: undici-types: 6.19.8 dev: true @@ -3562,7 +3562,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/serve-index@1.9.4: @@ -3575,14 +3575,14 @@ packages: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.9.0 + '@types/node': 22.9.1 '@types/send': 0.17.4 dev: true /@types/sockjs@0.3.36: resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/source-list-map@0.1.6: @@ -3593,7 +3593,7 @@ packages: resolution: {integrity: sha512-ep8b36RKHlgWPqjNG9ToUrPiwkhwh0AEzy883mO5Xnd+cL6VBH1EvSjBAAuxLUFF2Vn/moE3Me6v9E1Lo+48GQ==} dependencies: '@types/emscripten': 1.39.13 - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/stack-utils@2.0.3: @@ -3617,7 +3617,7 @@ packages: /@types/webpack-sources@3.2.3: resolution: {integrity: sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 '@types/source-list-map': 0.1.6 source-map: 0.7.4 dev: true @@ -3625,7 +3625,7 @@ packages: /@types/webpack@4.41.40: resolution: {integrity: sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -3636,7 +3636,7 @@ packages: /@types/ws@8.5.13: resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 dev: true /@types/yargs-parser@21.0.3: @@ -3705,6 +3705,14 @@ packages: '@typescript-eslint/visitor-keys': 8.13.0 dev: true + /@typescript-eslint/scope-manager@8.15.0: + resolution: {integrity: sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/visitor-keys': 8.15.0 + dev: true + /@typescript-eslint/scope-manager@8.9.0: resolution: {integrity: sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3737,6 +3745,11 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true + /@typescript-eslint/types@8.15.0: + resolution: {integrity: sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + /@typescript-eslint/types@8.9.0: resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3764,6 +3777,28 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree@8.15.0(typescript@5.6.3): + resolution: {integrity: sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/visitor-keys': 8.15.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.4.0(typescript@5.6.3) + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/typescript-estree@8.9.0(typescript@5.6.3): resolution: {integrity: sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3786,20 +3821,24 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@8.13.0(eslint@8.57.1)(typescript@5.6.3): - resolution: {integrity: sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==} + /@typescript-eslint/utils@8.15.0(eslint@8.57.1)(typescript@5.6.3): + resolution: {integrity: sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.13.0 - '@typescript-eslint/types': 8.13.0 - '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.15.0 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) eslint: 8.57.1 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - - typescript dev: true /@typescript-eslint/utils@8.9.0(eslint@8.57.1)(typescript@5.6.3): @@ -3826,6 +3865,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@8.15.0: + resolution: {integrity: sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + '@typescript-eslint/types': 8.15.0 + eslint-visitor-keys: 4.2.0 + dev: true + /@typescript-eslint/visitor-keys@8.9.0: resolution: {integrity: sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3838,109 +3885,109 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@webassemblyjs/ast@1.13.1: - resolution: {integrity: sha512-+Zp/YJMBws+tg2Nuy5jiFhwvPiSeIB0gPp1Ie/TyqFg69qJ/vRrOKQ7AsFLn3solq5/9ubkBjrGd0UcvFjFsYA==} + /@webassemblyjs/ast@1.14.1: + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} dependencies: - '@webassemblyjs/helper-numbers': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.12.1 + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 dev: true - /@webassemblyjs/floating-point-hex-parser@1.12.1: - resolution: {integrity: sha512-0vqwjuCO3Sa6pO3nfplawORkL1GUgza/H1A62SdXHSFCmAHoRcrtX/yVG3f1LuMYW951cvYRcRt6hThhz4FnCQ==} + /@webassemblyjs/floating-point-hex-parser@1.13.2: + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} dev: true - /@webassemblyjs/helper-api-error@1.12.1: - resolution: {integrity: sha512-czovmKZdRk4rYauCOuMV/EImC3qyfcqyJuOYyDRYR6PZSOW37VWe26fAZQznbvKjlwJdyxLl6mIfx47Cfz8ykw==} + /@webassemblyjs/helper-api-error@1.13.2: + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} dev: true - /@webassemblyjs/helper-buffer@1.13.1: - resolution: {integrity: sha512-J0gf97+D3CavG7aO5XmtwxRWMiMEuxQ6t8Aov8areSnyI5P5fM0HV0m8bE3iLfDQZBhxLCc15tRsFVOGyAJ0ng==} + /@webassemblyjs/helper-buffer@1.14.1: + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} dev: true - /@webassemblyjs/helper-numbers@1.12.1: - resolution: {integrity: sha512-Vp6k5nXOMvI9dWJqDGCMvwAc8+G6tI2YziuYWqxk7XYnWHdxEJo19CGpqm/kRh86rJxwYANLGuyreARhM+C9lQ==} + /@webassemblyjs/helper-numbers@1.13.2: + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.12.1 - '@webassemblyjs/helper-api-error': 1.12.1 + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 '@xtuc/long': 4.2.2 dev: true - /@webassemblyjs/helper-wasm-bytecode@1.12.1: - resolution: {integrity: sha512-flsRYmCqN2ZJmvAyNxZXPPFkwKoezeTUczytfBovql8cOjYTr6OTcZvku4UzyKFW0Kj+PgD+UaG8/IdX31EYWg==} + /@webassemblyjs/helper-wasm-bytecode@1.13.2: + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} dev: true - /@webassemblyjs/helper-wasm-section@1.13.1: - resolution: {integrity: sha512-lcVNbrM5Wm7867lmbU61l+R4dU7emD2X70f9V0PuicvsdVUS5vvXODAxRYGVGBAJ6rWmXMuZKjM0PoeBjAcm2A==} + /@webassemblyjs/helper-wasm-section@1.14.1: + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} dependencies: - '@webassemblyjs/ast': 1.13.1 - '@webassemblyjs/helper-buffer': 1.13.1 - '@webassemblyjs/helper-wasm-bytecode': 1.12.1 - '@webassemblyjs/wasm-gen': 1.13.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 dev: true - /@webassemblyjs/ieee754@1.12.1: - resolution: {integrity: sha512-fcrUCqE2dVldeVAHTWFiTiKMS9ivc5jOgB2c30zYOZnm3O54SWeMJWS/HXYK862we2AYHtf6GYuP9xG9J+5zyQ==} + /@webassemblyjs/ieee754@1.13.2: + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} dependencies: '@xtuc/ieee754': 1.2.0 dev: true - /@webassemblyjs/leb128@1.12.1: - resolution: {integrity: sha512-jOU6pTFNf7aGm46NCrEU7Gj6cVuP55T7+kyo5TU/rCduZ5EdwMPBZwSwwzjPZ3eFXYFCmC5wZdPZN0ZWio6n4Q==} + /@webassemblyjs/leb128@1.13.2: + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} dependencies: '@xtuc/long': 4.2.2 dev: true - /@webassemblyjs/utf8@1.12.1: - resolution: {integrity: sha512-zcZvnAY3/M28Of012dksIfC26qZQJlj2PQCCvxqlsRJHOYtasp+OvK8nRcg11TKzAAv3ja7Y0NEBMKAjH6ljnw==} + /@webassemblyjs/utf8@1.13.2: + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} dev: true - /@webassemblyjs/wasm-edit@1.13.1: - resolution: {integrity: sha512-YHnh/f4P4ggjPB+pcri8Pb2HHwCGK+B8qBE+NeEp/WTMQ7dAjgWTnLhXxUqb6WLOT25TK5m0VTCAKTYw8AKxcg==} + /@webassemblyjs/wasm-edit@1.14.1: + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} dependencies: - '@webassemblyjs/ast': 1.13.1 - '@webassemblyjs/helper-buffer': 1.13.1 - '@webassemblyjs/helper-wasm-bytecode': 1.12.1 - '@webassemblyjs/helper-wasm-section': 1.13.1 - '@webassemblyjs/wasm-gen': 1.13.1 - '@webassemblyjs/wasm-opt': 1.13.1 - '@webassemblyjs/wasm-parser': 1.13.1 - '@webassemblyjs/wast-printer': 1.13.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 dev: true - /@webassemblyjs/wasm-gen@1.13.1: - resolution: {integrity: sha512-AxWiaqIeLh3c1H+8d1gPgVNXHyKP7jDu2G828Of9/E0/ovVEsh6LjX1QZ6g1tFBHocCwuUHK9O4w35kgojZRqA==} + /@webassemblyjs/wasm-gen@1.14.1: + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} dependencies: - '@webassemblyjs/ast': 1.13.1 - '@webassemblyjs/helper-wasm-bytecode': 1.12.1 - '@webassemblyjs/ieee754': 1.12.1 - '@webassemblyjs/leb128': 1.12.1 - '@webassemblyjs/utf8': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 dev: true - /@webassemblyjs/wasm-opt@1.13.1: - resolution: {integrity: sha512-SUMlvCrfykC7dtWX5g4TSuMmWi9w9tK5kGIdvQMnLuvJfnFLsnAaF86FNbSBSAL33VhM/hOhx4t9o66N37IqSg==} + /@webassemblyjs/wasm-opt@1.14.1: + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} dependencies: - '@webassemblyjs/ast': 1.13.1 - '@webassemblyjs/helper-buffer': 1.13.1 - '@webassemblyjs/wasm-gen': 1.13.1 - '@webassemblyjs/wasm-parser': 1.13.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 dev: true - /@webassemblyjs/wasm-parser@1.13.1: - resolution: {integrity: sha512-8SPOcbqSb7vXHG+B0PTsJrvT/HilwV3WkJgxw34lmhWvO+7qM9xBTd9u4dn1Lb86WHpKswT5XwF277uBTHFikg==} + /@webassemblyjs/wasm-parser@1.14.1: + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} dependencies: - '@webassemblyjs/ast': 1.13.1 - '@webassemblyjs/helper-api-error': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.12.1 - '@webassemblyjs/ieee754': 1.12.1 - '@webassemblyjs/leb128': 1.12.1 - '@webassemblyjs/utf8': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 dev: true - /@webassemblyjs/wast-printer@1.13.1: - resolution: {integrity: sha512-q0zIfwpbFvaNkgbSzkZFzLsOs8ixZ5MSdTTMESilSAk1C3P8BKEWfbLEvIqyI/PjNpP9+ZU+/KwgfXx3T7ApKw==} + /@webassemblyjs/wast-printer@1.14.1: + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} dependencies: - '@webassemblyjs/ast': 1.13.1 + '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 dev: true @@ -4137,7 +4184,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 @@ -4154,7 +4201,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -4166,7 +4213,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -4178,7 +4225,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 dev: true @@ -4188,7 +4235,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 dev: true @@ -4198,7 +4245,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 dev: true @@ -4210,7 +4257,7 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -4229,8 +4276,8 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: false - /attr-accept@2.2.4: - resolution: {integrity: sha512-2pA6xFIbdTUDCAwjN8nQwI+842VwzbDUXO2IYlpPXQIORgKnavorcr4Ce3rwh+zsNg9zK7QPsdvDj3Lum4WX4w==} + /attr-accept@2.2.5: + resolution: {integrity: sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==} engines: {node: '>=4'} dev: false @@ -4344,14 +4391,14 @@ packages: resolve: 1.22.8 dev: false - /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.26.0): - resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + /babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): + resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.26.2 '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -4363,19 +4410,19 @@ packages: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) core-js-compat: 3.39.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.26.0): - resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + /babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): + resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) transitivePeerDependencies: - supports-color dev: true @@ -4450,8 +4497,8 @@ packages: unpipe: 1.0.0 dev: true - /bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + /bonjour-service@1.3.0: + resolution: {integrity: sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==} dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 @@ -4486,8 +4533,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001677 - electron-to-chromium: 1.5.52 + caniuse-lite: 1.0.30001680 + electron-to-chromium: 1.5.63 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) dev: true @@ -4546,8 +4593,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001677: - resolution: {integrity: sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==} + /caniuse-lite@1.0.30001680: + resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} dev: true /ccount@2.0.1: @@ -4579,7 +4626,7 @@ packages: resolution: {integrity: sha512-8Y406zevUPbbIBA/HRk33khEmQPk5+cxeflWE/2rx1NJsjVWMPw/9mSP9rxHP5eqi6LNoPBVMfZHxbwLSgldYA==} engines: {pnpm: '>=8'} dependencies: - '@kurkle/color': 0.3.2 + '@kurkle/color': 0.3.4 dev: false /chartjs-adapter-moment@1.0.1(chart.js@4.4.6)(moment@2.30.1): @@ -4877,7 +4924,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.9.0) + jest-config: 29.7.0(@types/node@22.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -4895,8 +4942,8 @@ packages: - encoding dev: false - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + /cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} dependencies: path-key: 3.1.1 @@ -4916,12 +4963,12 @@ packages: webpack: optional: true dependencies: - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.47) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.47) - postcss-modules-scope: 3.2.0(postcss@8.4.47) - postcss-modules-values: 4.0.0(postcss@8.4.47) + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) + postcss-modules-local-by-default: 4.1.0(postcss@8.4.49) + postcss-modules-scope: 3.2.1(postcss@8.4.49) + postcss-modules-values: 4.0.0(postcss@8.4.49) postcss-value-parser: 4.2.0 semver: 7.6.3 webpack: 5.96.1(webpack-cli@5.1.4) @@ -5233,8 +5280,8 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - /electron-to-chromium@1.5.52: - resolution: {integrity: sha512-xtoijJTZ+qeucLBDNztDOuQBE1ksqjvNjvqFoST3nGC7fSpqJ+X6BdTBaY5BHG+IhWWmpc6b/KfpeuEDupEPOQ==} + /electron-to-chromium@1.5.63: + resolution: {integrity: sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==} dev: true /email-addresses@5.0.0: @@ -5246,6 +5293,10 @@ packages: engines: {node: '>=12'} dev: true + /emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -5296,8 +5347,8 @@ packages: dependencies: is-arrayish: 0.2.1 - /es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + /es-abstract@1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 @@ -5331,7 +5382,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.2 + object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.3 @@ -5366,7 +5417,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-set-tostringtag: 2.0.3 function-bind: 1.1.2 @@ -5546,7 +5597,7 @@ packages: optional: true dependencies: '@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.13.0)(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/utils': 8.13.0(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/utils': 8.15.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 transitivePeerDependencies: - supports-color @@ -5660,6 +5711,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + /eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5676,7 +5732,7 @@ packages: '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7 doctrine: 3.0.0 escape-string-regexp: 4.0.0 @@ -5770,7 +5826,7 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -6010,7 +6066,7 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.3.1 + flatted: 3.3.2 keyv: 4.5.4 rimraf: 3.0.2 dev: true @@ -6020,8 +6076,8 @@ packages: hasBin: true dev: true - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + /flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} dev: true /follow-redirects@1.15.9: @@ -6092,7 +6148,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 functions-have-names: 1.2.3 dev: true @@ -6573,8 +6629,8 @@ packages: '@babel/runtime': 7.26.0 dev: false - /i18next@23.16.4: - resolution: {integrity: sha512-9NIYBVy9cs4wIqzurf7nLXPyf3R78xYbxExVqHLK9od3038rjpyOEzW+XB130kZ1N4PZ9inTtJ471CRJ4Ituyg==} + /i18next@23.16.8: + resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} dependencies: '@babel/runtime': 7.26.0 dev: false @@ -6586,13 +6642,13 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils@5.1.0(postcss@8.4.47): + /icss-utils@5.1.0(postcss@8.4.49): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.47 + postcss: 8.4.49 dev: true /ignore@5.3.2: @@ -7013,7 +7069,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -7051,7 +7107,7 @@ packages: create-jest: 29.7.0 exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.9.0) + jest-config: 29.7.0(@types/node@22.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -7062,7 +7118,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@22.9.0): + /jest-config@29.7.0(@types/node@22.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -7077,7 +7133,7 @@ packages: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 babel-jest: 29.7.0(@babel/core@7.26.0) chalk: 4.1.2 ci-info: 3.9.0 @@ -7137,7 +7193,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -7153,7 +7209,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.9.0 + '@types/node': 22.9.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -7204,7 +7260,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 jest-util: 29.7.0 dev: true @@ -7259,7 +7315,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -7290,7 +7346,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -7342,7 +7398,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -7367,7 +7423,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.0 + '@types/node': 22.9.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -7379,7 +7435,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -7388,7 +7444,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 22.9.0 + '@types/node': 22.9.1 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7607,12 +7663,12 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /linkify-html@4.1.3(linkifyjs@4.1.3): - resolution: {integrity: sha512-Ejb8X/pOxB4IVqG1U37tnF85UW3JtX+eHudH3zlZ2pODz2e/J7zQ/vj+VDWffwhTecJqdRehhluwrRmKoJz+iQ==} + /linkify-html@4.1.4(linkifyjs@4.1.4): + resolution: {integrity: sha512-6HA+YB++HrtPrSi+3gVEc0xdEGmqwLGErV0yagQta2bxfDOppjBHgadddpHWPR76LgB/Tiax22VfJtTqxkoijA==} peerDependencies: linkifyjs: ^4.0.0 dependencies: - linkifyjs: 4.1.3 + linkifyjs: 4.1.4 dev: false /linkify-it@5.0.0: @@ -7621,8 +7677,8 @@ packages: uc.micro: 2.1.0 dev: true - /linkifyjs@4.1.3: - resolution: {integrity: sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==} + /linkifyjs@4.1.4: + resolution: {integrity: sha512-0/NxkHNpiJ0k9VrYCkAn9OtU1eu8xEr1tCCpDtSsVRm/SF0xAak2Gzv3QimSfgUgqLBCDlfhMbu73XvaEHUTPQ==} dev: false /loader-runner@4.3.0: @@ -7756,8 +7812,8 @@ packages: webpack: 5.96.1(webpack-cli@5.1.4) dev: true - /markdown-to-jsx@7.5.0(react@18.3.1): - resolution: {integrity: sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw==} + /markdown-to-jsx@7.5.1(react@18.3.1): + resolution: {integrity: sha512-zM0U3JcLUWVKDYQTSUMaRPPjD+rNF2TIhPt697d41Dh4a5OtABeYhidXgXV/w9BZcsqDWvY3qKyi657my2nTlw==} engines: {node: '>= 10'} peerDependencies: react: '>= 0.14.0' @@ -7770,7 +7826,7 @@ packages: hasBin: true dev: true - /material-react-table@3.0.1(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@mui/icons-material@6.1.6)(@mui/material@6.1.6)(@mui/x-date-pickers@7.22.1)(react-dom@18.3.1)(react@18.3.1): + /material-react-table@3.0.1(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@mui/icons-material@6.1.8)(@mui/material@6.1.8)(@mui/x-date-pickers@7.22.2)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-RP+bnpsOAH5j6zwP04u9HB37fyqbd6mVv9mkT4IUJC3e3gEqixZmkNdJMVM1ZVHoq7yIaM381xf22mpBVe0IaA==} engines: {node: '>=16'} peerDependencies: @@ -7782,11 +7838,11 @@ packages: react: '>=18.0' react-dom: '>=18.0' dependencies: - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) - '@mui/icons-material': 6.1.6(@mui/material@6.1.6)(@types/react@18.3.12)(react@18.3.1) - '@mui/material': 6.1.6(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) - '@mui/x-date-pickers': 7.22.1(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@mui/material@6.1.6)(@mui/system@6.1.6)(@types/react@18.3.12)(dayjs@1.11.13)(react-dom@18.3.1)(react@18.3.1) + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) + '@mui/icons-material': 6.1.8(@mui/material@6.1.8)(@types/react@18.3.12)(react@18.3.1) + '@mui/material': 6.1.8(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + '@mui/x-date-pickers': 7.22.2(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@mui/material@6.1.8)(@mui/system@6.1.8)(@types/react@18.3.12)(dayjs@1.11.13)(react-dom@18.3.1)(react@18.3.1) '@tanstack/match-sorter-utils': 8.19.4 '@tanstack/react-table': 8.20.5(react-dom@18.3.1)(react@18.3.1) '@tanstack/react-virtual': 3.10.6(react-dom@18.3.1)(react@18.3.1) @@ -7802,7 +7858,7 @@ packages: '@types/mdast': 4.0.4 '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.0 + micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 @@ -7850,31 +7906,31 @@ packages: resolution: {integrity: sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA==} dev: false - /micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + /micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} dependencies: - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 dev: true - /micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + /micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} dev: true - /micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + /micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} dependencies: - micromark-util-character: 2.1.0 - micromark-util-encode: 2.0.0 - micromark-util-symbol: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 dev: true - /micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + /micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} dev: true - /micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + /micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} dev: true /micromatch@4.0.8: @@ -8032,8 +8088,8 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - /object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + /object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} dev: true @@ -8067,7 +8123,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 dev: true @@ -8077,7 +8133,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 dev: true /object.values@1.2.0: @@ -8140,10 +8196,12 @@ packages: mimic-fn: 2.1.0 dev: true - /oniguruma-to-js@0.4.3: - resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + /oniguruma-to-es@0.4.1: + resolution: {integrity: sha512-rNcEohFz095QKGRovP/yqPIKc+nP+Sjs4YTHMv33nMePGKrq/r2eu9Yh4646M5XluGJsUnmwoXuiXE69KDs+fQ==} dependencies: - regex: 4.4.0 + emoji-regex-xs: 1.0.0 + regex: 5.0.2 + regex-recursion: 4.2.1 dev: true /open@10.1.0: @@ -8215,8 +8273,8 @@ packages: p-limit: 4.0.0 dev: true - /p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + /p-retry@6.2.1: + resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} engines: {node: '>=16.17'} dependencies: '@types/retry': 0.12.2 @@ -8361,49 +8419,49 @@ packages: engines: {node: '>= 0.4'} dev: true - /postcss-modules-extract-imports@3.1.0(postcss@8.4.47): + /postcss-modules-extract-imports@3.1.0(postcss@8.4.49): resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.47 + postcss: 8.4.49 dev: true - /postcss-modules-local-by-default@4.0.5(postcss@8.4.47): - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + /postcss-modules-local-by-default@4.1.0(postcss@8.4.49): + resolution: {integrity: sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope@3.2.0(postcss@8.4.47): - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + /postcss-modules-scope@3.2.1(postcss@8.4.49): + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 + postcss: 8.4.49 + postcss-selector-parser: 7.0.0 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.47): + /postcss-modules-values@4.0.0(postcss@8.4.49): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 dev: true - /postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + /postcss-selector-parser@7.0.0: + resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -8414,8 +8472,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + /postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -8609,7 +8667,7 @@ packages: peerDependencies: react: '>= 16.8 || 18.0.0' dependencies: - attr-accept: 2.2.4 + attr-accept: 2.2.5 file-selector: 2.1.0 prop-types: 15.8.1 react: 18.3.1 @@ -8635,7 +8693,7 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /react-i18next@13.5.0(i18next@23.16.4)(react-dom@18.3.1)(react@18.3.1): + /react-i18next@13.5.0(i18next@23.16.8)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==} peerDependencies: i18next: '>= 23.2.3' @@ -8650,7 +8708,7 @@ packages: dependencies: '@babel/runtime': 7.26.0 html-parse-stringify: 3.0.1 - i18next: 23.16.4 + i18next: 23.16.8 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -8748,7 +8806,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.4 @@ -8775,8 +8833,20 @@ packages: '@babel/runtime': 7.26.0 dev: true - /regex@4.4.0: - resolution: {integrity: sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==} + /regex-recursion@4.2.1: + resolution: {integrity: sha512-QHNZyZAeKdndD1G3bKAbBEKOSSK4KOHQrAJ01N1LJeb0SoH4DJIeFhp0uUpETgONifS4+P3sOgoA1dhzgrQvhA==} + dependencies: + regex-utilities: 2.3.0 + dev: true + + /regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + dev: true + + /regex@5.0.2: + resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==} + dependencies: + regex-utilities: 2.3.0 dev: true /regexp.prototype.flags@1.5.3: @@ -8964,7 +9034,7 @@ packages: htmlparser2: 8.0.2 is-plain-object: 5.0.0 parse-srcset: 1.0.2 - postcss: 8.4.47 + postcss: 8.4.49 dev: false /scheduler@0.23.2: @@ -9120,13 +9190,13 @@ packages: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true - /shiki@1.22.2: - resolution: {integrity: sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==} + /shiki@1.23.1: + resolution: {integrity: sha512-8kxV9TH4pXgdKGxNOkrSMydn1Xf6It8lsle0fiqxf7a1149K1WGtdOu3Zb91T5r1JpvRPxqxU3C2XdZZXQnrig==} dependencies: - '@shikijs/core': 1.22.2 - '@shikijs/engine-javascript': 1.22.2 - '@shikijs/engine-oniguruma': 1.22.2 - '@shikijs/types': 1.22.2 + '@shikijs/core': 1.23.1 + '@shikijs/engine-javascript': 1.23.1 + '@shikijs/engine-oniguruma': 1.23.1 + '@shikijs/types': 1.23.1 '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 dev: true @@ -9138,7 +9208,7 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.3 dev: true /signal-exit@3.0.7: @@ -9331,7 +9401,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 dev: true /string.prototype.matchall@4.0.11: @@ -9340,7 +9410,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 @@ -9356,7 +9426,7 @@ packages: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} dependencies: define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 dev: true /string.prototype.trim@1.2.9: @@ -9365,7 +9435,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 dev: true @@ -9711,9 +9781,9 @@ packages: lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 - shiki: 1.22.2 + shiki: 1.23.1 typescript: 5.6.3 - yaml: 2.6.0 + yaml: 2.6.1 dev: true /typescript@5.6.3: @@ -9960,7 +10030,7 @@ packages: '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.1.0)(webpack@5.96.1) colorette: 2.0.20 commander: 10.0.1 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 envinfo: 7.14.0 fastest-levenshtein: 1.0.16 import-local: 3.2.0 @@ -10011,7 +10081,7 @@ packages: '@types/sockjs': 0.3.36 '@types/ws': 8.5.13 ansi-html-community: 0.0.8 - bonjour-service: 1.2.1 + bonjour-service: 1.3.0 chokidar: 3.6.0 colorette: 2.0.20 compression: 1.7.5 @@ -10023,7 +10093,7 @@ packages: ipaddr.js: 2.2.0 launch-editor: 2.9.1 open: 10.1.0 - p-retry: 6.2.0 + p-retry: 6.2.1 schema-utils: 4.2.0 selfsigned: 2.4.1 serve-index: 1.9.1 @@ -10075,9 +10145,9 @@ packages: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.13.1 - '@webassemblyjs/wasm-edit': 1.13.1 - '@webassemblyjs/wasm-parser': 1.13.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 browserslist: 4.24.2 chrome-trace-event: 1.0.4 @@ -10259,8 +10329,8 @@ packages: engines: {node: '>= 6'} dev: false - /yaml@2.6.0: - resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + /yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} hasBin: true dev: true @@ -10283,8 +10353,8 @@ packages: yargs-parser: 21.1.1 dev: true - /yet-another-react-lightbox@3.21.6(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-uKcRmmezsj1Fbj38B6hFOGwbAu94fPr8d5H6I0+1FmcToX56freEGXXXtdA1oRo6036ug+UgrKZzzvsw/MIM/w==} + /yet-another-react-lightbox@3.21.7(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-dcdokNuCIl92f0Vl+uzeKULnQhztIGpoZFUMvtVNUPmtwsQWpqWufeieDPeg9JtFyVCcbj4vYw3V00DS0QNoWA==} engines: {node: '>=14'} peerDependencies: react: '>=16.8.0' @@ -10339,20 +10409,20 @@ packages: name: geoview-geochart version: 0.1.0 dependencies: - '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/styled': 11.13.0(@emotion/react@11.13.3)(@types/react@18.3.12)(react@18.3.1) + '@emotion/react': 11.13.5(@types/react@18.3.12)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5)(@types/react@18.3.12)(react@18.3.1) '@mui/icons-material': 5.16.7(@mui/material@5.16.7)(@types/react@18.3.12)(react@18.3.1) - '@mui/material': 5.16.7(@emotion/react@11.13.3)(@emotion/styled@11.13.0)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) + '@mui/material': 5.16.7(@emotion/react@11.13.5)(@emotion/styled@11.13.5)(@types/react@18.3.12)(react-dom@18.3.1)(react@18.3.1) ajv: 8.17.1 ajv-formats: 2.1.1 chart.js: 4.4.6 chartjs-adapter-moment: 1.0.1(chart.js@4.4.6)(moment@2.30.1) - i18next: 23.16.4 + i18next: 23.16.8 moment: 2.30.1 react: 18.3.1 react-chartjs-2: 5.2.0(chart.js@4.4.6)(react@18.3.1) react-dom: 18.3.1(react@18.3.1) - react-i18next: 13.5.0(i18next@23.16.4)(react-dom@18.3.1)(react@18.3.1) + react-i18next: 13.5.0(i18next@23.16.8)(react-dom@18.3.1)(react@18.3.1) transitivePeerDependencies: - '@types/react' - react-native diff --git a/packages/geoview-core/package.json b/packages/geoview-core/package.json index d74abea4047..191d8cc8878 100644 --- a/packages/geoview-core/package.json +++ b/packages/geoview-core/package.json @@ -32,7 +32,7 @@ "serve": "npm run format && npm run fix && webpack serve --progress --color --config webpack.dev.js", "build": "npm run format && npm run fix && npm run doc && webpack --progress --color --config webpack.prod.js && npm run generate.d.ts", "doc": "typedoc src/app.tsx --logLevel Error --out public/docs", - "deploy": "gh-pages -d dist", + "deploy": "gh-pages -d dist -verbose", "test": "jest", "update_test": "jest --updateSnapshot", "format": "npm run format --prefix ../", diff --git a/packages/geoview-core/public/configs/OSDP/function-event.json b/packages/geoview-core/public/configs/OSDP/function-event.json index 1f1c2bc9c2a..259b5e4ffab 100644 --- a/packages/geoview-core/public/configs/OSDP/function-event.json +++ b/packages/geoview-core/public/configs/OSDP/function-event.json @@ -77,7 +77,7 @@ { "geoviewLayerId": "geojsonLYR1", "geoviewLayerName": "GeoJSON Sample", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { diff --git a/packages/geoview-core/public/configs/my-config.json b/packages/geoview-core/public/configs/my-config.json index e4993e1ac63..40f92d1b70b 100644 --- a/packages/geoview-core/public/configs/my-config.json +++ b/packages/geoview-core/public/configs/my-config.json @@ -24,7 +24,7 @@ { "geoviewLayerId": "geojsonLYR4", "geoviewLayerName": "GeoJSON Line", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { diff --git a/packages/geoview-core/public/configs/navigator/05-zoom-layer.json b/packages/geoview-core/public/configs/navigator/05-zoom-layer.json index 9c838d45e22..8cba047a180 100644 --- a/packages/geoview-core/public/configs/navigator/05-zoom-layer.json +++ b/packages/geoview-core/public/configs/navigator/05-zoom-layer.json @@ -17,7 +17,7 @@ { "geoviewLayerId": "geojsonLYR1", "geoviewLayerName": "GeoJSON Sample", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { diff --git a/packages/geoview-core/public/configs/navigator/06-basic-footer.json b/packages/geoview-core/public/configs/navigator/06-basic-footer.json index 82c0fc7bdd9..647ff91230a 100644 --- a/packages/geoview-core/public/configs/navigator/06-basic-footer.json +++ b/packages/geoview-core/public/configs/navigator/06-basic-footer.json @@ -91,7 +91,7 @@ { "geoviewLayerId": "geojsonLYR1", "geoviewLayerName": "GeoJSON Sample", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { diff --git a/packages/geoview-core/public/configs/navigator/07-basic-appbar.json b/packages/geoview-core/public/configs/navigator/07-basic-appbar.json index e8d4640247d..f619489e020 100644 --- a/packages/geoview-core/public/configs/navigator/07-basic-appbar.json +++ b/packages/geoview-core/public/configs/navigator/07-basic-appbar.json @@ -35,7 +35,7 @@ { "geoviewLayerId": "geojsonLYR1", "geoviewLayerName": "GeoJSON Sample", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { diff --git a/packages/geoview-core/public/configs/navigator/12-package-geochart.json b/packages/geoview-core/public/configs/navigator/12-package-geochart.json index 33e6cad09ed..a69669ec9f4 100644 --- a/packages/geoview-core/public/configs/navigator/12-package-geochart.json +++ b/packages/geoview-core/public/configs/navigator/12-package-geochart.json @@ -70,7 +70,7 @@ { "geoviewLayerId": "geojsonLYR5", "geoviewLayerName": "GeoJSON Sample", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { diff --git a/packages/geoview-core/public/configs/navigator/13-all-layers.json b/packages/geoview-core/public/configs/navigator/13-all-layers.json index ac6ffc32157..3c4c7893ff3 100644 --- a/packages/geoview-core/public/configs/navigator/13-all-layers.json +++ b/packages/geoview-core/public/configs/navigator/13-all-layers.json @@ -13,7 +13,7 @@ { "geoviewLayerId": "geojsonLYR1", "geoviewLayerName": "GeoJSON Sample", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { @@ -114,7 +114,7 @@ "geoviewLayerType": "imageStatic", "listOfLayerEntryConfig": [ { - "layerId": "thumbnail", + "layerId": "napl-ring-of-fire-1954", "layerName": "Static Image", "source": { "dataAccessPath": "https://datacube-prod-data-public.s3.ca-central-1.amazonaws.com/store/imagery/aerial/napl/napl-ring-of-fire/napl-ring-of-fire-1954-08-07-60k-thumbnail.png", @@ -165,29 +165,28 @@ { "geoviewLayerId": "GeoPackageLYR1", "geoviewLayerName": "Natural Earth", + "metadataAccessPath": "./datasets/geopackages/", "geoviewLayerType": "GeoPackage", "listOfLayerEntryConfig": [ { "layerId": "Natural_Earth_QGIS_layers_and_styles.gpkg", - "layerName": "Natural Earth", "source": { "dataAccessPath": "./datasets/geopackages" - } + }, + "layerName": "Natural Earth" } ] }, { "geoviewLayerId": "xyzTilesLYR1", "geoviewLayerName": "World_Topo_Map", + "metadataAccessPath": "https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/", "geoviewLayerType": "xyzTiles", "listOfLayerEntryConfig": [ { - "layerId": "topo", + "layerId": "0", "layerName": "World Topo Map", - "initialSettings": { "minZoom": 3, "maxZoom": 8 }, - "source": { - "dataAccessPath": "https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}" - } + "initialSettings": { "minZoom": 3, "maxZoom": 8 } } ] }, @@ -198,12 +197,9 @@ "metadataAccessPath": "https://tiles.arcgis.com/tiles/HsjBaDykC1mjhXz9/arcgis/rest/services/CBMT_CBCT_3978_V_OSM/VectorTileServer/", "listOfLayerEntryConfig": [ { - "layerId": "toner", + "layerId": "CBMT_CBCT_3978_V_OSM", "layerName": "Tile basemap", - "initialSettings": { "minZoom": 3, "maxZoom": 18 }, - "source": { - "dataAccessPath": "https://tiles.arcgis.com/tiles/HsjBaDykC1mjhXz9/arcgis/rest/services/CBMT_CBCT_3978_V_OSM/VectorTileServer/tile/{z}/{y}/{x}.pbf" - } + "initialSettings": { "minZoom": 3, "maxZoom": 18 } } ] } diff --git a/packages/geoview-core/public/configs/navigator/15-xyz-tile.json b/packages/geoview-core/public/configs/navigator/15-xyz-tile.json index f13a64dce8b..8dea89f19f3 100644 --- a/packages/geoview-core/public/configs/navigator/15-xyz-tile.json +++ b/packages/geoview-core/public/configs/navigator/15-xyz-tile.json @@ -13,15 +13,13 @@ { "geoviewLayerId": "xyzTilesLYR1", "geoviewLayerName": "World_Topo_Map", + "metadataAccessPath": "https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/", "geoviewLayerType": "xyzTiles", "listOfLayerEntryConfig": [ { - "layerId": "topo", + "layerId": "0", "layerName": "World Topo Map", - "initialSettings": { "minZoom": 3, "maxZoom": 8 }, - "source": { - "dataAccessPath": "https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}" - } + "initialSettings": { "minZoom": 3, "maxZoom": 8 } } ] } diff --git a/packages/geoview-core/public/configs/navigator/18-esri-image.json b/packages/geoview-core/public/configs/navigator/18-esri-image.json index 6b3eef7666a..e3014fddd57 100644 --- a/packages/geoview-core/public/configs/navigator/18-esri-image.json +++ b/packages/geoview-core/public/configs/navigator/18-esri-image.json @@ -42,10 +42,7 @@ "listOfLayerEntryConfig": [ { "layerId": "0", - "layerName": "Cities", - "source": { - "dataAccessPath": "https://sampleserver6.arcgisonline.com/ArcGIS/rest/services/USA/MapServer" - } + "layerName": "Cities" }, { "layerId": "1", diff --git a/packages/geoview-core/public/configs/navigator/19-geojson.json b/packages/geoview-core/public/configs/navigator/19-geojson.json index 597a698dcae..2c77b73dc08 100644 --- a/packages/geoview-core/public/configs/navigator/19-geojson.json +++ b/packages/geoview-core/public/configs/navigator/19-geojson.json @@ -13,7 +13,7 @@ { "geoviewLayerId": "geojsonLYR1", "geoviewLayerName": "GeoJSON Sample", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { diff --git a/packages/geoview-core/public/configs/navigator/22-static-image.json b/packages/geoview-core/public/configs/navigator/22-static-image.json index 4d4d6b41789..55ab3431a03 100644 --- a/packages/geoview-core/public/configs/navigator/22-static-image.json +++ b/packages/geoview-core/public/configs/navigator/22-static-image.json @@ -14,13 +14,13 @@ { "geoviewLayerId": "staticLYR10", "geoviewLayerName": "Static Image", + "metadataAccessPath": "https://datacube-prod-data-public.s3.ca-central-1.amazonaws.com/store/imagery/aerial/napl/napl-ring-of-fire/", "geoviewLayerType": "imageStatic", "listOfLayerEntryConfig": [ { - "layerId": "thumbnail", + "layerId": "napl-ring-of-fire-1954-08-07-60k-thumbnail.png", "layerName": "Static Image", "source": { - "dataAccessPath": "https://datacube-prod-data-public.s3.ca-central-1.amazonaws.com/store/imagery/aerial/napl/napl-ring-of-fire/napl-ring-of-fire-1954-08-07-60k-thumbnail.png", "extent": [-87.77486341686723, 51.62285357468582, -84.57727128084842, 53.833354975551075], "projection": 4326 } diff --git a/packages/geoview-core/public/configs/navigator/23-csv.json b/packages/geoview-core/public/configs/navigator/23-csv.json index b6dba238ade..d0d0f2a878c 100644 --- a/packages/geoview-core/public/configs/navigator/23-csv.json +++ b/packages/geoview-core/public/configs/navigator/23-csv.json @@ -13,13 +13,13 @@ { "geoviewLayerId": "csvLYR1", "geoviewLayerName": "NPRI", + "metadataAccessPath": "./datasets/csv-files/", "geoviewLayerType": "CSV", "listOfLayerEntryConfig": [ { "layerId": "NPRI-INRP_WaterEau_MediaGroupMilieu_2022", "layerName": "NPRI Water Media Group 2022", "source": { - "dataAccessPath": "./datasets/csv-files/NPRI-INRP_WaterEau_MediaGroupMilieu_2022.csv", "separator": "," } } diff --git a/packages/geoview-core/public/configs/navigator/24-vector-tile.json b/packages/geoview-core/public/configs/navigator/24-vector-tile.json index 9b7075edf98..68344d53a34 100644 --- a/packages/geoview-core/public/configs/navigator/24-vector-tile.json +++ b/packages/geoview-core/public/configs/navigator/24-vector-tile.json @@ -17,11 +17,8 @@ "metadataAccessPath": "https://tiles.arcgis.com/tiles/HsjBaDykC1mjhXz9/arcgis/rest/services/CBMT_CBCT_3978_V_OSM/VectorTileServer/", "listOfLayerEntryConfig": [ { - "layerId": "toner", - "initialSettings": { "minZoom": 3, "maxZoom": 18 }, - "source": { - "dataAccessPath": "https://tiles.arcgis.com/tiles/HsjBaDykC1mjhXz9/arcgis/rest/services/CBMT_CBCT_3978_V_OSM/VectorTileServer/tile/{z}/{y}/{x}.pbf" - } + "layerId": "CBMT_CBCT_3978_V_OSM", + "initialSettings": { "minZoom": 3, "maxZoom": 18 } } ] } diff --git a/packages/geoview-core/public/configs/navigator/25-geojson-multi.json b/packages/geoview-core/public/configs/navigator/25-geojson-multi.json index 26009c327e4..8c5d4fedada 100644 --- a/packages/geoview-core/public/configs/navigator/25-geojson-multi.json +++ b/packages/geoview-core/public/configs/navigator/25-geojson-multi.json @@ -13,7 +13,7 @@ { "geoviewLayerId": "geojsonLYR1", "geoviewLayerName": "GeoJSON Sample", - "metadataAccessPath": "./datasets/geojson/metadata1.json", + "metadataAccessPath": "./datasets/geojson/metadata1.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { @@ -25,7 +25,7 @@ { "geoviewLayerId": "geojsonLYR2", "geoviewLayerName": "MultiPolygon Sample", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { diff --git a/packages/geoview-core/public/configs/package-swiper3-config-swiper.json b/packages/geoview-core/public/configs/package-swiper3-config-swiper.json index e334144f610..29bd2f28448 100644 --- a/packages/geoview-core/public/configs/package-swiper3-config-swiper.json +++ b/packages/geoview-core/public/configs/package-swiper3-config-swiper.json @@ -2,7 +2,7 @@ "orientation": "vertical", "keyboardOffset": 10, "layers": [ - "swipe0/toner", + "swipe0/0", "swipe1/msi-94-or-more", "swipe4/polygons.json", "swipe5/ec-msc:CURRENT_CONDITIONS", diff --git a/packages/geoview-core/public/configs/package-swiper3-config.json b/packages/geoview-core/public/configs/package-swiper3-config.json index f102694c618..1d0e08179f1 100644 --- a/packages/geoview-core/public/configs/package-swiper3-config.json +++ b/packages/geoview-core/public/configs/package-swiper3-config.json @@ -38,7 +38,7 @@ { "geoviewLayerId": "swipe4", "geoviewLayerName": "GeoJSON Sample", - "metadataAccessPath": "./datasets/geojson/metadata.json", + "metadataAccessPath": "./datasets/geojson/metadata.meta", "geoviewLayerType": "GeoJSON", "listOfLayerEntryConfig": [ { @@ -75,16 +75,14 @@ { "geoviewLayerId": "swipe0", "geoviewLayerName": "statmen toner", + "metadataAccessPath": "https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/", "geoviewLayerType": "xyzTiles", "listOfLayerEntryConfig": [ { - "layerId": "toner", + "layerId": "0", "initialSettings": { "minZoom": 3, "maxZoom": 8 - }, - "source": { - "dataAccessPath": "https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}" } } ] diff --git a/packages/geoview-core/public/datasets/geojson/hydro-metadata.json b/packages/geoview-core/public/datasets/geojson/hydro-metadata.meta similarity index 98% rename from packages/geoview-core/public/datasets/geojson/hydro-metadata.json rename to packages/geoview-core/public/datasets/geojson/hydro-metadata.meta index 693742d88f4..04b899b54aa 100644 --- a/packages/geoview-core/public/datasets/geojson/hydro-metadata.json +++ b/packages/geoview-core/public/datasets/geojson/hydro-metadata.meta @@ -5,7 +5,6 @@ "layerId": "execution", "layerName": "Downstream Analysis", "source": { - "dataAccessPath": "https://app.chn-rhc.geogc.ca/api/processes/downstream-analysis/execution", "postSettings": { "header": { "accept": "application/json", diff --git a/packages/geoview-core/public/datasets/geojson/metadata-blank.json b/packages/geoview-core/public/datasets/geojson/metadata-blank.meta similarity index 100% rename from packages/geoview-core/public/datasets/geojson/metadata-blank.json rename to packages/geoview-core/public/datasets/geojson/metadata-blank.meta diff --git a/packages/geoview-core/public/datasets/geojson/metadata.meta b/packages/geoview-core/public/datasets/geojson/metadata.meta index 05bc17984da..c8ec2dba1ea 100644 --- a/packages/geoview-core/public/datasets/geojson/metadata.meta +++ b/packages/geoview-core/public/datasets/geojson/metadata.meta @@ -5,502 +5,271 @@ { "layerId": "polygons.json", "layerName": "Polygons", - "geometryType": "polygon", "source": { "featureInfo": { "queryable": true, "nameField": "Province", "outfields": [ - { - "name": "Province", - "alias": "Province", - "type": "string", - "domain": null - }, - { - "name": "creationDate", - "alias": "Creation Date", - "type": "date", - "domain": null - }, - { - "name": "myImages", - "alias": "myImages", - "type": "string", - "domain": null - } + { "name": "Province", "alias": "Province", "type": "string", "domain": null }, + { "name": "creationDate", "alias": "Creation Date", "type": "date", "domain": null }, + { "name": "myImages", "alias": "My Images", "type": "string", "domain": null } ] } }, "style": { - "type": "uniqueValue", - "fields": ["Province"], - "hasDefault": true, - "info": [ - { - "label": "Quebec", - "visible": true, - "values": ["Quebec"], - "settings": { - "type": "filledPolygon", - "color": "rgba(0,128,128,0.5)", - "paternSize": 10, - "paternWidth": 2, - "fillStyle": "diagonalCross", - "stroke": { - "color": "rgba(128,128,0,1)", - "lineStyle": "dot" - } - } - }, - { - "label": "Alberta", - "visible": false, - "values": ["Alberta"], - "settings": { - "type": "filledPolygon", - "color": "rgba(255,0,255,0.5)", - "paternSize": 10, - "paternWidth": 2, - "fillStyle": "diagonalCross", - "stroke": { - "color": "rgba(128,0,128,1)", - "lineStyle": "dot" - } + "Polygon": { + "styleId": "uniqueValueId", + "defaultLabel": "Other provinces", + "styleType": "uniqueValue", + "defaultSettings": { + "type": "filledPolygon", + "color": "rgba(0,0,255,0.5)", + "paternSize": 10, + "paternWidth": 2, + "fillStyle": "diagonalCross", + "stroke": { + "color": "rgba(128,0,0,1)", + "lineStyle": "dot" } }, - { - "label": "Other provinces", - "visible": true, - "values": ["Other provinces"], - "settings": { - "type": "filledPolygon", - "color": "rgba(0,0,255,0.5)", - "paternSize": 10, - "paternWidth": 2, - "fillStyle": "diagonalCross", - "stroke": { - "color": "rgba(128,0,0,1)", - "lineStyle": "dot" - } + "defaultVisible": true, + "fields": ["Province"], + "uniqueValueStyleInfo": [ + { + "label": "Quebec", + "settings": { + "type": "filledPolygon", + "color": "rgba(0,128,128,0.5)", + "paternSize": 10, + "paternWidth": 2, + "fillStyle": "diagonalCross", + "stroke": { + "color": "rgba(128,128,0,1)", + "lineStyle": "dot" + } + }, + "values": ["Quebec"], + "visible": true + }, + { + "label": "Alberta", + "settings": { + "type": "filledPolygon", + "color": "rgba(255,0,255,0.5)", + "paternSize": 10, + "paternWidth": 2, + "fillStyle": "diagonalCross", + "stroke": { + "color": "rgba(128,0,128,1)", + "lineStyle": "dot" + } + }, + "values": ["Alberta"], + "visible": false } - } - ] + ] + } } }, { "layerId": "multipolygons.geojson", "layerName": "MultiPolygons", - "geometryType": "polygon", "source": { "featureInfo": { "queryable": true, "nameField": "Province", "outfields": [ - { - "name": "Province", - "alias": "Province", - "type": "string", - "domain": null - }, - { - "name": "creationDate", - "alias": "Creation Date", - "type": "date", - "domain": null - } + { "name": "Province", "alias": "Province", "type": "string", "domain": null }, + { "name": "creationDate", "alias": "Creation Date", "type": "number", "domain": null } ] } }, "style": { - "type": "uniqueValue", - "fields": ["Province"], - "hasDefault": true, - "info": [ - { - "label": "Multiple provinces", - "visible": true, - "values": ["Other provinces"], - "settings": { - "type": "filledPolygon", - "color": "rgba(0,0,255,0.5)", - "paternSize": 10, - "paternWidth": 2, - "stroke": { - "color": "rgba(128,0,0,1)", - "lineStyle": "dot" - } + "MultiPolygon": { + "styleId": "uniqueValueId", + "defaultLabel": "Multiple provinces", + "styleType": "uniqueValue", + "defaultSettings": { + "type": "filledPolygon", + "color": "rgba(0,0,255,0.5)", + "paternSize": 10, + "paternWidth": 2, + "fillStyle": "diagonalCross", + "stroke": { + "color": "rgba(128,0,0,1)", + "lineStyle": "dot" } }, - { - "label": "Default", - "visible": true, - "values": ["Default"], - "settings": { - "type": "filledPolygon", - "color": "rgba(0,0,255,0.5)", - "paternSize": 10, - "paternWidth": 2, - "fillStyle": "diagonalCross", - "stroke": { - "color": "rgba(0,0,128,1)", - "lineStyle": "dot" - } - } - } - ] + "defaultVisible": true, + "fields": ["Province"] + } } }, { "layerId": "lines.json", - "layerName": "Roads", - "geometryType": "linestring", + "layerName": "Lines", "source": { "featureInfo": { - "queryable": true, + "queryable": false, "nameField": "Road_Number", "outfields": [ - { - "name": "Road_Number", - "alias": "Road Number", - "type": "number", - "domain": null - }, - { - "name": "Province", - "alias": "Province Number", - "type": "string", - "domain": null - }, - { - "name": "creationDate", - "alias": "Creation Date", - "type": "date", - "domain": null - } + { "name": "Road_Number", "alias": "Road Number", "type": "number", "domain": null }, + { "name": "Province", "alias": "Province", "type": "string", "domain": null }, + { "name": "creationDate", "alias": "Creation Date", "type": "date", "domain": null } ] } }, "style": { - "type": "simple", - "fields": ["LineString label"], - "info": [ - { - "settings": { - "type": "lineString", - "stroke": { - "lineStyle": "shortDash-dot-dot", - "color": "rgba(128,0,0,1)" - } + "LineString": { + "styleType": "simple", + "label": "LineString label", + "settings": { + "type": "lineString", + "stroke": { + "lineStyle": "shortDash-dot-dot" } } - ] + } } }, { - "layerId": "pointGroup1", - "layerName": "Point Group 1", - "bounds": [77, 47, 66, 55], - "isLayerGroup": true, - "listOfLayerEntryConfig": [ - { - "layerId": "icon_points.json", - "layerName": "Icons", - "geometryType": "point", - "source": { - "featureInfo": { - "queryable": true, - "nameField": "data", - "outfields": [ - { - "name": "data", - "alias": "data", - "type": "string", - "domain": null - }, - { - "name": "label", - "alias": "label", - "type": "string", - "domain": null - }, - { - "name": "creationDate", - "alias": "Creation Date", - "type": "date", - "domain": null - } - ] - } - }, - "style": { - "type": "simple", - "fields": ["Icon point label"], - "info": [ - { - "settings": { - "type": "iconSymbol", - "mimeType": "image/png", - "src": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAcNJREFUKJFjYSATsCBz/v//z/Tp8+fwO/cf273/+FmckZHxn6iQwBMVJbldXJyc27Bq/P//v8jVm3cmtUxf7rX+3nN+ZEVJ+srhd+8/3KikIFfMyMj4Fa7x////zBeu3JjuXDM55Ou//xjOmnfxrsS+8t7Uze1FLAwMDClwjU+fv0irmLzYH5smGHjw/TdTz7yVIe/ef9wiJMi/gYWBgYHhxp2HXgeev2dFVtjhb8Pw7dtPhqbdp+FiCy894E+4cz+IgYEBovHDp88qyJpmxngwxIf5wfnImt+9f68Ed+rff3/ZkTVycnDA2dxcHMhSDH/+/WeHa+Tm5HzJwMCgCJMsW7SZgYmZkeHHj18M5RsPo2jk4eJ+DdcoKSZyQoeX0+LK5+8MDAwMDC9+/WWImbkeI4D85MUZJMWED8A1qirKVjUlBvgETVqugqEa5mQmRoacKO9zWurKPXCNfHx8389evha5Njd8bfPCLXIXPn1F0eQgLshQGut7XUREOJCRkfEfXCMDAwODsa7WmQOnT+t150VMevn6ne33bz+kGBgZ/3FzcTyUEBXZxcb4p0RbTek3TD1KWnUwNf3IwMAQj8u5yAAAupehfivnXOEAAAAASUVORK5CYII=", - "opacity": 0.5 - } - } - ] + "layerId": "icon_points.json", + "layerName": "Icons", + "source": { + "featureInfo": { + "queryable": true, + "nameField": "data", + "outfields": [ + { "name": "data", "alias": "data", "type": "string", "domain": null }, + { "name": "label", "alias": "label", "type": "string", "domain": null }, + { "name": "creationDate", "alias": "Creation Date", "type": "number", "domain": null } + ] + } + }, + "style": { + "Point": { + "styleType": "simple", + "label": "Icon point label", + "settings": { + "type": "iconSymbol", + "mimeType": "image/png", + "src": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAcNJREFUKJFjYSATsCBz/v//z/Tp8+fwO/cf273/+FmckZHxn6iQwBMVJbldXJyc27Bq/P//v8jVm3cmtUxf7rX+3nN+ZEVJ+srhd+8/3KikIFfMyMj4Fa7x////zBeu3JjuXDM55Ou//xjOmnfxrsS+8t7Uze1FLAwMDClwjU+fv0irmLzYH5smGHjw/TdTz7yVIe/ef9wiJMi/gYWBgYHhxp2HXgeev2dFVtjhb8Pw7dtPhqbdp+FiCy894E+4cz+IgYEBovHDp88qyJpmxngwxIf5wfnImt+9f68Ed+rff3/ZkTVycnDA2dxcHMhSDH/+/WeHa+Tm5HzJwMCgCJMsW7SZgYmZkeHHj18M5RsPo2jk4eJ+DdcoKSZyQoeX0+LK5+8MDAwMDC9+/WWImbkeI4D85MUZJMWED8A1qirKVjUlBvgETVqugqEa5mQmRoacKO9zWurKPXCNfHx8389evha5Njd8bfPCLXIXPn1F0eQgLshQGut7XUREOJCRkfEfXCMDAwODsa7WmQOnT+t150VMevn6ne33bz+kGBgZ/3FzcTyUEBXZxcb4p0RbTek3TD1KWnUwNf3IwMAQj8u5yAAAupehfivnXOEAAAAASUVORK5CYII=", + "opacity": 0.5 } - }, - { - "layerId": "points.json", - "layerName": "Points", - "geometryType": "point", - "source": { - "featureInfo": { - "queryable": false, - "nameField": "Red", - "outfields": [ - { - "name": "Red", - "alias": "Red", - "type": "number", - "domain": null - }, - { - "name": "Green", - "alias": "Green", - "type": "number", - "domain": null - }, - { - "name": "Blue", - "alias": "Blue", - "type": "number", - "domain": null - }, - { - "name": "Yellow", - "alias": "Yellow", - "type": "number", - "domain": null - }, - { - "name": "Orange", - "alias": "Orange", - "type": "number", - "domain": null - }, - { - "name": "creationDate", - "alias": "Creation Date", - "type": "date", - "domain": null - } - ] - } - }, - "style": { - "type": "simple", - "fields": ["Point label"], - "info": [ - { - "settings": { - "type": "simpleSymbol", - "symbol": "star" - } - } - ] + } + } + }, + { + "layerId": "points.json", + "layerName": "Points", + "source": { + "featureInfo": { + "queryable": false, + "nameField": "Red", + "outfields": [ + { "name": "Red", "alias": "Red", "type": "number", "domain": null }, + { "name": "Green", "alias": "Green", "type": "number", "domain": null }, + { "name": "Blue", "alias": "Blue", "type": "number", "domain": null }, + { "name": "Yellow", "alias": "Yellow", "type": "number", "domain": null }, + { "name": "Orange", "alias": "Orange", "type": "number", "domain": null }, + { "name": "creationDate", "alias": "Creation Date", "type": "date", "domain": null } + ] + } + }, + "style": { + "Point": { + "styleType": "simple", + "label": "Point label", + "settings": { + "type": "simpleSymbol", + "symbol": "star" } - }, - { - "layerId": "pointGroup2", - "layerName": "Point Group 2", - "isLayerGroup": true, - "listOfLayerEntryConfig": [ - { - "layerId": "points_1.json", - "layerName": "Points 1", - "geometryType": "point", - "source": { - "featureInfo": { - "queryable": false, - "nameField": "Red", - "outfields": [ - { - "name": "Red", - "alias": "Red", - "type": "number", - "domain": null - }, - { - "name": "Green", - "alias": "Green", - "type": "number", - "domain": null - }, - { - "name": "Blue", - "alias": "Blue", - "type": "number", - "domain": null - }, - { - "name": "Yellow", - "alias": "Yellow", - "type": "number", - "domain": null - }, - { - "name": "Orange", - "alias": "Orange", - "type": "number", - "domain": null - }, - { - "name": "creationDate", - "alias": "Creation Date", - "type": "date", - "domain": null - } - ] - } - }, - "style": { - "type": "simple", - "fields": ["Point label"], - "info": [ - { - "settings": { - "type": "simpleSymbol", - "symbol": "star" - } - } - ] - } - }, - { - "layerId": "points_2.json", - "layerName": "Points 2", - "geometryType": "point", - "source": { - "featureInfo": { - "queryable": false, - "nameField": "Red", - "outfields": [ - { - "name": "Red", - "alias": "Red", - "type": "number", - "domain": null - }, - { - "name": "Green", - "alias": "Green", - "type": "number", - "domain": null - }, - { - "name": "Blue", - "alias": "Blue", - "type": "number", - "domain": null - }, - { - "name": "Yellow", - "alias": "Yellow", - "type": "number", - "domain": null - }, - { - "name": "Orange", - "alias": "Orange", - "type": "number", - "domain": null - }, - { - "name": "creationDate", - "alias": "Creation Date", - "type": "date", - "domain": null - } - ] - } - }, - "style": { - "type": "simple", - "fields": ["Point label"], - "info": [ - { - "settings": { - "type": "simpleSymbol", - "symbol": "star" - } - } - ] - } - }, - { - "layerId": "points_3.json", - "layerName": "Points 3", - "geometryType": "point", - "source": { - "featureInfo": { - "queryable": false, - "nameField": "Red", - "outfields": [ - { - "name": "Red", - "alias": "Red", - "type": "number", - "domain": null - }, - { - "name": "Green", - "alias": "Green", - "type": "number", - "domain": null - }, - { - "name": "Blue", - "alias": "Blue", - "type": "number", - "domain": null - }, - { - "name": "Yellow", - "alias": "Yellow", - "type": "number", - "domain": null - }, - { - "name": "Orange", - "alias": "Orange", - "type": "number", - "domain": null - }, - { - "name": "creationDate", - "alias": "Creation Date", - "type": "date", - "domain": null - } - ] - } - }, - "style": { - "type": "simple", - "fields": ["Point label"], - "info": [ - { - "settings": { - "type": "simpleSymbol", - "symbol": "star" - } - } - ] - } - } + } + } + }, + { + "layerId": "points_1.json", + "layerName": "Points_1", + "source": { + "featureInfo": { + "queryable": true, + "nameField": "Red", + "outfields": [ + { "name": "Red", "alias": "Red", "type": "number", "domain": null }, + { "name": "Green", "alias": "Green", "type": "number", "domain": null }, + { "name": "Blue", "alias": "Blue", "type": "number", "domain": null }, + { "name": "Yellow", "alias": "Yellow", "type": "number", "domain": null }, + { "name": "Orange", "alias": "Orange", "type": "number", "domain": null }, + { "name": "creationDate", "alias": "Creation Date", "type": "date", "domain": null } ] } - ] + }, + "style": { + "Point": { + "styleType": "simple", + "label": "Point label", + "settings": { + "type": "simpleSymbol", + "symbol": "star" + } + } + } + }, + { + "layerId": "points_2.json", + "layerName": "Points_1", + "source": { + "featureInfo": { + "queryable": true, + "nameField": "Red", + "outfields": [ + { "name": "Red", "alias": "Red", "type": "number", "domain": null }, + { "name": "Green", "alias": "Green", "type": "number", "domain": null }, + { "name": "Blue", "alias": "Blue", "type": "number", "domain": null }, + { "name": "Yellow", "alias": "Yellow", "type": "number", "domain": null }, + { "name": "Orange", "alias": "Orange", "type": "number", "domain": null }, + { "name": "creationDate", "alias": "Creation Date", "type": "date", "domain": null } + ] + } + }, + "style": { + "Point": { + "styleType": "simple", + "label": "Point label", + "settings": { + "type": "simpleSymbol", + "symbol": "star" + } + } + } + }, + { + "layerId": "points_3.json", + "layerName": "Points_1", + "source": { + "featureInfo": { + "queryable": false, + "nameField": "Red", + "outfields": [ + { "name": "Red", "alias": "Red", "type": "number", "domain": null }, + { "name": "Green", "alias": "Green", "type": "number", "domain": null }, + { "name": "Blue", "alias": "Blue", "type": "number", "domain": null }, + { "name": "Yellow", "alias": "Yellow", "type": "number", "domain": null }, + { "name": "Orange", "alias": "Orange", "type": "number", "domain": null }, + { "name": "creationDate", "alias": "Creation Date", "type": "date", "domain": null } + ] + } + }, + "style": { + "Point": { + "styleType": "simple", + "label": "Point label", + "settings": { + "type": "simpleSymbol", + "symbol": "star" + } + } + } } ] } - diff --git a/packages/geoview-core/public/datasets/geojson/metadata1.json b/packages/geoview-core/public/datasets/geojson/metadata1.meta similarity index 100% rename from packages/geoview-core/public/datasets/geojson/metadata1.json rename to packages/geoview-core/public/datasets/geojson/metadata1.meta diff --git a/packages/geoview-core/public/datasets/geojson/processes-metadata.json b/packages/geoview-core/public/datasets/geojson/processes-metadata.meta similarity index 100% rename from packages/geoview-core/public/datasets/geojson/processes-metadata.json rename to packages/geoview-core/public/datasets/geojson/processes-metadata.meta diff --git a/packages/geoview-core/public/templates/demos/demo-cgdi.html b/packages/geoview-core/public/templates/demos/demo-cgdi.html index d751e74e5a9..d1e9d101c95 100644 --- a/packages/geoview-core/public/templates/demos/demo-cgdi.html +++ b/packages/geoview-core/public/templates/demos/demo-cgdi.html @@ -1,4 +1,4 @@ - + @@ -63,6 +63,7 @@

Water Resources

{ 'geoviewLayerId': 'HMS', 'geoviewLayerName': 'Hydrometric Monitoring Stations', + 'metadataAccessPath': 'https://api.weather.gc.ca/collections/hydrometric-stations/', 'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { diff --git a/packages/geoview-core/public/templates/demos/demo-geojson-inject.html b/packages/geoview-core/public/templates/demos/demo-geojson-inject.html index 359046ebb23..9de3a12ae7e 100644 --- a/packages/geoview-core/public/templates/demos/demo-geojson-inject.html +++ b/packages/geoview-core/public/templates/demos/demo-geojson-inject.html @@ -1,4 +1,4 @@ - + @@ -60,7 +60,7 @@

Empty GeoJSON Layer

'geoviewLayerId': 'geojsonLYR1', 'geoviewLayerName': 'GeoJSON Sample', 'geoviewLayerType': 'GeoJSON', - 'metadataAccessPath': './datasets/geojson/metadata-blank.json', + 'metadataAccessPath': './datasets/geojson/metadata-blank.meta', 'listOfLayerEntryConfig': [ { 'layerId': 'blank.json' diff --git a/packages/geoview-core/public/templates/demos/demo-gsc.html b/packages/geoview-core/public/templates/demos/demo-gsc.html index 8ca50efd9b6..10879f533a9 100644 --- a/packages/geoview-core/public/templates/demos/demo-gsc.html +++ b/packages/geoview-core/public/templates/demos/demo-gsc.html @@ -1,4 +1,4 @@ - + @@ -64,14 +64,12 @@

GSC Demo

{ 'geoviewLayerId': 'geoJsonSample', 'geoviewLayerName': 'JSON Layer', + 'metadataAccessPath': './datasets/geojson/', 'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { 'layerId': '46E.JSON', - 'layerName': '46E', - 'source': { - 'dataAccessPath': './datasets/geojson/' - } + 'layerName': '46E' } ] } diff --git a/packages/geoview-core/public/templates/demos/demo-osdp-non-currated.html b/packages/geoview-core/public/templates/demos/demo-osdp-non-currated.html index 00e7b9a0f20..01f2ab11c2c 100644 --- a/packages/geoview-core/public/templates/demos/demo-osdp-non-currated.html +++ b/packages/geoview-core/public/templates/demos/demo-osdp-non-currated.html @@ -1,4 +1,4 @@ - + @@ -87,8 +87,8 @@

4. GeoJSON Rendering

'listOfGeoviewLayerConfig': [ { 'geoviewLayerId': 'geojsonlyr1', - 'geoviewLayerName': 'Multi Polygon Layer', - 'metadataAccessPath': './configs/OSDP/datasets/OSDP-metadata.json', + 'geoviewLayerName': 'BC-MPI-1-2521_fr', + 'metadataAccessPath': './configs/OSDP/datasets/OSDP-metadata.meta', 'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { @@ -98,7 +98,7 @@

4. GeoJSON Rendering

}, { 'geoviewLayerId': 'geojsonlyr2', - 'geoviewLayerName': 'Multi Polygon Layer', + 'geoviewLayerName': 'GEOSCAN-1-129009', 'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { @@ -112,28 +112,28 @@

4. GeoJSON Rendering

}, { 'geoviewLayerId': 'geojsonlyr3', - 'geoviewLayerName': 'Multi Polygon Layer', + 'geoviewLayerName': 'DFO-CURATED-1', 'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { - 'layerId': 'DFO-CURATED-1-03336A72-E5AD-4EEE-803D-E70B7FDE9FCB_en', + 'layerId': 'DDFO-CURATED-1-03336A72-E5AD-4EEE-803D-E70B7FDE9FCB_en', 'layerName': 'DFO-CURATED-1-03336A72-E5AD-4EEE-803D-E70B7FDE9FCB_en', 'source': { - 'dataAccessPath': './configs/OSDP/datasets/DFO-CURATED-1-03336A72-E5AD-4EEE-803D-E70B7FDE9FCB_en.json', + 'dataAccessPath': './configs/OSDP/datasets/DFO-CURATED-1-03336A72-E5AD-4EEE-803D-E70B7FDE9FCB_en.json' } } ] }, { 'geoviewLayerId': 'geojsonlyr4', - 'geoviewLayerName': 'Multi Polygon Layer', + 'geoviewLayerName': 'ECCC-CURATED-1', 'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { 'layerId': 'ECCC-CURATED-1-349208FB-DAA5-4A20-B08A-012F1ED32B3A_en', 'layerName': 'ECCC-CURATED-1-349208FB-DAA5-4A20-B08A-012F1ED32B3A_en', 'source': { - 'dataAccessPath': './configs/OSDP/datasets/ECCC-CURATED-1-349208FB-DAA5-4A20-B08A-012F1ED32B3A_en.json', + 'dataAccessPath': './configs/OSDP/datasets/ECCC-CURATED-1-349208FB-DAA5-4A20-B08A-012F1ED32B3A_en.json' } } ] @@ -141,14 +141,12 @@

4. GeoJSON Rendering

{ 'geoviewLayerId': 'geojsonlyr5', 'geoviewLayerName': 'Multi Polygon Layer', + 'metadataAccessPath': 'https://en-fr-test.r2.osdp.aws.nrcan-rncan.cloud/GeoJson/', 'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { - 'layerId': 'full-geojson', - 'layerName': 'full-geojson - Not CORS', - 'source': { - 'dataAccessPath': 'https://en-fr-test.r2.osdp.aws.nrcan-rncan.cloud/GeoJson/NRCAN-GEOSCAN-1-129009_en', - } + 'layerId': 'NRCAN-GEOSCAN-1-129009_en', + 'layerName': 'full-geojson - Not CORS' } ] } diff --git a/packages/geoview-core/public/templates/layers/csv.html b/packages/geoview-core/public/templates/layers/csv.html index d0c3eb8c5eb..5ce8303d979 100644 --- a/packages/geoview-core/public/templates/layers/csv.html +++ b/packages/geoview-core/public/templates/layers/csv.html @@ -75,7 +75,7 @@

1. CSV Layers

'geoviewLayerType': 'CSV', 'listOfLayerEntryConfig': [ { - 'layerId': 'NPRI-INRP_WaterEau_MediaGroupMilieu_2022', + 'layerId': 'NPRI-INRP_WaterEau_MediaGroupMilieu_2022.csv', 'layerName': 'NPRI Water Media Group 2022', 'source': { 'dataAccessPath': './datasets/csv-files/NPRI-INRP_WaterEau_MediaGroupMilieu_2022.csv', diff --git a/packages/geoview-core/public/templates/layers/esri-image.html b/packages/geoview-core/public/templates/layers/esri-image.html index 5dd6ac48667..9d689bb100b 100644 --- a/packages/geoview-core/public/templates/layers/esri-image.html +++ b/packages/geoview-core/public/templates/layers/esri-image.html @@ -101,10 +101,7 @@

1. ESRI Image Layers

'listOfLayerEntryConfig': [ { 'layerId': '0', - 'layerName': 'Cities', - 'source': { - 'dataAccessPath': 'https://sampleserver6.arcgisonline.com/ArcGIS/rest/services/USA/MapServer' - } + 'layerName': 'Cities' }, { 'layerId': '1', diff --git a/packages/geoview-core/public/templates/layers/geojson.html b/packages/geoview-core/public/templates/layers/geojson.html index 0a3df77b757..ca3f6b2b346 100644 --- a/packages/geoview-core/public/templates/layers/geojson.html +++ b/packages/geoview-core/public/templates/layers/geojson.html @@ -72,7 +72,7 @@

1. Many GeoJSON Layers

{ 'geoviewLayerId': 'geojsonLYR1', 'geoviewLayerName': 'GeoJSON Sample', - 'metadataAccessPath': './datasets/geojson/metadata.json', + 'metadataAccessPath': './datasets/geojson/metadata.meta', 'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { diff --git a/packages/geoview-core/public/templates/layers/image-static.html b/packages/geoview-core/public/templates/layers/image-static.html index 005d9c99162..2e336335227 100644 --- a/packages/geoview-core/public/templates/layers/image-static.html +++ b/packages/geoview-core/public/templates/layers/image-static.html @@ -73,13 +73,13 @@

1. Static Image Layers

{ 'geoviewLayerId': 'staticLYR1', 'geoviewLayerName': 'Static Image', + 'metadataAccessPath': 'https://datacube-prod-data-public.s3.ca-central-1.amazonaws.com/store/imagery/aerial/napl/napl-ring-of-fire/', 'geoviewLayerType': 'imageStatic', 'listOfLayerEntryConfig': [ { - 'layerId': 'thumbnail', + 'layerId': 'napl-ring-of-fire-1954-08-07-60k-thumbnail.png', 'layerName': 'Static Image', 'source': { - 'dataAccessPath': 'https://datacube-prod-data-public.s3.ca-central-1.amazonaws.com/store/imagery/aerial/napl/napl-ring-of-fire/napl-ring-of-fire-1954-08-07-60k-thumbnail.png', 'extent': [-87.77486341686723, 51.62285357468582, -84.57727128084842, diff --git a/packages/geoview-core/public/templates/layers/vector-tiles.html b/packages/geoview-core/public/templates/layers/vector-tiles.html index aac7623c281..ac642f1c14f 100644 --- a/packages/geoview-core/public/templates/layers/vector-tiles.html +++ b/packages/geoview-core/public/templates/layers/vector-tiles.html @@ -77,11 +77,8 @@

1. Vector Tiles Layers (declutter)

'metadataAccessPath': 'https://tiles.arcgis.com/tiles/HsjBaDykC1mjhXz9/arcgis/rest/services/CBMT_CBCT_3978_V_OSM/VectorTileServer/', 'listOfLayerEntryConfig': [ { - 'layerId': 'toner', - 'initialSettings': { 'minZoom': 3, 'maxZoom': 18 }, - 'source': { - 'dataAccessPath': 'https://tiles.arcgis.com/tiles/HsjBaDykC1mjhXz9/arcgis/rest/services/CBMT_CBCT_3978_V_OSM/VectorTileServer/tile/{z}/{y}/{x}.pbf' - } + 'layerId': 'CBMT_CBCT_3978_V_OSM', + 'initialSettings': { 'minZoom': 3, 'maxZoom': 18 } } ] } @@ -122,11 +119,8 @@

2. Vector Tiles Layers (no declutter)

'metadataAccessPath': 'https://tiles.arcgis.com/tiles/HsjBaDykC1mjhXz9/arcgis/rest/services/CBMT_CBCT_3978_V_OSM/VectorTileServer/', 'listOfLayerEntryConfig': [ { - 'layerId': 'toner', - 'initialSettings': { 'minZoom': 3, 'maxZoom': 18 }, - 'source': { - 'dataAccessPath': 'https://tiles.arcgis.com/tiles/HsjBaDykC1mjhXz9/arcgis/rest/services/CBMT_CBCT_3978_V_OSM/VectorTileServer/tile/{z}/{y}/{x}.pbf' - } + 'layerId': 'CBMT_CBCT_3978_V_OSM', + 'initialSettings': { 'minZoom': 3, 'maxZoom': 18 } } ] } diff --git a/packages/geoview-core/public/templates/layers/xyz.html b/packages/geoview-core/public/templates/layers/xyz.html index 54f6da9bdee..51dba031fb0 100644 --- a/packages/geoview-core/public/templates/layers/xyz.html +++ b/packages/geoview-core/public/templates/layers/xyz.html @@ -72,14 +72,12 @@

1. XYZ Tiles Layers

{ 'geoviewLayerId': 'xyzTilesLYR1', 'geoviewLayerName': 'World_Topo_Map', + 'metadataAccessPath': 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/', 'geoviewLayerType': 'xyzTiles', 'listOfLayerEntryConfig': [ { - 'layerId': 'toner', - 'initialSettings': { 'minZoom': 3, 'maxZoom': 8 }, - 'source': { - 'dataAccessPath': 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}' - } + 'layerId': '0', + 'initialSettings': { 'minZoom': 3, 'maxZoom': 8 } } ] } diff --git a/packages/geoview-core/public/templates/outliers/outlier-geometry.html b/packages/geoview-core/public/templates/outliers/outlier-geometry.html index 4d329cec748..802313e93e2 100644 --- a/packages/geoview-core/public/templates/outliers/outlier-geometry.html +++ b/packages/geoview-core/public/templates/outliers/outlier-geometry.html @@ -94,7 +94,7 @@

1. Outlier Geometry Layers

'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { - 'layerId': 'multipolygon', + 'layerId': 'multipolygons', 'layerName': 'Multi Polygon Layer', 'initialSettings': { 'states': { diff --git a/packages/geoview-core/public/templates/outliers/outlier-style.html b/packages/geoview-core/public/templates/outliers/outlier-style.html index 63650d530ad..1e75f72ac11 100644 --- a/packages/geoview-core/public/templates/outliers/outlier-style.html +++ b/packages/geoview-core/public/templates/outliers/outlier-style.html @@ -77,7 +77,7 @@

1. Style Issue Layers

'geoviewLayerType': 'GeoJSON', 'listOfLayerEntryConfig': [ { - 'layerId': 'pointPolygon', + 'layerId': 'projects.json', 'layerName': 'Point and Polygon Layer', 'initialSettings': { 'states': { diff --git a/packages/geoview-core/public/templates/package-swiper.html b/packages/geoview-core/public/templates/package-swiper.html index b451f5436c8..6e5da2afade 100644 --- a/packages/geoview-core/public/templates/package-swiper.html +++ b/packages/geoview-core/public/templates/package-swiper.html @@ -1,112 +1,108 @@ + + + + Package - Swiper (interactive) - Canadian Geospatial Platform Viewer + + + + + + + + - - - - - Package - Swiper (interactive) - Canadian Geospatial Platform Viewer - - - - - - - - - + +
+ + + + + + + + + + +
+

Package - Swiper (interactive)

+
+ Main
+ 1. Layers type Configuration
+
+ + + + + + +
This page is used to showcase loading "Swiper" package with different configuration.
+
- -
- - - - - - - - - - -
-

Package - Swiper (interactive)

-
- Main
- 1. Layers type Configuration
-
- - - - - - -
This page is used to showcase loading "Swiper" package with different configuration.
-
+
+

1. Layers type Configuration

+   +
(undefined)
+ Top +
+
+

Configuration with supported layers type (WMS, XYZ, WFS, GeoJSON, OGC Feature API and GeoCore)

+ + + + + +
-
-

1. Layers type Configuration

-   -
(undefined)
- Top -
-
-

Configuration with supported layers type (WMS, XYZ, WFS, GeoJSON, OGC Feature API and GeoCore)

- - - - - -
- - - + - + function removeSwiperAll() { + cgpv.api.maps['mapWM3'].plugins['swiper'].deActivateAll(); + } - \ No newline at end of file + // create snippets + window.addEventListener('load', () => { + createCodeSnippet(); + createConfigSnippet(); + }); + + + diff --git a/packages/geoview-core/public/templates/pygeoapi-processes.html b/packages/geoview-core/public/templates/pygeoapi-processes.html index 850b1e7843b..3168a3666d3 100644 --- a/packages/geoview-core/public/templates/pygeoapi-processes.html +++ b/packages/geoview-core/public/templates/pygeoapi-processes.html @@ -162,7 +162,7 @@

GeoJSON Layer

const addResult = cgpv.api.maps['LYR5'].layer.addGeoviewLayer( { geoviewLayerId: 'GeoMetGeoJsonProcess', - metadataAccessPath: './datasets/geojson/processes-metadata.json' , + metadataAccessPath: './datasets/geojson/processes-metadata.meta' , geoviewLayerName: 'GeoMet-OGC-API', geoviewLayerType: 'GeoJSON', 'listOfLayerEntryConfig': [ @@ -208,7 +208,7 @@

GeoJSON Layer

const addResult = cgpv.api.maps['LYR5'].layer.addGeoviewLayer( { geoviewLayerId: 'HydroGeoJsonProcess', - metadataAccessPath: './datasets/geojson/hydro-metadata.json', + metadataAccessPath: './datasets/geojson/hydro-metadata.meta', geoviewLayerName: 'Downstream Analysis', geoviewLayerType: 'GeoJSON', 'listOfLayerEntryConfig': [ diff --git a/packages/geoview-core/schema.json b/packages/geoview-core/schema.json index d6002080c1d..c839cce2494 100644 --- a/packages/geoview-core/schema.json +++ b/packages/geoview-core/schema.json @@ -600,7 +600,7 @@ "properties": { "dataAccessPath": { "type": "string", - "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + "description": "The path to reach the data to display. If not specified, metadatAccessPath will be assigned to it." }, "crossOrigin": { "type": "string", @@ -644,7 +644,7 @@ "properties": { "dataAccessPath": { "type": "string", - "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + "description": "The path to reach the data to display. If not specified, metadatAccessPath will be assigned to it." }, "crossOrigin": { "type": "string", @@ -674,7 +674,7 @@ "properties": { "dataAccessPath": { "type": "string", - "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + "description": "The path to reach the data to display. If not specified, metadatAccessPath will be assigned to it." }, "crossOrigin": { "type": "string", @@ -707,7 +707,7 @@ "properties": { "dataAccessPath": { "type": "string", - "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + "description": "The path to reach the data to display. If not specified, metadatAccessPath will be assigned to it." }, "crossOrigin": { "type": "string", @@ -869,7 +869,7 @@ "properties": { "dataAccessPath": { "type": "string", - "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + "description": "The path to reach the data to display. If not specified, metadatAccessPath will be assigned to it." }, "format": { "enum": ["GeoJSON", "EsriJSON", "KML", "WFS", "MVT", "featureAPI"], diff --git a/packages/geoview-core/src/api/config/types/classes/geoview-config/abstract-geoview-esri-layer-config.ts b/packages/geoview-core/src/api/config/types/classes/geoview-config/abstract-geoview-esri-layer-config.ts index 2d8682e0960..3bb43ba7faa 100644 --- a/packages/geoview-core/src/api/config/types/classes/geoview-config/abstract-geoview-esri-layer-config.ts +++ b/packages/geoview-core/src/api/config/types/classes/geoview-config/abstract-geoview-esri-layer-config.ts @@ -58,7 +58,10 @@ export abstract class AbstractGeoviewEsriLayerConfig extends AbstractGeoviewLaye */ override async fetchServiceMetadata(): Promise { try { - const metadataString = await getXMLHttpRequest(`${this.metadataAccessPath}?f=json`); + const metadataUrl = this.metadataAccessPath.endsWith('/') + ? `${this.metadataAccessPath}?f=json` + : `${this.metadataAccessPath}/?f=json`; + const metadataString = await getXMLHttpRequest(metadataUrl); if (metadataString && metadataString !== '{}') { let jsonMetadata: TypeJsonObject; try { diff --git a/packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/geojson-config.ts b/packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/geojson-config.ts index 51dab63aca9..b8a7043e48c 100644 --- a/packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/geojson-config.ts +++ b/packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/geojson-config.ts @@ -9,6 +9,7 @@ import { GeoviewLayerConfigError, GeoviewLayerInvalidParameterError } from '@con import { layerEntryIsGroupLayer } from '@config/types/type-guards'; import { mergeWith } from 'lodash'; +import { isJsonString } from '@/core/utils/utilities'; import { logger } from '@/core/utils/logger'; import { Cast } from '@/app'; @@ -128,11 +129,26 @@ export class GeoJsonLayerConfig extends AbstractGeoviewLayerConfig { * @override @async */ override async fetchServiceMetadata(): Promise { + let metadataUrl = this.metadataAccessPath; + if ( + !metadataUrl.toLowerCase().endsWith('.json') && + !metadataUrl.toLowerCase().endsWith('f=json') && + !metadataUrl.toLowerCase().endsWith('.geojson') && + !metadataUrl.toLowerCase().endsWith('.meta') + ) + metadataUrl = this.metadataAccessPath.endsWith('/') ? `${this.metadataAccessPath}?f=json` : `${this.metadataAccessPath}/?f=json`; try { - if (this.metadataAccessPath.toLowerCase().endsWith('.meta')) { - const fetchResponse = await fetch(this.metadataAccessPath); + if (metadataUrl.toLowerCase().endsWith('.meta') || metadataUrl.toLowerCase().endsWith('f=json')) { + const fetchResponse = await fetch(metadataUrl); if (fetchResponse.status === 404) throw new GeoviewLayerConfigError('The service metadata fetch returned a 404 status (Not Found)'); - const layerMetadata = (await fetchResponse.json()) as TypeJsonObject; + const layerMetadataString = await fetchResponse.text(); + let layerMetadata = null; + // Check if the response text is valid json. isJsonString will throw an error if it is not, and we want to catch it separately. + try { + if (isJsonString(layerMetadataString)) layerMetadata = toJsonObject(JSON.parse(layerMetadataString)); + } catch (err) { + logger.logError('Response from metadataAccessPath was not JSON', err); + } if (layerMetadata) this.setServiceMetadata(layerMetadata); else throw new GeoviewLayerConfigError('The metadata object returned is undefined'); @@ -142,6 +158,7 @@ export class GeoJsonLayerConfig extends AbstractGeoviewLayerConfig { await this.createLayerTree(); } catch (error) { + // GV Do we want to set layers in error if there is an error loading metadata? // In the event of a service metadata reading error, we report the geoview layer and all its sublayers as being in error. this.setErrorDetectedFlag(); this.setErrorDetectedFlagForAllLayers(this.listOfLayerEntryConfig); diff --git a/packages/geoview-core/src/api/config/types/config-validation-schema.json b/packages/geoview-core/src/api/config/types/config-validation-schema.json index 27c2ffda854..a4f092cb0da 100644 --- a/packages/geoview-core/src/api/config/types/config-validation-schema.json +++ b/packages/geoview-core/src/api/config/types/config-validation-schema.json @@ -1162,6 +1162,10 @@ "description": "Base type from which we derive the source properties for all the leaf nodes in the layer tree.", "type": "object", "properties": { + "dataAccessPath": { + "type": "string", + "description": "The path to reach the data to display. If not specified, metadatAccessPath will be assigned to it." + }, "projection": { "$ref": "#/definitions/TypeValidSourceProjectionCodes" }, diff --git a/packages/geoview-core/src/core/stores/store-interface-and-intial-values/layer-state.ts b/packages/geoview-core/src/core/stores/store-interface-and-intial-values/layer-state.ts index 89a7dbc53a3..98551ba7a1c 100644 --- a/packages/geoview-core/src/core/stores/store-interface-and-intial-values/layer-state.ts +++ b/packages/geoview-core/src/core/stores/store-interface-and-intial-values/layer-state.ts @@ -112,7 +112,6 @@ export function initializeLayerState(set: TypeSetStore, get: TypeGetStore): ILay // Check if EsriDynamic config if (layerConfig && layerEntryIsEsriDynamic(layerConfig)) { // Query for the specific object ids - // TODO: Make sure / is append at the end of metadataAccessPath/dataAccessPath when we read config // TODO: Put the server original projection in the config metadata (add a new optional param in source for esri) // TODO.CONT: When we get the projection we can get the projection in original server (will solve error trying to reproject https://maps-cartes.ec.gc.ca/arcgis/rest/services/CESI/MapServer/7 in 3857) // TODO.CONT: Then we need to modify the DownloadGeoJSON to use mapProjection for vector and original projection for dynamic. diff --git a/packages/geoview-core/src/core/utils/config/reader/uuid-config-reader.ts b/packages/geoview-core/src/core/utils/config/reader/uuid-config-reader.ts index 50c6fa105b6..43012ecbde3 100644 --- a/packages/geoview-core/src/core/utils/config/reader/uuid-config-reader.ts +++ b/packages/geoview-core/src/core/utils/config/reader/uuid-config-reader.ts @@ -149,7 +149,7 @@ export class UUIDmapConfigReader { layerId, source: { format: 'EsriJSON', - dataAccessPath: serviceUrl, + dataAccessPath: url as string, }, } as EsriFeatureLayerEntryConfig), ]; @@ -171,7 +171,6 @@ export class UUIDmapConfigReader { layerId: `${item.index}`, source: { format: 'EsriJSON', - dataAccessPath: url as string, }, } as EsriFeatureLayerEntryConfig); return esriFeatureLayerEntryConfig; @@ -193,8 +192,8 @@ export class UUIDmapConfigReader { entryType: CONST_LAYER_ENTRY_TYPES.RASTER_IMAGE, layerId: `${item.id}`, source: { - dataAccessPath: url, serverType: (serverType === undefined ? 'mapserver' : serverType) as TypeOfServer, + dataAccessPath: url as string, }, }; diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/esri-dynamic-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/esri-dynamic-layer-entry-config.ts index 8cebd5d98cf..caed6ee7e2e 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/esri-dynamic-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/esri-dynamic-layer-entry-config.ts @@ -25,8 +25,16 @@ export class EsriDynamicLayerEntryConfig extends AbstractBaseLayerEntryConfig { constructor(layerConfig: EsriDynamicLayerEntryConfig) { super(layerConfig); Object.assign(this, layerConfig); - // if layerConfig.source.dataAccessPath is undefined, we assign the metadataAccessPath of the GeoView layer to it. + + if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { + throw new Error( + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` + ); + } + + // If layerConfig.source.dataAccessPath is undefined, we assign the metadataAccessPath of the GeoView layer to it. if (!this.source) this.source = {}; if (!this.source.dataAccessPath) this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; + if (!this.source.dataAccessPath!.endsWith('/')) this.source.dataAccessPath += '/'; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/esri-image-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/esri-image-layer-entry-config.ts index 5d9711838a7..ea4cfad553a 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/esri-image-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/esri-image-layer-entry-config.ts @@ -26,11 +26,20 @@ export class EsriImageLayerEntryConfig extends AbstractBaseLayerEntryConfig { super(layerConfig); Object.assign(this, layerConfig); + if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { + throw new Error( + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` + ); + } + if (Number.isNaN(this.layerId)) { throw new Error(`The layer entry with layerId equal to ${this.layerPath} must be an integer string`); } - // if layerConfig.source.dataAccessPath is undefined, we assign the metadataAccessPath of the GeoView layer to it. + if (!this.source) this.source = {}; + + // If layerConfig.source.dataAccessPath is undefined, we assign the metadataAccessPath of the GeoView layer to it. if (!this.source.dataAccessPath) this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; + if (!this.source.dataAccessPath!.endsWith('/')) this.source.dataAccessPath += '/'; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/image-static-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/image-static-layer-entry-config.ts index 23536b69779..b894d1bb225 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/image-static-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/image-static-layer-entry-config.ts @@ -26,10 +26,20 @@ export class ImageStaticLayerEntryConfig extends AbstractBaseLayerEntryConfig { super(layerConfig); Object.assign(this, layerConfig); - if (!this.source.dataAccessPath) { + if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { throw new Error( - `source.dataAccessPath on layer entry ${this.layerPath} is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} of type ${this.geoviewLayerConfig.geoviewLayerType}` + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` ); } + + if (!this.source.dataAccessPath) this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; + if ( + !this.source.dataAccessPath!.toLowerCase().endsWith('.png') && + !this.source.dataAccessPath!.toLowerCase().endsWith('.jpg') && + !this.source.dataAccessPath!.toLowerCase().endsWith('.jpeg') + ) + this.source.dataAccessPath = this.source.dataAccessPath!.endsWith('/') + ? `${this.source.dataAccessPath}${this.layerId}` + : `${this.source.dataAccessPath}/${this.layerId}`; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/ogc-wms-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/ogc-wms-layer-entry-config.ts index b29c257b6e4..87796dd0ba7 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/ogc-wms-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/ogc-wms-layer-entry-config.ts @@ -28,17 +28,15 @@ export class OgcWmsLayerEntryConfig extends AbstractBaseLayerEntryConfig { // if layerConfig.source.dataAccessPath is undefined, the metadataAccessPath defined on the root is used. if (!this.source) this.source = {}; - if (!this.source.dataAccessPath) { - // When the dataAccessPath is undefined and the metadataAccessPath ends with ".xml", the dataAccessPath is temporarilly - // set to '' and will be filled in the fetchServiceMetadata method of the class WMS. So, we begin with the assumption - // that both en and fr end with ".xml". Be aware that in metadataAccessPath, one language can ends with ".xml" and the - // other not. - this.source.dataAccessPath = ''; - // When the dataAccessPath is undefined and the metadataAccessPath does not end with ".xml", the dataAccessPath is set - // to the same value of the corresponding metadataAccessPath. - if (this.geoviewLayerConfig.metadataAccessPath!.slice(-4).toLowerCase() !== '.xml') - this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; - } + + // When the dataAccessPath is undefined and the metadataAccessPath ends with ".xml", the dataAccessPath is temporarilly + // set to '' and will be filled in the fetchServiceMetadata method of the class WMS. + if (!this.source.dataAccessPath) this.source.dataAccessPath = ''; + // When the dataAccessPath is undefined and the metadataAccessPath does not end with ".xml", the dataAccessPath is set + // to the same value of the corresponding metadataAccessPath. + if (this.geoviewLayerConfig.metadataAccessPath!.slice(-4).toLowerCase() !== '.xml') + this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; + // Default value for layerConfig.source.serverType is 'mapserver'. if (!this.source.serverType) this.source.serverType = 'mapserver'; } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/vector-tiles-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/vector-tiles-layer-entry-config.ts index f5e0f4928e6..7361f898536 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/vector-tiles-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/vector-tiles-layer-entry-config.ts @@ -15,11 +15,17 @@ export class VectorTilesLayerEntryConfig extends TileLayerEntryConfig { super(layerConfig); Object.assign(this, layerConfig); - /** layerConfig.source.dataAccessPath is mandatory. */ - if (!layerConfig.source!.dataAccessPath) { + if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { throw new Error( - `source.dataAccessPath on layer entry ${this.layerPath} is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} of type ${this.geoviewLayerConfig.geoviewLayerType}` + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` ); } + + if (!this.source) this.source = {}; + if (!this.source.dataAccessPath) this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; + if (!this.source.dataAccessPath!.toLowerCase().endsWith('.pbf')) + this.source.dataAccessPath = this.source.dataAccessPath!.endsWith('/') + ? `${this.source.dataAccessPath}${this.layerId}` + : `${this.source.dataAccessPath}/${this.layerId}`; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/xyz-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/xyz-layer-entry-config.ts index 30e70fb5cfb..6ec86db84dd 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/xyz-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/raster-validation-classes/xyz-layer-entry-config.ts @@ -12,11 +12,17 @@ export class XYZTilesLayerEntryConfig extends TileLayerEntryConfig { super(layerConfig); Object.assign(this, layerConfig); - /** layerConfig.source.dataAccessPath is mandatory. */ - if (!this.source.dataAccessPath) { + if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { throw new Error( - `source.dataAccessPath on layer entry ${this.layerPath} is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} of type ${this.geoviewLayerConfig.geoviewLayerType}` + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` ); } + + if (!this.source) this.source = {}; + if (!this.source.dataAccessPath) this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; + if (!this.source.dataAccessPath!.endsWith('{z}/{y}/{x}')) + this.source.dataAccessPath = this.source.dataAccessPath!.endsWith('/') + ? `${this.source.dataAccessPath}tile/{z}/{y}/{x}` + : `${this.source.dataAccessPath}/tile/{z}/{y}/{x}`; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/csv-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/csv-layer-entry-config.ts index 028ac4df2bc..6f61ed35712 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/csv-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/csv-layer-entry-config.ts @@ -19,22 +19,25 @@ export class CsvLayerEntryConfig extends VectorLayerEntryConfig { if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { throw new Error( - `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} of type CSV when the metadataAccessPath is undefined.` + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` ); } + // Default value for this.entryType is vector if (this.entryType === undefined) this.entryType = CONST_LAYER_ENTRY_TYPES.VECTOR; - // if this.source.dataAccessPath is undefined, we assign the metadataAccessPath of the CSV layer to it - // and place the layerId at the end of it. + // Value for this.source.format can only be CSV. if (!this.source) this.source = { format: 'CSV', separator: ',' }; if (!this.source.format) this.source.format = 'CSV'; if (!this.source.separator) this.source.separator = ','; + + // If undefined, we assign the metadataAccessPath of the CSV layer to dataAccessPath and place the layerId at the end of it, if needed. if (!this.source.dataAccessPath) { let accessPath = this.geoviewLayerConfig.metadataAccessPath!; accessPath = accessPath!.split('/').length > 1 ? accessPath!.split('/').slice(0, -1).join('/') : './'; this.source.dataAccessPath = accessPath; } + if ( !(this.source.dataAccessPath!.startsWith('blob') && !this.source.dataAccessPath!.endsWith('/')) && !this.source.dataAccessPath!.toUpperCase().endsWith('.CSV') @@ -43,6 +46,9 @@ export class CsvLayerEntryConfig extends VectorLayerEntryConfig { ? `${this.source.dataAccessPath!}${this.layerId}` : `${this.source.dataAccessPath!}/${this.layerId}`; } + + if (!this.source.dataAccessPath!.toUpperCase().endsWith('.CSV')) this.source.dataAccessPath = `${this.source.dataAccessPath!}.csv`; + if (!this.source.dataProjection) this.source.dataProjection = Projection.PROJECTION_NAMES.LNGLAT; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/esri-feature-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/esri-feature-layer-entry-config.ts index 096bcf09e70..6f08d65575a 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/esri-feature-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/esri-feature-layer-entry-config.ts @@ -12,14 +12,22 @@ export class EsriFeatureLayerEntryConfig extends VectorLayerEntryConfig { super(layerConfig); Object.assign(this, layerConfig); + if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { + throw new Error( + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` + ); + } + if (Number.isNaN(this.layerId)) { throw new Error(`The layer entry with layerId equal to ${this.layerPath} must be an integer string`); } - // if this.source.dataAccessPath is undefined, we assign the metadataAccessPath of the GeoView layer to it - // and place the layerId at the end of it. + // Value for this.source.format can only be EsriJSON. if (!this.source) this.source = { format: 'EsriJSON' }; if (!this.source.format) this.source.format = 'EsriJSON'; + + // If undefined, we assign the metadataAccessPath of the GeoView layer to the dataAccessPath. if (!this.source.dataAccessPath) this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; + if (!this.source.dataAccessPath!.endsWith('/')) this.source.dataAccessPath += '/'; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/geojson-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/geojson-layer-entry-config.ts index 29883ab9a2d..03feb355939 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/geojson-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/geojson-layer-entry-config.ts @@ -16,22 +16,25 @@ export class GeoJSONLayerEntryConfig extends VectorLayerEntryConfig { if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { throw new Error( - `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} of type GeoJSON when the metadataAccessPath is undefined.` + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` ); } + // Default value for this.entryType is vector if (this.entryType === undefined) this.entryType = CONST_LAYER_ENTRY_TYPES.VECTOR; // Value for this.source.format can only be GeoJSON. if (!this.source) this.source = { format: 'GeoJSON' }; if (!this.source.format) this.source.format = 'GeoJSON'; - // if this.source.dataAccessPath is undefined, we assign the metadataAccessPath of the GeoView layer to it - // and place the layerId at the end of it. + + // If undefined, we assign the metadataAccessPath of the GeoView layer to dataAccessPath and place the layerId at the end of it. if (!this.source.dataAccessPath) { let accessPath = this.geoviewLayerConfig.metadataAccessPath!; // Remove the metadata file name and keep only the path to the directory where the metadata resides - accessPath = accessPath!.split('/').length > 1 ? accessPath!.split('/').slice(0, -1).join('/') : './'; + if (accessPath.toLowerCase().endsWith('.meta')) + accessPath = accessPath!.split('/').length > 1 ? accessPath!.split('/').slice(0, -1).join('/') : './'; this.source.dataAccessPath = accessPath; } + if ( !(this.source.dataAccessPath!.startsWith('blob') && !this.source.dataAccessPath!.endsWith('/')) && !this.source.dataAccessPath!.toUpperCase().endsWith('.JSON') && @@ -42,6 +45,7 @@ export class GeoJSONLayerEntryConfig extends VectorLayerEntryConfig { ? `${this.source.dataAccessPath!}${this.layerId}` : `${this.source.dataAccessPath!}/${this.layerId}`; } + if (!this.source.dataProjection) this.source.dataProjection = Projection.PROJECTION_NAMES.LNGLAT; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/geopackage-layer-config-entry.ts b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/geopackage-layer-config-entry.ts index d87a4277d77..87b17242ff8 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/geopackage-layer-config-entry.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/geopackage-layer-config-entry.ts @@ -14,17 +14,26 @@ export class GeoPackageLayerEntryConfig extends VectorLayerEntryConfig { super(layerConfig); Object.assign(this, layerConfig); + if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { + throw new Error( + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` + ); + } + // Default value for this.entryType is vector if (this.entryType === undefined) this.entryType = CONST_LAYER_ENTRY_TYPES.VECTOR; - // if this.source.dataAccessPath is undefined, we assign the metadataAccessPath of the GeoView layer to it. + // Value for this.source.format can only be GeoPackage. if (!this.source) this.source = { format: 'GeoPackage' }; if (!this.source.format) this.source.format = 'GeoPackage'; + + // If undefined, we assign the metadataAccessPath of the GeoView layer to dataAccessPath. if (!this.source.dataAccessPath) { let accessPath = this.geoviewLayerConfig.metadataAccessPath!; accessPath = accessPath!.split('/').length > 1 ? accessPath!.split('/').slice(0, -1).join('/') : './'; this.source.dataAccessPath = accessPath; } + if ( !(this.source.dataAccessPath!.startsWith('blob') && !this.source.dataAccessPath!.endsWith('/')) && !this.source.dataAccessPath!.toLowerCase().endsWith('.gpkg') @@ -33,6 +42,7 @@ export class GeoPackageLayerEntryConfig extends VectorLayerEntryConfig { ? `${this.source.dataAccessPath!}${this.layerId}` : `${this.source.dataAccessPath!}/${this.layerId}`; } + if (!this?.source?.dataProjection) this.source.dataProjection = Projection.PROJECTION_NAMES.LNGLAT; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/ogc-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/ogc-layer-entry-config.ts index 2ccf141aea6..0b3865e600e 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/ogc-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/ogc-layer-entry-config.ts @@ -13,11 +13,19 @@ export class OgcFeatureLayerEntryConfig extends VectorLayerEntryConfig { super(layerConfig); Object.assign(this, layerConfig); - // if this.source.dataAccessPath is undefined, we assign the metadataAccessPath of the GeoView layer to it. + if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { + throw new Error( + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` + ); + } + // Value for this.source.format can only be featureAPI. if (!this.source) this.source = { format: 'featureAPI' }; if (!this?.source?.format) this.source.format = 'featureAPI'; + + // We assign the metadataAccessPath of the GeoView layer to dataAccessPath. if (!this.source.dataAccessPath) this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; + if (!this.source.dataProjection) this.source.dataProjection = Projection.PROJECTION_NAMES.LNGLAT; } } diff --git a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/wfs-layer-entry-config.ts b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/wfs-layer-entry-config.ts index 897d8578bdb..1d830a4bc0d 100644 --- a/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/wfs-layer-entry-config.ts +++ b/packages/geoview-core/src/core/utils/config/validation-classes/vector-validation-classes/wfs-layer-entry-config.ts @@ -13,11 +13,19 @@ export class WfsLayerEntryConfig extends VectorLayerEntryConfig { super(layerConfig); Object.assign(this, layerConfig); - // if this.source.dataAccessPath is undefined, we assign the metadataAccessPath of the GeoView layer to it. + if (!this.geoviewLayerConfig.metadataAccessPath && !this.source?.dataAccessPath) { + throw new Error( + `dataAccessPath is mandatory for GeoView layer ${this.geoviewLayerConfig.geoviewLayerId} when the metadataAccessPath is undefined.` + ); + } + // Value for this.source.format can only be WFS. if (!this.source) this.source = { format: 'WFS' }; if (!this.source.format) this.source.format = 'WFS'; + + // We assign the metadataAccessPath of the GeoView layer to dataAccessPath. if (!this.source.dataAccessPath) this.source.dataAccessPath = this.geoviewLayerConfig.metadataAccessPath; + if (!this.source.dataProjection) this.source.dataProjection = Projection.PROJECTION_NAMES.LNGLAT; } } diff --git a/packages/geoview-core/src/geo/layer/geoview-layers/abstract-geoview-layers.ts b/packages/geoview-core/src/geo/layer/geoview-layers/abstract-geoview-layers.ts index 8eab405be73..9383478299c 100644 --- a/packages/geoview-core/src/geo/layer/geoview-layers/abstract-geoview-layers.ts +++ b/packages/geoview-core/src/geo/layer/geoview-layers/abstract-geoview-layers.ts @@ -13,7 +13,7 @@ import { shared as iconImageCache } from 'ol/style/IconImageCache'; import { TypeOutfieldsType } from '@config/types/map-schema-types'; -import { generateId, getXMLHttpRequest, whenThisThen } from '@/core/utils/utilities'; +import { generateId, getXMLHttpRequest, isJsonString, whenThisThen } from '@/core/utils/utilities'; import { TypeJsonObject, toJsonObject } from '@/core/types/global-types'; import { TimeDimension, TypeDateFragments, DateMgt } from '@/core/utils/date-mgt'; import { logger } from '@/core/utils/logger'; @@ -488,7 +488,7 @@ export abstract class AbstractGeoViewLayer { if (this.metadataAccessPath) { try { const metadataString = await getXMLHttpRequest(`${this.metadataAccessPath}?f=json`); - if (metadataString === '{}') this.metadata = null; + if (metadataString === '{}' || !isJsonString(metadataString)) this.metadata = null; else { this.metadata = toJsonObject(JSON.parse(metadataString)); const copyrightText = this.metadata.copyrightText as string; diff --git a/packages/geoview-core/src/geo/layer/geoview-layers/raster/esri-dynamic.ts b/packages/geoview-core/src/geo/layer/geoview-layers/raster/esri-dynamic.ts index 1dc158bd4c5..2787aa0f029 100644 --- a/packages/geoview-core/src/geo/layer/geoview-layers/raster/esri-dynamic.ts +++ b/packages/geoview-core/src/geo/layer/geoview-layers/raster/esri-dynamic.ts @@ -507,8 +507,6 @@ export class EsriDynamic extends AbstractGeoViewRaster { let identifyUrl = layerConfig.source?.dataAccessPath; if (!identifyUrl) return []; - identifyUrl = identifyUrl.endsWith('/') ? identifyUrl : `${identifyUrl}/`; - // GV: We cannot directly use the view extent and reproject. If we do so some layers (issue #2413) identify will return empty resultset // GV-CONT: This happen with max extent as initial extent and 3978 projection. If we use only the LL and UP corners for the repojection it works const mapViewer = this.getMapViewer(); diff --git a/packages/geoview-core/src/geo/layer/geoview-layers/raster/xyz-tiles.ts b/packages/geoview-core/src/geo/layer/geoview-layers/raster/xyz-tiles.ts index 34577272554..c7776b9b9e3 100644 --- a/packages/geoview-core/src/geo/layer/geoview-layers/raster/xyz-tiles.ts +++ b/packages/geoview-core/src/geo/layer/geoview-layers/raster/xyz-tiles.ts @@ -143,7 +143,8 @@ export class XYZTiles extends AbstractGeoViewRaster { // When no metadata are provided, all layers are considered valid. if (!this.metadata) return; - // Note that XYZ metadata as we defined it does not contains metadata layer group. If you need geogson layer group, + // TODO: Update to properly use metadata from map server + // Note that XYZ metadata as we defined it does not contain metadata layer group. If you need geojson layer group, // you can define them in the configuration section. if (Array.isArray(this.metadata?.listOfLayerEntryConfig)) { const metadataLayerList = Cast(this.metadata?.listOfLayerEntryConfig); diff --git a/packages/geoview-core/src/geo/layer/geoview-layers/vector/abstract-geoview-vector.ts b/packages/geoview-core/src/geo/layer/geoview-layers/vector/abstract-geoview-vector.ts index 99d2ed42898..86d5906cf95 100644 --- a/packages/geoview-core/src/geo/layer/geoview-layers/vector/abstract-geoview-vector.ts +++ b/packages/geoview-core/src/geo/layer/geoview-layers/vector/abstract-geoview-vector.ts @@ -100,7 +100,9 @@ export abstract class AbstractGeoViewVector extends AbstractGeoViewLayer { */ // GV Layers Refactoring - Obsolete (in layers) protected override getFieldType(fieldName: string, layerConfig: AbstractBaseLayerEntryConfig): TypeOutfieldsType { - const fieldDefinitions = this.getLayerMetadata(layerConfig.layerPath).source.featureInfo as unknown as TypeFeatureInfoLayerConfig; + const fieldDefinitions = + (this.getLayerMetadata(layerConfig.layerPath)?.source.featureInfo as unknown as TypeFeatureInfoLayerConfig) || + layerConfig.source?.featureInfo; const outFieldEntry = fieldDefinitions.outfields?.find((fieldDefinition) => fieldDefinition.name === fieldName); return outFieldEntry?.type || 'string'; } diff --git a/packages/geoview-core/src/geo/layer/geoview-layers/vector/esri-feature.ts b/packages/geoview-core/src/geo/layer/geoview-layers/vector/esri-feature.ts index a84d51b7a66..03f8fd3362b 100644 --- a/packages/geoview-core/src/geo/layer/geoview-layers/vector/esri-feature.ts +++ b/packages/geoview-core/src/geo/layer/geoview-layers/vector/esri-feature.ts @@ -234,7 +234,7 @@ export class EsriFeature extends AbstractGeoViewVector { // eslint-disable-next-line no-param-reassign sourceOptions.url = layerConfig.source!.dataAccessPath!; // eslint-disable-next-line no-param-reassign - sourceOptions.url = `${sourceOptions.url}/${layerConfig.layerId}/query?f=json&where=1%3D1&returnCountOnly=true`; + sourceOptions.url = `${sourceOptions.url}${layerConfig.layerId}/query?f=json&where=1%3D1&returnCountOnly=true`; // eslint-disable-next-line no-param-reassign sourceOptions.format = new EsriJSON(); diff --git a/packages/geoview-core/src/geo/map/map-schema-types.ts b/packages/geoview-core/src/geo/map/map-schema-types.ts index af9f8159d15..7145d81812f 100644 --- a/packages/geoview-core/src/geo/map/map-schema-types.ts +++ b/packages/geoview-core/src/geo/map/map-schema-types.ts @@ -73,11 +73,10 @@ export type TypeFeatureInfoLayerConfig = { /** Allow querying. Default = false. */ queryable: boolean; /** - * The display field (English/French) of the layer. If it is not present the viewer will make an attempt to find the first valid - * field. + * The display field of the layer. If it is not present the viewer will make an attempt to find the first valid field. */ nameField?: string; - /** A comma separated list of attribute names (English/French) that should be requested on query (all by default). */ + /** Array of the outfield objects. */ outfields?: TypeOutfields[]; }; @@ -286,8 +285,7 @@ export type TypeSourceImageInitialConfig = export type TypeBaseSourceImageInitialConfig = { /** - * The service endpoint of the layer (English/French). If not specified, the metadataAccessPath of the GeoView parent - * layer is used + * The service endpoint of the layer. Added during creation of specific layer entry config. */ dataAccessPath?: string; /**