diff --git a/docker_push.sh b/docker_push.sh index df4b6c8..70bf567 100755 --- a/docker_push.sh +++ b/docker_push.sh @@ -3,7 +3,7 @@ set -euo pipefail readonly SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" -readonly REGISTRY_IMAGE="registry.assecutor.org/ait" +readonly REGISTRY_IMAGE="registry.assecutor.org/wfe" readonly BACKEND_DIR="${SCRIPT_DIR}" usage() { diff --git a/mvnw.cmd b/mvnw.cmd index 92450f9..5761d94 100644 --- a/mvnw.cmd +++ b/mvnw.cmd @@ -1,189 +1,189 @@ -<# : batch portion -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.3.4 -@REM -@REM Optional ENV vars -@REM MVNW_REPOURL - repo url base for downloading maven distribution -@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven -@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output -@REM ---------------------------------------------------------------------------- - -@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) -@SET __MVNW_CMD__= -@SET __MVNW_ERROR__= -@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% -@SET PSModulePath= -@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( - IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) -) -@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% -@SET __MVNW_PSMODULEP_SAVE= -@SET __MVNW_ARG0_NAME__= -@SET MVNW_USERNAME= -@SET MVNW_PASSWORD= -@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) -@echo Cannot start maven from wrapper >&2 && exit /b 1 -@GOTO :EOF -: end batch / begin powershell #> - -$ErrorActionPreference = "Stop" -if ($env:MVNW_VERBOSE -eq "true") { - $VerbosePreference = "Continue" -} - -# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties -$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl -if (!$distributionUrl) { - Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" -} - -switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { - "maven-mvnd-*" { - $USE_MVND = $true - $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" - $MVN_CMD = "mvnd.cmd" - break - } - default { - $USE_MVND = $false - $MVN_CMD = $script -replace '^mvnw','mvn' - break - } -} - -# apply MVNW_REPOURL and calculate MAVEN_HOME -# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ -if ($env:MVNW_REPOURL) { - $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } - $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" -} -$distributionUrlName = $distributionUrl -replace '^.*/','' -$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' - -$MAVEN_M2_PATH = "$HOME/.m2" -if ($env:MAVEN_USER_HOME) { - $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" -} - -if (-not (Test-Path -Path $MAVEN_M2_PATH)) { - New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null -} - -$MAVEN_WRAPPER_DISTS = $null -if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { - $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" -} else { - $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" -} - -$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" -$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' -$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" - -if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { - Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" - Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" - exit $? -} - -if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { - Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" -} - -# prepare tmp dir -$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile -$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" -$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null -trap { - if ($TMP_DOWNLOAD_DIR.Exists) { - try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } - catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } - } -} - -New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null - -# Download and Install Apache Maven -Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." -Write-Verbose "Downloading from: $distributionUrl" -Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" - -$webclient = New-Object System.Net.WebClient -if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { - $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) -} -[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null - -# If specified, validate the SHA-256 sum of the Maven distribution zip file -$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum -if ($distributionSha256Sum) { - if ($USE_MVND) { - Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." - } - Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash - if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { - Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." - } -} - -# unzip and move -Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null - -# Find the actual extracted directory name (handles snapshots where filename != directory name) -$actualDistributionDir = "" - -# First try the expected directory name (for regular distributions) -$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" -$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" -if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { - $actualDistributionDir = $distributionUrlNameMain -} - -# If not found, search for any directory with the Maven executable (for snapshots) -if (!$actualDistributionDir) { - Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { - $testPath = Join-Path $_.FullName "bin/$MVN_CMD" - if (Test-Path -Path $testPath -PathType Leaf) { - $actualDistributionDir = $_.Name - } - } -} - -if (!$actualDistributionDir) { - Write-Error "Could not find Maven distribution directory in extracted archive" -} - -Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" -Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null -try { - Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null -} catch { - if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { - Write-Error "fail to move MAVEN_HOME" - } -} finally { - try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } - catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } -} - -Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" +<# : batch portion +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.4 +@REM +@REM Optional ENV vars +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output +@REM ---------------------------------------------------------------------------- + +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) +) +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' + +$MAVEN_M2_PATH = "$HOME/.m2" +if ($env:MAVEN_USER_HOME) { + $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" +} + +if (-not (Test-Path -Path $MAVEN_M2_PATH)) { + New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null +} + +$MAVEN_WRAPPER_DISTS = $null +if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { + $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" +} else { + $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" +} + +$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +$actualDistributionDir = "" + +# First try the expected directory name (for regular distributions) +$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" +$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" +if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { + $actualDistributionDir = $distributionUrlNameMain +} + +# If not found, search for any directory with the Maven executable (for snapshots) +if (!$actualDistributionDir) { + Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { + $testPath = Join-Path $_.FullName "bin/$MVN_CMD" + if (Test-Path -Path $testPath -PathType Leaf) { + $actualDistributionDir = $_.Name + } + } +} + +if (!$actualDistributionDir) { + Write-Error "Could not find Maven distribution directory in extracted archive" +} + +Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/package-lock.json b/package-lock.json index 4ff3aed..c94c0f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2155,53 +2155,6 @@ "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "node_modules/@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mapbox/mapbox-gl-style-spec": { - "version": "13.28.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-style-spec/-/mapbox-gl-style-spec-13.28.0.tgz", - "integrity": "sha512-B8xM7Fp1nh5kejfIl4SWeY0gtIeewbuRencqO3cJDrCHZpaPg7uY+V8abuR+esMeuOjRl5cLhVTP40v+1ywxbg==", - "optional": true, - "peer": true, - "dependencies": { - "@mapbox/jsonlint-lines-primitives": "~2.0.2", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/unitbezier": "^0.0.0", - "csscolorparser": "~1.0.2", - "json-stringify-pretty-compact": "^2.0.0", - "minimist": "^1.2.6", - "rw": "^1.3.3", - "sort-object": "^0.3.2" - }, - "bin": { - "gl-style-composite": "bin/gl-style-composite.js", - "gl-style-format": "bin/gl-style-format.js", - "gl-style-migrate": "bin/gl-style-migrate.js", - "gl-style-validate": "bin/gl-style-validate.js" - } - }, - "node_modules/@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", - "optional": true, - "peer": true - }, - "node_modules/@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==", - "optional": true, - "peer": true - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2242,13 +2195,6 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "node_modules/@petamoriken/float16": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.1.tgz", - "integrity": "sha512-j+ejhYwY6PeB+v1kn7lZFACUIG97u90WxMuGosILFsl9d4Ovi0sjk0GlPfoEcx+FzvXZDAfioD+NGnnPamXgMA==", - "optional": true, - "peer": true - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2813,18 +2759,6 @@ "lit": "^3.0.0" } }, - "node_modules/@vaadin/board": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.6.4.tgz", - "integrity": "sha512-rtNMxNsqhK7sgpkV+4srZiwi0kp5wjyTkxImyDv2sfCcEkefFGg/1rB3omJunlw/KczDc+VHkZ2yAwQpxiWzcw==", - "optional": true, - "peer": true, - "dependencies": { - "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.6.4", - "@vaadin/component-base": "~24.6.4" - } - }, "node_modules/@vaadin/bundles": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.6.4.tgz", @@ -3157,35 +3091,6 @@ "lit": "^3.0.0" } }, - "node_modules/@vaadin/card": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/card/-/card-24.6.4.tgz", - "integrity": "sha512-kPkr2u43o7KiENjkfIcYIFHny1U/hEujQxMROVI9ViE87pe8WADjZMdxNdCPzuhtlo8tlro71TpuRRliTzP9Og==", - "optional": true, - "peer": true, - "dependencies": { - "@vaadin/component-base": "~24.6.4", - "@vaadin/vaadin-lumo-styles": "~24.6.4", - "@vaadin/vaadin-material-styles": "~24.6.4", - "@vaadin/vaadin-themable-mixin": "~24.6.4", - "lit": "^3.0.0" - } - }, - "node_modules/@vaadin/charts": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.6.4.tgz", - "integrity": "sha512-A/SsEc5qcKzhyP02O5SdAxi0TJv/abKh7f+7mGSloNSzm+8J/5DOzNHzjgTRq0xsOdPVe1oPk1lQalNmqTKSug==", - "optional": true, - "peer": true, - "dependencies": { - "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.6.4", - "@vaadin/vaadin-lumo-styles": "~24.6.4", - "@vaadin/vaadin-material-styles": "~24.6.4", - "@vaadin/vaadin-themable-mixin": "~24.6.4", - "highcharts": "9.2.2" - } - }, "node_modules/@vaadin/checkbox": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.6.4.tgz", @@ -3298,43 +3203,6 @@ "lit": "^3.0.0" } }, - "node_modules/@vaadin/cookie-consent": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.6.4.tgz", - "integrity": "sha512-+WgIodBwwtDujyB312sSp8Ostw9nwvU+sOGuhMbGrvQqSn1gYggT8ffU6ijQqLigzFCXHQ+BFFuM3krYO4HbpA==", - "optional": true, - "peer": true, - "dependencies": { - "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.6.4", - "@vaadin/vaadin-lumo-styles": "~24.6.4", - "@vaadin/vaadin-material-styles": "~24.6.4", - "cookieconsent": "^3.0.6" - } - }, - "node_modules/@vaadin/crud": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.6.4.tgz", - "integrity": "sha512-rEe88GLjK5MKa9Ow9Fp1Y1eW6zLxa+XzuBSSbYVEGP5yDOlsHOVsUW+7B2TwjiX0FrzLafrPXUcTDPTu9gD1Jw==", - "optional": true, - "peer": true, - "dependencies": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.6.4", - "@vaadin/button": "~24.6.4", - "@vaadin/component-base": "~24.6.4", - "@vaadin/confirm-dialog": "~24.6.4", - "@vaadin/dialog": "~24.6.4", - "@vaadin/form-layout": "~24.6.4", - "@vaadin/grid": "~24.6.4", - "@vaadin/overlay": "~24.6.4", - "@vaadin/text-field": "~24.6.4", - "@vaadin/vaadin-lumo-styles": "~24.6.4", - "@vaadin/vaadin-material-styles": "~24.6.4", - "@vaadin/vaadin-themable-mixin": "~24.6.4" - } - }, "node_modules/@vaadin/custom-field": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.6.4.tgz", @@ -3351,22 +3219,6 @@ "lit": "^3.0.0" } }, - "node_modules/@vaadin/dashboard": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/dashboard/-/dashboard-24.6.4.tgz", - "integrity": "sha512-MFH64fkj1zf0ramUT+iiPQ9d6czLyEE4lrH0o2MZh7HShJtNw2byl5INBb6JE1iWnE5gCAT/GouQBpnZ+PBPfw==", - "optional": true, - "peer": true, - "dependencies": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/button": "~24.6.4", - "@vaadin/component-base": "~24.6.4", - "@vaadin/vaadin-lumo-styles": "~24.6.4", - "@vaadin/vaadin-material-styles": "~24.6.4", - "@vaadin/vaadin-themable-mixin": "~24.6.4", - "lit": "^3.0.0" - } - }, "node_modules/@vaadin/date-picker": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.6.4.tgz", @@ -3509,27 +3361,6 @@ "lit": "^3.0.0" } }, - "node_modules/@vaadin/grid-pro": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.6.4.tgz", - "integrity": "sha512-hIojjyhNWmhYyK2xqIo8dDOBTn/u7g9H3cnT3fHzG5Md8TuZhbk0oKL//lXcsDm2bakUQMosARuyJWLUXRm5Lw==", - "optional": true, - "peer": true, - "dependencies": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "^3.0.0", - "@vaadin/checkbox": "~24.6.4", - "@vaadin/component-base": "~24.6.4", - "@vaadin/grid": "~24.6.4", - "@vaadin/lit-renderer": "~24.6.4", - "@vaadin/select": "~24.6.4", - "@vaadin/text-field": "~24.6.4", - "@vaadin/vaadin-lumo-styles": "~24.6.4", - "@vaadin/vaadin-material-styles": "~24.6.4", - "@vaadin/vaadin-themable-mixin": "~24.6.4", - "lit": "^3.0.0" - } - }, "node_modules/@vaadin/horizontal-layout": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.6.4.tgz", @@ -3647,22 +3478,6 @@ "lit": "^3.0.0" } }, - "node_modules/@vaadin/map": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.6.4.tgz", - "integrity": "sha512-00awlWCZpvixh6AyF4IUu2yjDzB32vUTQz6xbWRuoG09yBhZ0SO5Y4GG8lnMTlCfwsr3ELLMnLWel5c2me0P/w==", - "optional": true, - "peer": true, - "dependencies": { - "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.6.4", - "@vaadin/component-base": "~24.6.4", - "@vaadin/vaadin-lumo-styles": "~24.6.4", - "@vaadin/vaadin-material-styles": "~24.6.4", - "@vaadin/vaadin-themable-mixin": "~24.6.4", - "ol": "6.13.0" - } - }, "node_modules/@vaadin/menu-bar": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.6.4.tgz", @@ -3858,27 +3673,6 @@ "lit": "^3.0.0" } }, - "node_modules/@vaadin/rich-text-editor": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.6.4.tgz", - "integrity": "sha512-YS4JsIpPmVgFU2vuqKKJ+IeB10DyG/FT0xKt+KqLGGAdP9grALXnHuxKFSu6sZQZY5vtPzhCNhO+SD4uH/gQsg==", - "optional": true, - "peer": true, - "dependencies": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "^3.0.0", - "@vaadin/button": "~24.6.4", - "@vaadin/component-base": "~24.6.4", - "@vaadin/confirm-dialog": "~24.6.4", - "@vaadin/overlay": "~24.6.4", - "@vaadin/text-field": "~24.6.4", - "@vaadin/tooltip": "~24.6.4", - "@vaadin/vaadin-lumo-styles": "~24.6.4", - "@vaadin/vaadin-material-styles": "~24.6.4", - "@vaadin/vaadin-themable-mixin": "~24.6.4", - "lit": "^3.0.0" - } - }, "node_modules/@vaadin/router": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", @@ -4760,13 +4554,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/cookieconsent": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/cookieconsent/-/cookieconsent-3.1.1.tgz", - "integrity": "sha512-v8JWLJcI7Zs9NWrs8hiVldVtm3EBF70TJI231vxn6YToBGj0c9dvdnYwltydkAnrbBMOM/qX1xLFrnTfm5wTag==", - "optional": true, - "peer": true - }, "node_modules/core-js-compat": { "version": "3.40.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", @@ -4803,13 +4590,6 @@ "node": ">=8" } }, - "node_modules/csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", - "optional": true, - "peer": true - }, "node_modules/dash-ast": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", @@ -5399,26 +5179,6 @@ "node": ">=6.9.0" } }, - "node_modules/geotiff": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz", - "integrity": "sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA==", - "optional": true, - "peer": true, - "dependencies": { - "@petamoriken/float16": "^3.4.7", - "lerc": "^3.0.0", - "pako": "^2.0.4", - "parse-headers": "^2.0.2", - "quick-lru": "^6.1.1", - "web-worker": "^1.2.0", - "xml-utils": "^1.0.2", - "zstddec": "^0.1.0" - }, - "engines": { - "node": ">=10.19" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -5671,40 +5431,12 @@ "node": ">= 0.4" } }, - "node_modules/highcharts": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-9.2.2.tgz", - "integrity": "sha512-OMEdFCaG626ES1JEcKAvJTpxAOMuchy0XuAplmnOs0Yu7NMd2RMfTLFQ2fCJOxo3ubSdm/RVQwKAWC+5HYThnw==", - "optional": true, - "peer": true - }, "node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", "dev": true }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "peer": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -6340,13 +6072,6 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/json-stringify-pretty-compact": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz", - "integrity": "sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ==", - "optional": true, - "peer": true - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -6380,13 +6105,6 @@ "node": ">=0.10.0" } }, - "node_modules/lerc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lerc/-/lerc-3.0.0.tgz", - "integrity": "sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==", - "optional": true, - "peer": true - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -6473,13 +6191,6 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/mapbox-to-css-font": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.5.tgz", - "integrity": "sha512-VJ6nB8emkO9VODI0Fk+TQ/0zKBTqmf/Pkt8Xv0kHstoc0iXRajA00DAid4Kc3K5xeFIOoiZrVxijEzj0GLVO2w==", - "optional": true, - "peer": true - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -6556,16 +6267,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "optional": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -6692,35 +6393,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ol": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/ol/-/ol-6.13.0.tgz", - "integrity": "sha512-Fa6yt+FArWE9fwYRRhi/8+ULcFDRS2ZuDcLp3R9bQeDVa5T4E4TT9iqLeJhmHG+bzWiLWJHIeFUqw8GD2gW0YA==", - "optional": true, - "peer": true, - "dependencies": { - "geotiff": "^2.0.2", - "ol-mapbox-style": "^7.0.0", - "pbf": "3.2.1", - "rbush": "^3.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/openlayers" - } - }, - "node_modules/ol-mapbox-style": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-7.1.1.tgz", - "integrity": "sha512-GLTEYiH/Ec9Zn1eS4S/zXyR2sierVrUc+OLVP8Ra0FRyqRhoYbXdko0b7OIeSHWdtJfHssWYefDOGxfTRUUZ/A==", - "optional": true, - "peer": true, - "dependencies": { - "@mapbox/mapbox-gl-style-spec": "^13.20.1", - "mapbox-to-css-font": "^2.4.1", - "webfont-matcher": "^1.1.0" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -6770,20 +6442,6 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "optional": true, - "peer": true - }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", - "optional": true, - "peer": true - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -6836,20 +6494,6 @@ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", "license": "MIT" }, - "node_modules/pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "optional": true, - "peer": true, - "dependencies": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -6926,13 +6570,6 @@ "node": ">= 0.8" } }, - "node_modules/protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", - "optional": true, - "peer": true - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -6968,26 +6605,6 @@ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", "dev": true }, - "node_modules/quick-lru": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", - "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "optional": true, - "peer": true - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -6997,16 +6614,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "optional": true, - "peer": true, - "dependencies": { - "quickselect": "^2.0.0" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -7213,16 +6820,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "optional": true, - "peer": true, - "dependencies": { - "protocol-buffers-schema": "^3.3.1" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -7333,13 +6930,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "optional": true, - "peer": true - }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -7587,40 +7177,6 @@ "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", "dev": true }, - "node_modules/sort-asc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz", - "integrity": "sha512-jBgdDd+rQ+HkZF2/OHCmace5dvpos/aWQpcxuyRs9QUbPRnkEJmYVo81PIGpjIdpOcsnJ4rGjStfDHsbn+UVyw==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sort-desc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz", - "integrity": "sha512-jfZacW5SKOP97BF5rX5kQfJmRVZP5/adDUTY8fCSPvNcXDVpUEe2pr/iKGlcyZzchRJZrswnp68fgk3qBXgkJw==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sort-object": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz", - "integrity": "sha512-aAQiEdqFTTdsvUFxXm3umdo04J7MRljoVGbBlkH7BgNsMvVNAJyGj7C/wV1A8wHWAJj/YikeZbfuCKqhggNWGA==", - "optional": true, - "peer": true, - "dependencies": { - "sort-asc": "^0.1.0", - "sort-desc": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -8574,20 +8130,6 @@ "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", "dev": true }, - "node_modules/web-worker": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", - "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", - "optional": true, - "peer": true - }, - "node_modules/webfont-matcher": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webfont-matcher/-/webfont-matcher-1.1.0.tgz", - "integrity": "sha512-ov8lMvF9wi4PD7fK2Axn9PQEpO9cYI0fIoGqErwd+wi8xacFFDmX114D5Q2Lw0Wlgmb+Qw/dKI2KTtimrJf85g==", - "optional": true, - "peer": true - }, "node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", @@ -9175,13 +8717,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/xml-utils": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.1.tgz", - "integrity": "sha512-Dn6vJ1Z9v1tepSjvnCpwk5QqwIPcEFKdgnjqfYOABv1ngSofuAhtlugcUC3ehS1OHdgDWSG6C5mvj+Qm15udTQ==", - "optional": true, - "peer": true - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -9273,13 +8808,6 @@ "engines": { "node": ">=8" } - }, - "node_modules/zstddec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", - "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==", - "optional": true, - "peer": true } }, "dependencies": { @@ -10582,44 +10110,6 @@ "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", - "optional": true, - "peer": true - }, - "@mapbox/mapbox-gl-style-spec": { - "version": "13.28.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-style-spec/-/mapbox-gl-style-spec-13.28.0.tgz", - "integrity": "sha512-B8xM7Fp1nh5kejfIl4SWeY0gtIeewbuRencqO3cJDrCHZpaPg7uY+V8abuR+esMeuOjRl5cLhVTP40v+1ywxbg==", - "optional": true, - "peer": true, - "requires": { - "@mapbox/jsonlint-lines-primitives": "~2.0.2", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/unitbezier": "^0.0.0", - "csscolorparser": "~1.0.2", - "json-stringify-pretty-compact": "^2.0.0", - "minimist": "^1.2.6", - "rw": "^1.3.3", - "sort-object": "^0.3.2" - } - }, - "@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", - "optional": true, - "peer": true - }, - "@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==", - "optional": true, - "peer": true - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -10651,13 +10141,6 @@ "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" }, - "@petamoriken/float16": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.1.tgz", - "integrity": "sha512-j+ejhYwY6PeB+v1kn7lZFACUIG97u90WxMuGosILFsl9d4Ovi0sjk0GlPfoEcx+FzvXZDAfioD+NGnnPamXgMA==", - "optional": true, - "peer": true - }, "@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -11044,18 +10527,6 @@ "lit": "3.2.1" } }, - "@vaadin/board": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/board/-/board-24.6.4.tgz", - "integrity": "sha512-rtNMxNsqhK7sgpkV+4srZiwi0kp5wjyTkxImyDv2sfCcEkefFGg/1rB3omJunlw/KczDc+VHkZ2yAwQpxiWzcw==", - "optional": true, - "peer": true, - "requires": { - "@polymer/polymer": "3.5.2", - "@vaadin/a11y-base": "24.6.4", - "@vaadin/component-base": "24.6.4" - } - }, "@vaadin/bundles": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.6.4.tgz", @@ -11077,35 +10548,6 @@ "lit": "3.2.1" } }, - "@vaadin/card": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/card/-/card-24.6.4.tgz", - "integrity": "sha512-kPkr2u43o7KiENjkfIcYIFHny1U/hEujQxMROVI9ViE87pe8WADjZMdxNdCPzuhtlo8tlro71TpuRRliTzP9Og==", - "optional": true, - "peer": true, - "requires": { - "@vaadin/component-base": "24.6.4", - "@vaadin/vaadin-lumo-styles": "24.6.4", - "@vaadin/vaadin-material-styles": "24.6.4", - "@vaadin/vaadin-themable-mixin": "24.6.4", - "lit": "3.2.1" - } - }, - "@vaadin/charts": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/charts/-/charts-24.6.4.tgz", - "integrity": "sha512-A/SsEc5qcKzhyP02O5SdAxi0TJv/abKh7f+7mGSloNSzm+8J/5DOzNHzjgTRq0xsOdPVe1oPk1lQalNmqTKSug==", - "optional": true, - "peer": true, - "requires": { - "@polymer/polymer": "3.5.2", - "@vaadin/component-base": "24.6.4", - "@vaadin/vaadin-lumo-styles": "24.6.4", - "@vaadin/vaadin-material-styles": "24.6.4", - "@vaadin/vaadin-themable-mixin": "24.6.4", - "highcharts": "9.2.2" - } - }, "@vaadin/checkbox": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.6.4.tgz", @@ -11215,43 +10657,6 @@ "lit": "3.2.1" } }, - "@vaadin/cookie-consent": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/cookie-consent/-/cookie-consent-24.6.4.tgz", - "integrity": "sha512-+WgIodBwwtDujyB312sSp8Ostw9nwvU+sOGuhMbGrvQqSn1gYggT8ffU6ijQqLigzFCXHQ+BFFuM3krYO4HbpA==", - "optional": true, - "peer": true, - "requires": { - "@polymer/polymer": "3.5.2", - "@vaadin/component-base": "24.6.4", - "@vaadin/vaadin-lumo-styles": "24.6.4", - "@vaadin/vaadin-material-styles": "24.6.4", - "cookieconsent": "^3.0.6" - } - }, - "@vaadin/crud": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/crud/-/crud-24.6.4.tgz", - "integrity": "sha512-rEe88GLjK5MKa9Ow9Fp1Y1eW6zLxa+XzuBSSbYVEGP5yDOlsHOVsUW+7B2TwjiX0FrzLafrPXUcTDPTu9gD1Jw==", - "optional": true, - "peer": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.2", - "@vaadin/a11y-base": "24.6.4", - "@vaadin/button": "24.6.4", - "@vaadin/component-base": "24.6.4", - "@vaadin/confirm-dialog": "24.6.4", - "@vaadin/dialog": "24.6.4", - "@vaadin/form-layout": "24.6.4", - "@vaadin/grid": "24.6.4", - "@vaadin/overlay": "24.6.4", - "@vaadin/text-field": "24.6.4", - "@vaadin/vaadin-lumo-styles": "24.6.4", - "@vaadin/vaadin-material-styles": "24.6.4", - "@vaadin/vaadin-themable-mixin": "24.6.4" - } - }, "@vaadin/custom-field": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.6.4.tgz", @@ -11268,22 +10673,6 @@ "lit": "3.2.1" } }, - "@vaadin/dashboard": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/dashboard/-/dashboard-24.6.4.tgz", - "integrity": "sha512-MFH64fkj1zf0ramUT+iiPQ9d6czLyEE4lrH0o2MZh7HShJtNw2byl5INBb6JE1iWnE5gCAT/GouQBpnZ+PBPfw==", - "optional": true, - "peer": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/button": "24.6.4", - "@vaadin/component-base": "24.6.4", - "@vaadin/vaadin-lumo-styles": "24.6.4", - "@vaadin/vaadin-material-styles": "24.6.4", - "@vaadin/vaadin-themable-mixin": "24.6.4", - "lit": "3.2.1" - } - }, "@vaadin/date-picker": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.6.4.tgz", @@ -11426,27 +10815,6 @@ "lit": "3.2.1" } }, - "@vaadin/grid-pro": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/grid-pro/-/grid-pro-24.6.4.tgz", - "integrity": "sha512-hIojjyhNWmhYyK2xqIo8dDOBTn/u7g9H3cnT3fHzG5Md8TuZhbk0oKL//lXcsDm2bakUQMosARuyJWLUXRm5Lw==", - "optional": true, - "peer": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.2", - "@vaadin/checkbox": "24.6.4", - "@vaadin/component-base": "24.6.4", - "@vaadin/grid": "24.6.4", - "@vaadin/lit-renderer": "24.6.4", - "@vaadin/select": "24.6.4", - "@vaadin/text-field": "24.6.4", - "@vaadin/vaadin-lumo-styles": "24.6.4", - "@vaadin/vaadin-material-styles": "24.6.4", - "@vaadin/vaadin-themable-mixin": "24.6.4", - "lit": "3.2.1" - } - }, "@vaadin/horizontal-layout": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.6.4.tgz", @@ -11564,22 +10932,6 @@ "lit": "3.2.1" } }, - "@vaadin/map": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/map/-/map-24.6.4.tgz", - "integrity": "sha512-00awlWCZpvixh6AyF4IUu2yjDzB32vUTQz6xbWRuoG09yBhZ0SO5Y4GG8lnMTlCfwsr3ELLMnLWel5c2me0P/w==", - "optional": true, - "peer": true, - "requires": { - "@polymer/polymer": "3.5.2", - "@vaadin/a11y-base": "24.6.4", - "@vaadin/component-base": "24.6.4", - "@vaadin/vaadin-lumo-styles": "24.6.4", - "@vaadin/vaadin-material-styles": "24.6.4", - "@vaadin/vaadin-themable-mixin": "24.6.4", - "ol": "6.13.0" - } - }, "@vaadin/menu-bar": { "version": "24.6.4", "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.6.4.tgz", @@ -11775,27 +11127,6 @@ "lit": "3.2.1" } }, - "@vaadin/rich-text-editor": { - "version": "24.6.4", - "resolved": "https://registry.npmjs.org/@vaadin/rich-text-editor/-/rich-text-editor-24.6.4.tgz", - "integrity": "sha512-YS4JsIpPmVgFU2vuqKKJ+IeB10DyG/FT0xKt+KqLGGAdP9grALXnHuxKFSu6sZQZY5vtPzhCNhO+SD4uH/gQsg==", - "optional": true, - "peer": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@polymer/polymer": "3.5.2", - "@vaadin/button": "24.6.4", - "@vaadin/component-base": "24.6.4", - "@vaadin/confirm-dialog": "24.6.4", - "@vaadin/overlay": "24.6.4", - "@vaadin/text-field": "24.6.4", - "@vaadin/tooltip": "24.6.4", - "@vaadin/vaadin-lumo-styles": "24.6.4", - "@vaadin/vaadin-material-styles": "24.6.4", - "@vaadin/vaadin-themable-mixin": "24.6.4", - "lit": "3.2.1" - } - }, "@vaadin/router": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-2.0.0.tgz", @@ -12489,13 +11820,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "cookieconsent": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/cookieconsent/-/cookieconsent-3.1.1.tgz", - "integrity": "sha512-v8JWLJcI7Zs9NWrs8hiVldVtm3EBF70TJI231vxn6YToBGj0c9dvdnYwltydkAnrbBMOM/qX1xLFrnTfm5wTag==", - "optional": true, - "peer": true - }, "core-js-compat": { "version": "3.40.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", @@ -12522,13 +11846,6 @@ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, - "csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", - "optional": true, - "peer": true - }, "dash-ast": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", @@ -12963,23 +12280,6 @@ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, - "geotiff": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz", - "integrity": "sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA==", - "optional": true, - "peer": true, - "requires": { - "@petamoriken/float16": "^3.4.7", - "lerc": "^3.0.0", - "pako": "^2.0.4", - "parse-headers": "^2.0.2", - "quick-lru": "^6.1.1", - "web-worker": "^1.2.0", - "xml-utils": "^1.0.2", - "zstddec": "^0.1.0" - } - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -13153,26 +12453,12 @@ "function-bind": "^1.1.2" } }, - "highcharts": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-9.2.2.tgz", - "integrity": "sha512-OMEdFCaG626ES1JEcKAvJTpxAOMuchy0XuAplmnOs0Yu7NMd2RMfTLFQ2fCJOxo3ubSdm/RVQwKAWC+5HYThnw==", - "optional": true, - "peer": true - }, "idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", "dev": true }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "optional": true, - "peer": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -13586,13 +12872,6 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "json-stringify-pretty-compact": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz", - "integrity": "sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ==", - "optional": true, - "peer": true - }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -13615,13 +12894,6 @@ "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", "dev": true }, - "lerc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lerc/-/lerc-3.0.0.tgz", - "integrity": "sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==", - "optional": true, - "peer": true - }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -13702,13 +12974,6 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "mapbox-to-css-font": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.5.tgz", - "integrity": "sha512-VJ6nB8emkO9VODI0Fk+TQ/0zKBTqmf/Pkt8Xv0kHstoc0iXRajA00DAid4Kc3K5xeFIOoiZrVxijEzj0GLVO2w==", - "optional": true, - "peer": true - }, "math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -13765,13 +13030,6 @@ "brace-expansion": "^2.0.1" } }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "optional": true, - "peer": true - }, "minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -13858,31 +13116,6 @@ "object-keys": "^1.1.1" } }, - "ol": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/ol/-/ol-6.13.0.tgz", - "integrity": "sha512-Fa6yt+FArWE9fwYRRhi/8+ULcFDRS2ZuDcLp3R9bQeDVa5T4E4TT9iqLeJhmHG+bzWiLWJHIeFUqw8GD2gW0YA==", - "optional": true, - "peer": true, - "requires": { - "geotiff": "^2.0.2", - "ol-mapbox-style": "^7.0.0", - "pbf": "3.2.1", - "rbush": "^3.0.1" - } - }, - "ol-mapbox-style": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-7.1.1.tgz", - "integrity": "sha512-GLTEYiH/Ec9Zn1eS4S/zXyR2sierVrUc+OLVP8Ra0FRyqRhoYbXdko0b7OIeSHWdtJfHssWYefDOGxfTRUUZ/A==", - "optional": true, - "peer": true, - "requires": { - "@mapbox/mapbox-gl-style-spec": "^13.20.1", - "mapbox-to-css-font": "^2.4.1", - "webfont-matcher": "^1.1.0" - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -13920,20 +13153,6 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true }, - "pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "optional": true, - "peer": true - }, - "parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", - "optional": true, - "peer": true - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -13975,17 +13194,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, - "pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "optional": true, - "peer": true, - "requires": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - } - }, "picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -14027,13 +13235,6 @@ "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", "dev": true }, - "protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", - "optional": true, - "peer": true - }, "punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -14052,20 +13253,6 @@ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", "dev": true }, - "quick-lru": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", - "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", - "optional": true, - "peer": true - }, - "quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "optional": true, - "peer": true - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -14075,16 +13262,6 @@ "safe-buffer": "^5.1.0" } }, - "rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "optional": true, - "peer": true, - "requires": { - "quickselect": "^2.0.0" - } - }, "react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -14238,16 +13415,6 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "optional": true, - "peer": true, - "requires": { - "protocol-buffers-schema": "^3.3.1" - } - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -14310,13 +13477,6 @@ "queue-microtask": "^1.2.2" } }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "optional": true, - "peer": true - }, "safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -14484,31 +13644,6 @@ "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", "dev": true }, - "sort-asc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz", - "integrity": "sha512-jBgdDd+rQ+HkZF2/OHCmace5dvpos/aWQpcxuyRs9QUbPRnkEJmYVo81PIGpjIdpOcsnJ4rGjStfDHsbn+UVyw==", - "optional": true, - "peer": true - }, - "sort-desc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz", - "integrity": "sha512-jfZacW5SKOP97BF5rX5kQfJmRVZP5/adDUTY8fCSPvNcXDVpUEe2pr/iKGlcyZzchRJZrswnp68fgk3qBXgkJw==", - "optional": true, - "peer": true - }, - "sort-object": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz", - "integrity": "sha512-aAQiEdqFTTdsvUFxXm3umdo04J7MRljoVGbBlkH7BgNsMvVNAJyGj7C/wV1A8wHWAJj/YikeZbfuCKqhggNWGA==", - "optional": true, - "peer": true, - "requires": { - "sort-asc": "^0.1.0", - "sort-desc": "^0.1.1" - } - }, "source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -15137,20 +14272,6 @@ "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", "dev": true }, - "web-worker": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", - "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", - "optional": true, - "peer": true - }, - "webfont-matcher": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webfont-matcher/-/webfont-matcher-1.1.0.tgz", - "integrity": "sha512-ov8lMvF9wi4PD7fK2Axn9PQEpO9cYI0fIoGqErwd+wi8xacFFDmX114D5Q2Lw0Wlgmb+Qw/dKI2KTtimrJf85g==", - "optional": true, - "peer": true - }, "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", @@ -15627,13 +14748,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "xml-utils": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.1.tgz", - "integrity": "sha512-Dn6vJ1Z9v1tepSjvnCpwk5QqwIPcEFKdgnjqfYOABv1ngSofuAhtlugcUC3ehS1OHdgDWSG6C5mvj+Qm15udTQ==", - "optional": true, - "peer": true - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -15706,13 +14820,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true - }, - "zstddec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", - "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==", - "optional": true, - "peer": true } } } diff --git a/pom.xml b/pom.xml index 2e4e1d2..691253b 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ de.assecutor tasklist-editor - 0.9.2 + 0.9.3 TaskList Editor n8n-inspired editor for task list workflows diff --git a/src/main/java/de/assecutor/tasklisteditor/model/BlockTypeRegistry.java b/src/main/java/de/assecutor/tasklisteditor/model/BlockTypeRegistry.java index f1b54a1..9fd645f 100644 --- a/src/main/java/de/assecutor/tasklisteditor/model/BlockTypeRegistry.java +++ b/src/main/java/de/assecutor/tasklisteditor/model/BlockTypeRegistry.java @@ -55,13 +55,17 @@ public class BlockTypeRegistry { List.of() )); + // Die Typnummern 2–11 entsprechen der historischen Task-Typ-Belegung + // der stadtbote-App (2 = Unterschrift, 3 = Ankunft, 4 = Fotos, + // 5 = Barcode, 7–9 = Texteingaben, 11 = Statusauswahl). Neue, im + // Editor eingeführte Typen werden ab 12 aufsteigend nummeriert. register(new BlockType( "ankunft-melden", "Ankunft melden", "Erfasst die Ankunft am Einsatzort (Bestätigungsschaltfläche).", "vaadin:map-marker", "#2563eb", - 1, + 3, 1, 1, List.of( PropertyDefinition.bool("track", "GPS-Position erfassen", true), @@ -92,7 +96,7 @@ public class BlockTypeRegistry { "Nimmt eine Anzahl von Fotos auf.", "vaadin:camera", "#059669", - 3, + 4, 1, 1, List.of( PropertyDefinition.number("min", "Mindestanzahl Fotos", 1), @@ -155,7 +159,7 @@ public class BlockTypeRegistry { "Einfache Bestätigung per Häkchen ohne weitere Eingabe.", "vaadin:check-square-o", "#16a34a", - 6, + 12, 1, 1, List.of( PropertyDefinition.bool("opt", "Optionale Aufgabe", false), @@ -194,17 +198,16 @@ public class BlockTypeRegistry { ) )); - // Listen-Tasks: erfassen mehrerer gleichartiger Werte. Die Anzahl wird - // analog zu "Fotos aufnehmen" über min/max gesteuert. Diese Typen haben - // (noch) keinen Handler in der stadtbote-App und liegen daher oberhalb - // des dort genutzten Bereichs (1–11). + // Listen-Tasks: erfassen mehrerer gleichartiger Werte über + // vordefinierte Eingabefelder. Wie alle im Editor neu eingeführten + // Typen liegen sie oberhalb des historischen App-Bereichs (2–11). register(new BlockType( "text-liste-erfassen", "Liste von Texten erfassen", "Erfasst mehrere Texteinträge über vordefinierte Eingabefelder.", "vaadin:lines-list", "#4338ca", - 12, + 13, 1, 1, List.of( PropertyDefinition.fieldList("fields", "Textfelder (Titel + Platzhalter)"), @@ -218,7 +221,7 @@ public class BlockTypeRegistry { "Erfasst mehrere numerische Werte über vordefinierte Eingabefelder.", "vaadin:list-ol", "#0369a1", - 13, + 14, 1, 1, List.of( PropertyDefinition.fieldList("fields", "Zahlenfelder (Titel + Platzhalter)"), @@ -232,7 +235,7 @@ public class BlockTypeRegistry { "Lässt mehrere vordefinierte Optionen per Checkbox ankreuzen.", "vaadin:tasks", "#15803d", - 14, + 15, 1, 1, List.of( PropertyDefinition.nameList("entries", "Name der Checkboxen"), @@ -266,7 +269,7 @@ public class BlockTypeRegistry { return Optional.ofNullable(types.get(id)); } - /** Die festen Standard-Typen (Typnummer 1–8), auf denen eigene Typen aufbauen. */ + /** Die festen Standard-Typen (Typnummer < 1000), auf denen eigene Typen aufbauen. */ public List baseTypes() { return types.values().stream() .filter(t -> t.taskType() >= 1 && t.taskType() < CUSTOM_TYPE_START) diff --git a/src/main/java/de/assecutor/tasklisteditor/model/TaskDto.java b/src/main/java/de/assecutor/tasklisteditor/model/TaskDto.java index 176dac6..5a3bd58 100644 --- a/src/main/java/de/assecutor/tasklisteditor/model/TaskDto.java +++ b/src/main/java/de/assecutor/tasklisteditor/model/TaskDto.java @@ -16,7 +16,7 @@ import java.util.List; * erscheinen. */ @JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({"s_id", "type", "topic", "opt", "reenter", "min", "max", +@JsonPropertyOrder({"s_id", "type", "base_type", "topic", "opt", "reenter", "min", "max", "max_len", "rt", "track", "txt", "task_arrival", "task_fin_work", "entries", "choices", "fields", "script"}) public class TaskDto { @@ -25,6 +25,15 @@ public class TaskDto { private int type; + /** + * Typnummer des Basis-Typs bei benutzerdefinierten Typen + * ({@code type >= }{@link BlockTypeRegistry#CUSTOM_TYPE_START}); die App + * stellt solche Tasks wie ihren Basis-Typ dar. Bei Standard-Typen + * {@code null} und damit nicht im JSON enthalten. + */ + @JsonProperty("base_type") + private Integer baseType; + private String topic; private Boolean opt; @@ -47,10 +56,10 @@ public class TaskDto { private List entries; - /** Auswahloptionen eines Status-Tasks (Typ 6). */ + /** Auswahloptionen eines Status-Tasks (Typ 11). */ private List choices; - /** Eingabefelder eines Listen-Text-Tasks (Typ 12). */ + /** Eingabefelder einer Text-/Zahlen-Liste (Typ 13/14). */ private List fields; /** Logik-Graph eines Script-Blocks (Drawflow-Definition als JSON). */ @@ -72,6 +81,14 @@ public class TaskDto { this.type = type; } + public Integer getBaseType() { + return baseType; + } + + public void setBaseType(Integer baseType) { + this.baseType = baseType; + } + public String getTopic() { return topic; } diff --git a/src/main/java/de/assecutor/tasklisteditor/service/TaskListExporter.java b/src/main/java/de/assecutor/tasklisteditor/service/TaskListExporter.java index 3a57085..c1241b0 100644 --- a/src/main/java/de/assecutor/tasklisteditor/service/TaskListExporter.java +++ b/src/main/java/de/assecutor/tasklisteditor/service/TaskListExporter.java @@ -32,9 +32,11 @@ import java.util.Set; public class TaskListExporter { private final ObjectMapper objectMapper; + private final BlockTypeRegistry registry; - public TaskListExporter(ObjectMapper objectMapper) { + public TaskListExporter(ObjectMapper objectMapper, BlockTypeRegistry registry) { this.objectMapper = objectMapper; + this.registry = registry; } public List export(String drawflowJson, Map instances) { @@ -225,6 +227,13 @@ public class TaskListExporter { private TaskDto toTask(BlockInstance instance) { TaskDto task = new TaskDto(); task.setType(instance.type().taskType()); + // Benutzerdefinierte Typen verhalten sich in der App wie ihr + // Basis-Typ; dessen Typnummer wird als base_type mit exportiert. + if (instance.type().taskType() >= BlockTypeRegistry.CUSTOM_TYPE_START + && instance.type().baseTypeId() != null) { + registry.find(instance.type().baseTypeId()) + .ifPresent(base -> task.setBaseType(base.taskType())); + } String topic = instance.topic(); task.setTopic(topic == null || topic.isBlank() ? instance.type().label() : topic); diff --git a/src/main/java/de/assecutor/tasklisteditor/service/TaskListImporter.java b/src/main/java/de/assecutor/tasklisteditor/service/TaskListImporter.java index 20b86db..f861867 100644 --- a/src/main/java/de/assecutor/tasklisteditor/service/TaskListImporter.java +++ b/src/main/java/de/assecutor/tasklisteditor/service/TaskListImporter.java @@ -64,7 +64,7 @@ public class TaskListImporter { private Map valuesFor(BlockType type, TaskDto task) { Map values = new LinkedHashMap<>(); for (PropertyDefinition def : type.properties()) { - // Listen-Eigenschaften (Typ 12–14) werden anhand ihres + // Listen-Eigenschaften (Typ 13–15) werden anhand ihres // Property-Typs in die vom Zeilen-Editor erwartete Struktur // (Liste aus {title}/{title,placeholder}-Maps) zurückgewandelt. Object value = switch (def.type()) { @@ -95,7 +95,7 @@ public class TaskListImporter { }; } - /** {@code fields}-Array (Typ 12/13) zurück in Zeilen mit Titel + Platzhalter. */ + /** {@code fields}-Array (Typ 13/14) zurück in Zeilen mit Titel + Platzhalter. */ private List> fieldRows(TaskDto task) { List> rows = new ArrayList<>(); if (task.getFields() == null) { @@ -111,7 +111,7 @@ public class TaskListImporter { return rows; } - /** {@code entries}-Array (Typ 14) zurück in Zeilen mit Namen ({@code title}). */ + /** {@code entries}-Array (Typ 15) zurück in Zeilen mit Namen ({@code title}). */ private List> entryRows(TaskDto task) { List> rows = new ArrayList<>(); if (task.getEntries() == null) { diff --git a/src/main/java/de/assecutor/tasklisteditor/service/WorkflowAssistantService.java b/src/main/java/de/assecutor/tasklisteditor/service/WorkflowAssistantService.java index d3ac7f2..e23b734 100644 --- a/src/main/java/de/assecutor/tasklisteditor/service/WorkflowAssistantService.java +++ b/src/main/java/de/assecutor/tasklisteditor/service/WorkflowAssistantService.java @@ -230,9 +230,9 @@ public class WorkflowAssistantService { (boolean) erlaubt erneutes Bearbeiten. - Listenfelder: * "fields": Array aus {"title": "...", "placeholder": "...", "required": true|false} - (Text-/Zahlenlisten, Typ 12/13). + (Text-/Zahlenlisten, Typ 13/14). * "entries": Array aus {"code": , "text": "...", "required": true|false} - (Checkbox-Liste, Typ 14). + (Checkbox-Liste, Typ 15). * "choices": Array aus {"txt": "...", "ret": } (Statusauswahl, Typ 11). Kennzeichne Einträge nur dann mit "required": true, wenn der Benutzer sie diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 43026eb..a8287af 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -6,6 +6,9 @@ tasklist.app-version=@project.version@ vaadin.launch-browser=true vaadin.allowed-packages=de.assecutor.tasklisteditor +# Lit-/Router-Modus statt React (muss zum reactEnable=false im pom.xml passen, +# damit der Dev-Modus beim IDE-Start kein React-Frontend generiert). +vaadin.react.enable=false management.endpoints.web.exposure.include=health,info management.endpoint.health.probes.enabled=true