From d8fbc51efde5a477c245cdf8df2656b1c5a15dc8 Mon Sep 17 00:00:00 2001 From: "Albrecht Johannes (DC-AE/ESW1)" Date: Tue, 30 Apr 2024 10:44:43 +0200 Subject: [PATCH] Prepare Release SDK-V-0206 --- doc/appdevguide.md | 15 +- doc/appdevguide_basechecks.md | 4 +- doc/appdevguide_docker.md | 70 + doc/appdevguide_reserved-interfaces.md | 2 +- doc/appdevguide_systemreport.md | 76 + doc/artifacts.zip | Bin 0 -> 17609 bytes doc/certificates/com.ctrlx-automation.os.crt | 21 + .../TEMPLATE.diagnostics.en-US.json | 4 +- .../TEMPLATE_detailed_diag.cpp | 20 - .../TEMPLATE_detailed_diag.h | 13 - .../TEMPLATE_main_diag.cpp | 18 - .../diagnosis_templates/TEMPLATE_main_diag.h | 13 - .../diagnosis_templates/readme.md | 161 +- doc/images/licensing_plclib.png | Bin 0 -> 26101 bytes doc/licensing.md | 125 +- doc/numopenfilehandles.md | 2 +- doc/package-assets.md | 85 +- doc/persist-device-settings.md | 121 +- doc/persistdata.md | 4 +- doc/s2sauth.md | 4 +- doc/samples.md | 96 - doc/tpm2.md | 2 +- mkdocs.yml | 2 - samples-angular/.vscode/settings.json | 3 - samples-angular/README.md | 11 - .../sdk-multi-language.package-manifest.json | 25 - .../multi-language/package-lock.json | 12418 --------------- samples-angular/multi-language/package.json | 37 - .../multi-language/snap/snapcraft.yaml | 55 - .../datalayer.client.alldata/CMakeLists.txt | 4 +- samples-cpp/datalayer.ecat.io/README.md | 2 +- samples-cpp/datalayer.ecat.io/main.cpp | 480 +- .../datalayer.ecat.io/snap/snapcraft.yaml | 4 +- .../datalayer.provider.alldata/CMakeLists.txt | 4 +- .../datalayer.provider.simple/CMakeLists.txt | 4 +- .../datalayer.sharedmemory/main_owner.cpp | 2 +- .../datalayer.sharedmemory/main_user.cpp | 2 +- samples-go/datalayer.client.ext/README.md | 2 +- .../datalayer.client.ext/cmd/client/main.go | 2 +- samples-go/datalayer.client.ext/go.mod | 2 +- samples-go/datalayer.client.ext/go.sum | 22 +- .../pkg/client/bulkclient.go | 2 +- .../pkg/client/datalayerclient.go | 2 +- .../pkg/client/subscriptionclient.go | 2 +- samples-go/datalayer.client.simple/go.mod | 2 +- samples-go/datalayer.client.simple/go.sum | 24 +- .../datalayer.provider.simple/README.md | 2 +- .../cmd/provider/main.go | 3 +- samples-go/datalayer.provider.simple/go.mod | 2 +- samples-go/datalayer.provider.simple/go.sum | 24 +- .../pkg/node/nodearraytimestamp.go | 4 +- .../pkg/node/nodedata.go | 42 +- .../pkg/node/nodefbs.go | 5 +- .../pkg/node/nodestring.go | 4 +- .../pkg/node/nodetimestamp.go | 4 +- samples-go/tpm2.srk/cmd/tpm2/main.go | 13 +- samples-go/tpm2.srk/go.mod | 18 +- samples-go/tpm2.srk/go.sum | 224 +- samples-go/webdav.client/.vscode/launch.json | 2 + .../webdav.client/.vscode/settings.json | 3 + samples-go/webdav.client/.vscode/tasks.json | 196 + samples-go/webdav.client/build-snap-amd64.sh | 4 + .../webdav.client/build-snap-arm64.sh | 0 samples-go/webdav.client/cmd/client/main.go | 29 +- samples-go/webdav.client/go.mod | 4 +- samples-go/webdav.client/go.sum | 7 +- samples-go/webdav.client/snap/snapcraft.yaml | 57 + samples-net/.vscode/launch.json | 10 +- samples-net/appdata/.vscode/launch.json | 2 +- samples-net/appdata/appdata.csproj | 6 +- .../sdk-net-appdata.package-manifest.json | 2 +- .../.vscode/launch.json | 2 +- .../datalayer.client.browse.csproj | 6 +- .../datalayer.client.browse/package-lock.json | 6 + .../.vscode/launch.json | 2 +- .../datalayer.client.bulkread.csproj | 6 +- .../package-lock.json | 6 + .../.vscode/launch.json | 2 +- .../datalayer.client.simple.csproj | 6 +- .../datalayer.client.simple/npm_install.bat | 27 + .../datalayer.client.simple/package-lock.json | 6 + .../.vscode/launch.json | 2 +- .../datalayer.provider.alldata/build-fbs.sh | 2 +- .../datalayer.provider.alldata.csproj | 6 +- .../sample/schema/InertialValue.cs | 2 +- .../.vscode/launch.json | 2 +- .../datalayer.provider.simple/build-fbs.sh | 2 +- .../datalayer.provider.simple.csproj | 6 +- .../sample/schema/InertialValue.cs | 2 +- .../.vscode/launch.json | 2 +- .../datalayer.provider.virtual.csproj | 6 +- .../diagnostics.logbook/.vscode/launch.json | 2 +- .../diagnostics.logbook.csproj | 10 +- samples-net/hello.web.asp/.vscode/launch.json | 2 +- samples-net/hello.web.asp/Program.cs | 2 +- .../hello.web.asp/hello.web.asp.csproj | 4 +- .../services/DataLayerService.cs | 39 +- samples-net/hello.world/.vscode/launch.json | 2 +- samples-net/hello.world/hello.world.csproj | 4 +- samples-net/samples.sln | 18 - samples-node/.gitignore | 5 + samples-node/README.md | 5 +- .../angular.multi-language}/.browserslistrc | 0 .../angular.multi-language}/.editorconfig | 0 .../angular.multi-language}/.gitignore | 0 .../.vscode/extensions.json | 0 .../.vscode/launch.json | 0 .../.vscode/settings.json | 0 .../.vscode/tasks.json | 0 .../angular.multi-language}/README.md | 2 +- .../angular.multi-language}/angular.json | 2 +- .../build-snap-amd64.sh | 0 .../build-snap-arm64.sh | 0 ...gular-multi-language.package-manifest.json | 25 + .../angular.multi-language}/karma.conf.js | 0 .../angular.multi-language/package-lock.json | 13300 ++++++++++++++++ .../angular.multi-language/package.json | 38 + .../snap/snapcraft.yaml | 83 + .../src/app/app.component.html | 0 .../src/app/app.component.scss | 0 .../src/app/app.component.spec.ts | 6 +- .../src/app/app.component.ts | 0 .../src/app/app.module.ts | 0 .../src/app/books/book-list.component.html | 0 .../src/app/books/book-list.component.scss | 0 .../src/app/books/book-list.component.spec.ts | 0 .../src/app/books/book-list.component.ts | 0 .../src/app/books/book.ts | 0 .../src/assets/.gitkeep | 0 .../src/assets/i18n/multi-language.de.json | 2 +- .../src/assets/i18n/multi-language.en.json | 2 +- .../src/environments/environment.prod.ts | 0 .../src/environments/environment.ts | 0 .../angular.multi-language}/src/favicon.ico | 0 .../angular.multi-language}/src/index.html | 2 +- .../angular.multi-language}/src/main.ts | 0 .../angular.multi-language}/src/polyfills.ts | 0 .../angular.multi-language}/src/styles.scss | 0 .../angular.multi-language}/src/test.ts | 0 .../angular.multi-language}/tsconfig.app.json | 0 .../angular.multi-language}/tsconfig.json | 0 .../tsconfig.spec.json | 0 .../angular.multi-language}/tslint.json | 0 .../datalayer.client.browse/package-lock.json | 630 +- .../datalayer.client.browse/package.json | 15 +- .../snap/snapcraft.yaml | 11 +- .../package-lock.json | 630 +- .../datalayer.client.bulkread/package.json | 15 +- .../snap/snapcraft.yaml | 11 +- .../datalayer.client.simple/package-lock.json | 630 +- .../datalayer.client.simple/package.json | 15 +- .../snap/snapcraft.yaml | 11 +- .../datalayer.provider.alldata/build-fbs.sh | 2 +- .../package-lock.json | 630 +- .../datalayer.provider.alldata/package.json | 15 +- .../snap/snapcraft.yaml | 11 +- .../datalayer.provider.simple/build-fbs.sh | 2 +- .../datalayer.provider.simple/npm_install.bat | 27 + .../package-lock.json | 630 +- .../datalayer.provider.simple/package.json | 15 +- .../snap/snapcraft.yaml | 11 +- samples-node/hello-world/package-lock.json | 579 +- samples-node/hello-world/package.json | 12 +- samples-node/hello-world/snap/snapcraft.yaml | 13 +- .../solutions.webdav.interface/src/app.ts | 74 - .../.editorconfig | 0 .../.eslintrc.js | 0 .../.vscode/launch.json | 3 +- samples-node/webdav.client/.vscode/tasks.json | 225 + .../README.md | 2 +- .../webdav.client/build-snap-amd64.sh | 4 + .../webdav.client/build-snap-arm64.sh | 4 + samples-node/webdav.client/npm_install.bat | 27 + .../package-lock.json | 667 +- .../package.json | 21 +- .../webdav.client/snap/snapcraft.yaml | 101 + samples-node/webdav.client/src/app.ts | 77 + .../tsconfig.json | 0 .../sdk-py-appdata.package-manifest.json | 1 - .../requirements.txt | 4 +- .../datalayer.provider/.vscode/tasks.json | 4 +- samples-python/datalayer.provider/README.md | 16 +- .../app/my_provider_node.py | 54 +- samples-python/datalayer.provider/main.py | 88 +- .../datalayer.provider/make-bfbs-mddb.sh | 22 - .../datalayer.provider/make-bfbs.sh | 17 + .../datalayer.provider/mddb/metadata.mddb | Bin 500 -> 0 bytes .../datalayer.provider/metadata.csv | 3 - .../datalayer.provider/requirements.txt | 2 +- .../sample/schema/InertialValue.py | 5 + .../datalayer.provider/snap/snapcraft.yaml | 4 - samples-python/logbook/README.md | 10 +- samples-python/logbook/requirements.txt | 2 +- samples-python/logbook/setup.py | 2 +- samples-python/logbook/snap/snapcraft.yaml | 17 +- samples-python/webserver/app/datalayer.py | 4 +- .../sdk-py-webserver.package-manifest.json | 10 +- .../docs/images/python_webserver.png | Bin 35125 -> 33230 bytes .../webserver/web/request_handler.py | 2 +- samples-sh/README.md | 4 - samples-sh/tpm2.consumer/.vscode/tasks.json | 28 - samples-sh/ulimit-snap/snap/snapcraft.yaml | 22 - samples-snap/README.md | 4 +- samples-snap/generate-manifest/.editorconfig | 16 + .../generate-manifest/.vscode/tasks.json | 225 + .../generate-manifest/snap/snapcraft.yaml | 9 +- .../monitor-health/.vscode/tasks.json | 225 + .../monitor-health/snap/snapcraft.yaml | 7 +- samples-snap/storage-extension/.editorconfig | 16 + .../storage-extension/.vscode/tasks.json | 225 + .../storage-extension/build-snap-amd64.sh | 4 + .../storage-extension/build-snap-arm64.sh | 4 + .../storage-extension/snap/snapcraft.yaml | 10 +- samples-snap/tpm2-webserver/.editorconfig | 16 + .../tpm2-webserver/.vscode/tasks.json | 225 + .../tpm2-webserver}/README.md | 102 +- .../tpm2-webserver/build-snap-amd64.sh | 4 + .../tpm2-webserver/build-snap-arm64.sh | 4 + .../tpm2-webserver.package-manifest.json | 4 +- .../tpm2-webserver}/snap/snapcraft.yaml | 11 +- .../webserver/tpm2-webserver.sh | 2 +- samples-snap/ulimit/.editorconfig | 16 + .../ulimit}/.gitignore | 0 samples-snap/ulimit/.vscode/tasks.json | 225 + .../ulimit}/README.md | 0 samples-snap/ulimit/build-snap-amd64.sh | 4 + samples-snap/ulimit/build-snap-arm64.sh | 4 + samples-snap/ulimit/build-snap.sh | 4 + samples-snap/ulimit/snap/snapcraft.yaml | 23 + .../ulimit}/ulimit-script/increase-ulimit.sh | 0 samples.md | 4 +- scripts/README.md | 10 +- scripts/build_flatbuffers.bat | 14 - scripts/build_flatbuffers.sh | 11 - scripts/clone-install-sdk.sh | 29 - scripts/install-cpp-aarch64-libs.sh | 21 - scripts/install-ctrlx-os-dev-tools.sh | 13 + scripts/install-dotnet-sdk.sh | 14 +- scripts/install-required-packages.sh | 80 + scripts/install-snapcraft.sh | 6 +- 240 files changed, 18789 insertions(+), 16535 deletions(-) create mode 100644 doc/appdevguide_docker.md create mode 100644 doc/appdevguide_systemreport.md create mode 100644 doc/artifacts.zip create mode 100644 doc/certificates/com.ctrlx-automation.os.crt delete mode 100644 doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_detailed_diag.cpp delete mode 100644 doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_detailed_diag.h delete mode 100644 doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_main_diag.cpp delete mode 100644 doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_main_diag.h create mode 100644 doc/images/licensing_plclib.png delete mode 100644 doc/samples.md delete mode 100644 samples-angular/.vscode/settings.json delete mode 100644 samples-angular/README.md delete mode 100644 samples-angular/multi-language/configs/package-assets/sdk-multi-language.package-manifest.json delete mode 100644 samples-angular/multi-language/package-lock.json delete mode 100644 samples-angular/multi-language/package.json delete mode 100644 samples-angular/multi-language/snap/snapcraft.yaml create mode 100644 samples-go/webdav.client/.vscode/settings.json create mode 100644 samples-go/webdav.client/.vscode/tasks.json create mode 100644 samples-go/webdav.client/build-snap-amd64.sh rename samples-sh/ulimit-snap/build-snap.sh => samples-go/webdav.client/build-snap-arm64.sh (100%) create mode 100644 samples-go/webdav.client/snap/snapcraft.yaml create mode 100644 samples-net/datalayer.client.browse/package-lock.json create mode 100644 samples-net/datalayer.client.bulkread/package-lock.json create mode 100644 samples-net/datalayer.client.simple/npm_install.bat create mode 100644 samples-net/datalayer.client.simple/package-lock.json create mode 100644 samples-node/.gitignore rename {samples-angular/multi-language => samples-node/angular.multi-language}/.browserslistrc (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/.editorconfig (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/.gitignore (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/.vscode/extensions.json (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/.vscode/launch.json (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/.vscode/settings.json (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/.vscode/tasks.json (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/README.md (99%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/angular.json (98%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/build-snap-amd64.sh (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/build-snap-arm64.sh (100%) create mode 100644 samples-node/angular.multi-language/configs/package-assets/sdk-angular-multi-language.package-manifest.json rename {samples-angular/multi-language => samples-node/angular.multi-language}/karma.conf.js (100%) create mode 100644 samples-node/angular.multi-language/package-lock.json create mode 100644 samples-node/angular.multi-language/package.json create mode 100644 samples-node/angular.multi-language/snap/snapcraft.yaml rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/app.component.html (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/app.component.scss (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/app.component.spec.ts (86%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/app.component.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/app.module.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/books/book-list.component.html (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/books/book-list.component.scss (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/books/book-list.component.spec.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/books/book-list.component.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/app/books/book.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/assets/.gitkeep (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/assets/i18n/multi-language.de.json (93%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/assets/i18n/multi-language.en.json (93%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/environments/environment.prod.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/environments/environment.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/favicon.ico (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/index.html (94%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/main.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/polyfills.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/styles.scss (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/src/test.ts (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/tsconfig.app.json (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/tsconfig.json (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/tsconfig.spec.json (100%) rename {samples-angular/multi-language => samples-node/angular.multi-language}/tslint.json (100%) create mode 100644 samples-node/datalayer.provider.simple/npm_install.bat delete mode 100644 samples-node/solutions.webdav.interface/src/app.ts rename samples-node/{solutions.webdav.interface => webdav.client}/.editorconfig (100%) rename samples-node/{solutions.webdav.interface => webdav.client}/.eslintrc.js (100%) rename samples-node/{solutions.webdav.interface => webdav.client}/.vscode/launch.json (83%) create mode 100644 samples-node/webdav.client/.vscode/tasks.json rename samples-node/{solutions.webdav.interface => webdav.client}/README.md (94%) create mode 100644 samples-node/webdav.client/build-snap-amd64.sh create mode 100644 samples-node/webdav.client/build-snap-arm64.sh create mode 100644 samples-node/webdav.client/npm_install.bat rename samples-node/{solutions.webdav.interface => webdav.client}/package-lock.json (83%) rename samples-node/{solutions.webdav.interface => webdav.client}/package.json (51%) create mode 100644 samples-node/webdav.client/snap/snapcraft.yaml create mode 100644 samples-node/webdav.client/src/app.ts rename samples-node/{solutions.webdav.interface => webdav.client}/tsconfig.json (100%) delete mode 100644 samples-python/datalayer.provider/make-bfbs-mddb.sh create mode 100644 samples-python/datalayer.provider/make-bfbs.sh delete mode 100644 samples-python/datalayer.provider/mddb/metadata.mddb delete mode 100644 samples-python/datalayer.provider/metadata.csv delete mode 100644 samples-sh/README.md delete mode 100644 samples-sh/tpm2.consumer/.vscode/tasks.json delete mode 100644 samples-sh/ulimit-snap/snap/snapcraft.yaml create mode 100644 samples-snap/generate-manifest/.editorconfig create mode 100644 samples-snap/generate-manifest/.vscode/tasks.json create mode 100644 samples-snap/monitor-health/.vscode/tasks.json create mode 100644 samples-snap/storage-extension/.editorconfig create mode 100644 samples-snap/storage-extension/.vscode/tasks.json create mode 100644 samples-snap/storage-extension/build-snap-amd64.sh create mode 100644 samples-snap/storage-extension/build-snap-arm64.sh create mode 100644 samples-snap/tpm2-webserver/.editorconfig create mode 100644 samples-snap/tpm2-webserver/.vscode/tasks.json rename {samples-sh/tpm2.consumer => samples-snap/tpm2-webserver}/README.md (94%) create mode 100644 samples-snap/tpm2-webserver/build-snap-amd64.sh create mode 100644 samples-snap/tpm2-webserver/build-snap-arm64.sh rename samples-sh/tpm2.consumer/configs/package-assets/rexroth-tpm2-webserver.package-manifest.json => samples-snap/tpm2-webserver/configs/package-assets/tpm2-webserver.package-manifest.json (66%) rename {samples-sh/tpm2.consumer => samples-snap/tpm2-webserver}/snap/snapcraft.yaml (94%) rename {samples-sh/tpm2.consumer => samples-snap/tpm2-webserver}/webserver/tpm2-webserver.sh (90%) create mode 100644 samples-snap/ulimit/.editorconfig rename {samples-sh/ulimit-snap => samples-snap/ulimit}/.gitignore (100%) create mode 100644 samples-snap/ulimit/.vscode/tasks.json rename {samples-sh/ulimit-snap => samples-snap/ulimit}/README.md (100%) create mode 100644 samples-snap/ulimit/build-snap-amd64.sh create mode 100644 samples-snap/ulimit/build-snap-arm64.sh create mode 100644 samples-snap/ulimit/build-snap.sh create mode 100644 samples-snap/ulimit/snap/snapcraft.yaml rename {samples-sh/ulimit-snap => samples-snap/ulimit}/ulimit-script/increase-ulimit.sh (100%) delete mode 100644 scripts/build_flatbuffers.bat delete mode 100644 scripts/build_flatbuffers.sh delete mode 100644 scripts/install-cpp-aarch64-libs.sh create mode 100644 scripts/install-required-packages.sh diff --git a/doc/appdevguide.md b/doc/appdevguide.md index be293e6c8..a9bbd7d9a 100644 --- a/doc/appdevguide.md +++ b/doc/appdevguide.md @@ -76,7 +76,7 @@ Before the validation process starts, the partner / app developer must provide t * a description of a typical standard scenario -The architecture overview should be stored as "**architecture-overview.x**" in the {app-name} folder and should be delivered with each new app version. +The architecture overview should be stored as "**architecture-overview.x**" in the {app-name} folder. Initially, provide the architecture overview, and if there are any changes in the architecture, update and provide the new overview. This document typically will be provided for an initial meeting with the partner / app developer, the relevant Bosch Rexroth partner manager and the Bosch Rexroth app validation team. At this point, the partner should also already have uploaded the necessary artifacts to be able to clarify any open points. @@ -243,10 +243,10 @@ The basic app information is checked as a prerequisite by Bosch Rexroth, before #### 4.1.1 Artifacts Folder Template -The ctrlX World Partner Portal provides a file (artifacts.zip), which can be downloaded and extracted locally. +Please find the sample artifacts in the [artifacts.zip](artifacts.zip), which can be downloaded and extracted locally. This will create the required folder structure for the mandatory artifacts out-of-the-box, with default descriptions and schema files. -!!!! important +!!! important Please use the given structure, folder names and file names unchanged. This will support an efficient validation process. ![image](images/artifacts.png) @@ -481,8 +481,7 @@ For information how to adapt an app to the licensing service please have look on To make sure that only apps that have successfully passed the validation process are available as a ctrlX app, these Apps need to be signed by Bosch Rexroth. During the signing process, the app binaries are checked and combined with a signature. This signature guarantees that the app cannot be modified after the validation and signing process. -!!! note - At the moment, only Bosch Rexroth can sign ctrlX apps +Note: Currently only Bosch Rexroth can sign ctrlX apps ## 8 ctrlX Security System (**OPTIONAL**) @@ -490,6 +489,8 @@ During the signing process, the app binaries are checked and combined with a sig The proxy URL is the most important setting in the **package-manifest.json** file for the app to be integrated seamlessly into the ctrlX CORE. The reverse proxy will forward requests to the URL that are defined for the app web service. +**Please make sure that your App provides unique URLs for the ctrlX reverse proxy** + An app is to be bound to a Unix socket instead of a local port. This will also prevent potential collisions with other services. !!! warning @@ -516,6 +517,8 @@ If the mechanisms the ctrlX CORE provides are not used, hardcoded accounts/crede The ctrlX CORE's so called "scopes" are to be used to model app permissions. Scopes allow permissions to be assigned to users & groups via the web interface. If case permissions are used, the permissions must be enforced within the app (package-manifest.json) +**If your app supports scopes, unique scopes must be provided to the ctrlX permission manager** + ## 9 ctrlX User Interface and Project Handling (**OPTIONAL**) @@ -535,6 +538,8 @@ The so-called "Solution" is an essential part of any ctrlX CORE device. It provi - Should be non-binary (in future version control system / GIT will be used). However, if there is no alternative and the files do not change too often, small binaries can be stored in a configuration. +**Apps must use separate, unique repositories in ctrlX configurations.** + #### 9.2.2 Environment Variables (**CONDITIONAL**) diff --git a/doc/appdevguide_basechecks.md b/doc/appdevguide_basechecks.md index 2c836fa48..5a5ef3637 100644 --- a/doc/appdevguide_basechecks.md +++ b/doc/appdevguide_basechecks.md @@ -31,6 +31,7 @@ The content of this document may be subject of change in further versions of the - **Schema for snapcraft.yaml:** https://github.com/snapcore/snapcraft/blob/master/schema/snapcraft.json - **Schema for technical app name:** "ctrlx-{company name}-{app name}-{app version}_arm64/amd64.snap" +- **ctrlX Device Portal: App name in Private Repository:** If the App is provided in a Private Repository for the ctrlX Device Portal, the Name in the Artifact Description in the Repository should be identical to the Name in snapcraft.yaml. Please see https://docs.automation.boschrexroth.com/doc/2056862327/ctrlx-device-portal/latest/en/ for additional information about the ctrlX Device Portal and the Private Repository. @@ -43,7 +44,8 @@ The content of this document may be subject of change in further versions of the | **Item** | **Criteria** | | --- | --- | | **licenses** | list of all used licenses (`licenses.name, .title, .description .required`) | -| **certificatestores** | snap service to handle keys and certificates (ptional) | +| **certificatestores** | snap service to handle keys and certificates (optional) | +| **menus** | optional: entries for sidebar integration (if use, the entries must be unique) For each given Proxy Mapping `services.proxyMapping[i]`: | **Item** | **Criteria** | diff --git a/doc/appdevguide_docker.md b/doc/appdevguide_docker.md new file mode 100644 index 000000000..8e73f1962 --- /dev/null +++ b/doc/appdevguide_docker.md @@ -0,0 +1,70 @@ +# Document Overview + +This document is part of the Bosch Rexroth ctrlX OS App Development Guideline, and describes specific topics for Apps which are based on the Docker container technology + +Please refer to the App Development Guide for further information about general requirements and checks + +The content of this document may be subject of change in future. + + +# 1. Artifacts / Files + +In addition to a native Ubuntu Core App, a Docker App shall provide the files in this list + +| Files | Description | Value(s) | Optional / Mandatory | +| --- | --- | --- |--- | +| Docker-compose.yml | The docker-compose.yml file contains the configuration and options to run the services required by the snap | docker-compose.yml | Mandatory +| Docker-compose.env | The docker-compose.env file contains the environment variable(s) set to run the snaps | docker-compose.env |Optional | + +# 2. Base Checks + +## 2.1 snapcraft yaml / snap.yaml + +In addition to the checks for snap.yaml which are described [here](appdevguide_basechecks.md), a Docker App has additional elements: + +| Item | Content | Optional / Mandatory | +| --- | --- | --- | +| docker-compose | configuration file | Mandatory | +| docker-volumes | manage app data | Mandatory | + +The mandatory entries must be provided like the following: +```yaml +parts: + docker-compose: + plugin: dump + source: ./docker-compose + organize: + '*': docker-compose/${SNAPCRAFT_PROJECT_NAME}/ +slots: + docker-compose: + interface: content + content: docker-compose + source: + read: + - $SNAP/docker-compose/${SNAPCRAFT_PROJECT_NAME} + docker-volumes: + interface: content + content: docker-volumes + source: + write: + - $SNAP_DATA/docker-volumes/${SNAPCRAFT_PROJECT_NAME} + +``` +## 2.2 docker-compose.yml +| Item | Content | Optional / Mandatory | +| --- | --- | --- | +| version | version of the docker-compose | Mandatory | +| services | information about the docker images, like image name, container name, used ports, required volumes etc. | Mandatory | +| volumes | mounted volumes | Optional | +| ports | described ports are not conflicting with standard/blocked ports. and app uses only described ports | Optional | + + +Note: For example, here you can find information about syntax of a compose file: https://github.com/compose-spec/compose-spec/blob/master/spec.md + +## 2.3 docker-compose.env + +This file is optional and provides all environment variables which are used in the docker-compose.yml + +| Item | Content | Optional / Mandatory | +| --- | --- | --- | +| variables | All variables in docker-compose.yml are provided here | Optional | diff --git a/doc/appdevguide_reserved-interfaces.md b/doc/appdevguide_reserved-interfaces.md index 8ec3a6366..065b1823c 100644 --- a/doc/appdevguide_reserved-interfaces.md +++ b/doc/appdevguide_reserved-interfaces.md @@ -101,7 +101,7 @@ The following ports are blocked and cannot be used by an app. | Reserved by | Reserved ports | | --- | --- | | ctrlX OS | 22, 80, 81, 443, 1338, 1880, 1900, 2069, 2070, 4840, 5355, 5353, 6000, 7878, 8069, 11740, 11741 | -| Other apps | 1884, 2883, 4222, 8000, 8080, 8088, 8142, 8840, 8883, 16620, 16700, 16701, 16800, 16810, 18500, 47808, 48898, 49250-50250, 56090 | +| Other apps | 1884, 2883, 4222, 8000, 8080, 8088, 8142, 8840, 8883, 10123, 16620, 16700, 16701, 16800, 16810, 18500, 47808, 48898, 49250-50250, 56090 | **** **Copyright** diff --git a/doc/appdevguide_systemreport.md b/doc/appdevguide_systemreport.md new file mode 100644 index 000000000..6b8330956 --- /dev/null +++ b/doc/appdevguide_systemreport.md @@ -0,0 +1,76 @@ +This document is part of the Bosch Rexroth ctrlX OS App Development Guideline, and describes how a ctrlX OS App can integrate in the ctrlX OS System Report + +Please refer to the App Development Guide for further information. + +The content of this document may be subject of change in future. + + +# Introduction +The ctrlX OS system report is provided as zip file. ctrlX OS Apps can participate in this mechanism and provide their own log information and other files. +This document describes, which interfaces are available in ctrlX OS to automatically add App specific information to the system report. + +**Note**: This mechanism is available in ctrlX OS 1.20 or higher + +# Integration in the ctrlX OS System Report + +## Information in snapcraft.yaml + +- "**apps**" section: add "package-run" to the slots of your service(s) that will add files to the system report +- "**slots**" section: add the "package-run" sections as described below: + +```yaml + +apps: + ... + my-service: + slots: [..., package-run, ...] + +... + +slots: + ... + package-run: + interface: content + content: package-run + source: + write: + - $SNAP_DATA/package-run/${SNAPCRAFT_PROJECT_NAME} + +``` + +## Files for System Report + +The files, which will be part of the System Report, will be provided in this directory: + +```yaml +$SNAP_DATA/package-run/$SNAP_INSTANCE_NAME/logs +``` +- Access mode for files: 0644 +- Access mode for the directory: 0755 + + +# Example +With +```yaml +$SNAP_INSTANCE_NAME: my-snap +$SNAP_DATA: /var/snap/my-snap/current +``` +and the directory structure + +```yaml +drwxr-xr-x root root /var/snap/my-snap/current +drwxr-xr-x root root /var/snap/my-snap/current/package-run +drwxr-xr-x root root /var/snap/my-snap/current/package-run/my-snap +drwxr-xr-x root root /var/snap/my-snap/current/package-run/my-snap/logs +-rw-r--r-- root root /var/snap/my-snap/current/package-run/my-snap/logs/my-log-file.log +drwxr-xr-x root root /var/snap/my-snap/current/package-run/my-snap/logs/my-dir +-rw-r--r-- root root /var/snap/my-snap/current/package-run/my-snap/logs/my-dir/my-other-file.dat +drwxr-xr-x root root /var/snap/my-snap/current/package-run/my-snap/logs/my-empty-dir +``` +the following files and directories are added to the system report: + +```yaml +my-log-file.log +my-dir/my-other-file.dat +my-empty-dir +``` diff --git a/doc/artifacts.zip b/doc/artifacts.zip new file mode 100644 index 0000000000000000000000000000000000000000..664e3a655ff8b8aaaa2d4f4459899ad3e3f6b4eb GIT binary patch literal 17609 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", + "product": "", "mainDiagnostics": { "": { "text": "", @@ -30,4 +30,4 @@ "version": } } -} \ No newline at end of file +} diff --git a/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_detailed_diag.cpp b/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_detailed_diag.cpp deleted file mode 100644 index 8370441a9..000000000 --- a/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_detailed_diag.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "TEMPLATE_detailed_diag.h" - - -const common::log::diagnosis::DiagnosisElement ::DETAILED_DIAGNOSIS_LIST[] = -{ - { - ::DETAILED_DIAG_, - , - u8"", - // MainDiagRelation: , - }, - { - ::DETAILED_DIAG_, - , - u8"", - // MainDiagRelation: , - }, -}; - -const std::uint32_t ::DETAILED_DIAGNOSIS_LIST_SIZE = sizeof(::DETAILED_DIAGNOSIS_LIST) / sizeof(common::log::diagnosis::DiagnosisElement); \ No newline at end of file diff --git a/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_detailed_diag.h b/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_detailed_diag.h deleted file mode 100644 index 7bbf56ef2..000000000 --- a/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_detailed_diag.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#include "common/log/diagnosis/defs.h" - - -namespace -{ - extern const common::log::diagnosis::DiagnosisElement DETAILED_DIAGNOSIS_LIST[]; - extern const std::uint32_t DETAILED_DIAGNOSIS_LIST_SIZE; - - constexpr std::uint32_t DETAILED_DIAG_ = 0x; - constexpr std::uint32_t DETAILED_DIAG_ = 0x; -} \ No newline at end of file diff --git a/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_main_diag.cpp b/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_main_diag.cpp deleted file mode 100644 index 136a231d7..000000000 --- a/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_main_diag.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include "TEMPLATE_main_diag.h" - - -const common::log::diagnosis::DiagnosisElement ::MAIN_DIAGNOSIS_LIST[] = -{ - { - ::MAIN_DIAG_, - , - u8"", - }, - { - ::MAIN_DIAG_, - , - u8"", - }, -}; - -const std::uint32_t ::MAIN_DIAGNOSIS_LIST_SIZE = sizeof(::MAIN_DIAGNOSIS_LIST) / sizeof(common::log::diagnosis::DiagnosisElement); \ No newline at end of file diff --git a/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_main_diag.h b/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_main_diag.h deleted file mode 100644 index db19125ba..000000000 --- a/doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_main_diag.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#include "common/log/diagnosis/defs.h" - - -namespace -{ - extern const common::log::diagnosis::DiagnosisElement MAIN_DIAGNOSIS_LIST[]; - extern const std::uint32_t MAIN_DIAGNOSIS_LIST_SIZE; - - constexpr std::uint32_t MAIN_DIAG_ = 0x; - constexpr std::uint32_t MAIN_DIAG_ = 0x; -} \ No newline at end of file diff --git a/doc/common.log.diagnosis/diagnosis_templates/readme.md b/doc/common.log.diagnosis/diagnosis_templates/readme.md index 1bd8b1bc9..8d45a4468 100644 --- a/doc/common.log.diagnosis/diagnosis_templates/readme.md +++ b/doc/common.log.diagnosis/diagnosis_templates/readme.md @@ -9,12 +9,13 @@ The reproduction, distribution and utilization of this file as well as the commu without express authorization is prohibited. Offenders will be held liable for the payment of damages. All rights reserved in the event of the grant of a patent, utility model or design. -

- # Introduction -## Some definitions +## Deprecated interfaces +The interfaced IRegistration, IRegistration2 and IRegistration3 are deprecated and should not be used! Use interface IRegistration4 instead! +Cause: The deprecated interfaces does not comply with C++20 and VS2022. Variable arguments are no longer transferred. This may lead to faulty texts in journald and logbook. +## Some definitions For the structure (definition of the individual bits) of the main and detailed diagnostic numbers, please see https://inside-docupedia.bosch.com/confluence/display/EDCA/DIA_Control_Diagnosenummer or the officially provided documentation of the diagnosis system https://docs.automation.boschrexroth.com/welcome/. * Main diagnostic number: * Must always be unambiguous. @@ -29,152 +30,68 @@ For the structure (definition of the individual bits) of the main and detailed d ## Prepare a component the first time for the usage of diagnostic numbers -#### Get diagnostics bundle interfaces +### Get diagnostics bundle interfaces * Add component "common.log.diagnosis" to your component. -#### Handle JSON File for un-/registration of diagnostics + +### Handle JSON File for un-/registration of diagnostics * The file contains all main and detailed diagnostic numbers and texts for the default language (which will also always appear in journald). * Create a JSON file for the diagnostics you want to use: * For Bosch developers: * For Bosch projects/components it is mandatory to use English texts for the default language. * Use the export mechanism of the common database. Details see https://inside-docupedia.bosch.com/confluence/x/dY4ucw. * It is necessary to provide the exported JSON file within your bundle. Therefore adapt your bundle CMakeLists.txt: - @code - celix_bundle_files(${BUNDLEX_NAME} - ${DIAGNOSTICS_FILES_DEPENDENCY_DIR}/public/src/common_log_diagnosis_diagnostics_en-US.json - DESTINATION "resources/diagnostics" - ) - @endcode + + celix_bundle_files(${BUNDLEX_NAME} + ${DIAGNOSTICS_FILES_DEPENDENCY_DIR}/public/src/common_log_diagnosis_diagnostics_en-US.json + DESTINATION "resources/diagnostics" + ) * The path to the JSON file which is needed for un-/registration of the diagnostics is composed of the bundle path (gotten from Celix) and your chosen file location in your provided bundle and your chosen file name, e.g. matching the above definition: - @code - std::string pathToJsonFile = m_bundlePath + "/resources/diagnostics/" + "_diagnostics_en-US.json"; - @endcode + + std::string pathToJsonFile = m_bundlePath + "/resources/diagnostics/" + "_diagnostics_en-US.json"; * For OEMs, partners and customers: * It is recommended to use English texts for the default language. - * The common.log.diagnosis component provides a file ("public/src/diagnosis_templates/TEMPLATE.diagnostics.en-US.json") which can be used as a template for your diagnostics. + * The common.log.diagnosis component provides the file `public/src/diagnosis_templates/TEMPLATE.diagnostics.en-US.json` which can be used as a template for your diagnostics. * The key "product" is optional. * Recommendation for file location in your component: ./private/src/impl/resources/diagnostics/ * It is necessary to provide the JSON file within your bundle. Therefore adapt your bundle CMakeLists.txt: - @code - celix_bundle_files(${BUNDLEX_NAME} - ${CMAKE_SOURCE_DIR}/private/src/impl/resources - DESTINATION "" - ) - @endcode + + celix_bundle_files(${BUNDLEX_NAME} + ${CMAKE_SOURCE_DIR}/private/src/impl/resources + DESTINATION "" + ) * Hints: * Keep in mind: special characters in your json text strings (like backslash or double quotes) have to be escaped by an additional backslash in front of the special character. - * The language identifier has to be part of the file name, e.g. \.en-US.json. Definitions see https://en.wikipedia.org/wiki/Language_localisation#Language_tags_and_codes. - * Recommendation for file name: \_diagnostics_\.json, e.g. "your_component.diagnostics.en-US.json". + * The language identifier has to be part of the file name, e.g. `\.en-US.json`. Definitions see https://en.wikipedia.org/wiki/Language_localisation#Language_tags_and_codes. + * Recommendation for file name: `\_diagnostics_\.json`, e.g. `your_component.diagnostics.en-US.json`. * The path to the JSON file which is needed for un-/registration of the diagnostics is composed of the bundle path (gotten from Celix) and your chosen file location in your provided bundle and your chosen file name, e.g. matching the above definition: - @code - std::string pathToJsonFile = m_bundlePath + "/resources/diagnostics/" + ".diagnostics.en-US.json"; - @endcode -#### Handle declaration of diagnostics in C++ header file -* For sending logs to the diagnosis system, it is necessary to use the main and detailed diagnostic numbers. Therefore, it is recommended to create a header file with the declaration of symbolic constants of all your numbers in it. -* For Bosch developers: use the header file of the export mechanism of the common database. Details see https://inside-docupedia.bosch.com/confluence/x/dY4ucw. -* For OEMs, partners and customers: the common.log.diagnosis component provides a file ("public/src/diagnosis_templates/TEMPLATE.diagnostics.h") which can be used as a template for your diagnostics. + + std::string pathToJsonFile = m_bundlePath + "/resources/diagnostics/" + ".diagnostics.en-US.json"; +### Handle declaration of diagnostics in C++ header file +* For sending logs to the diagnosis system, it is necessary to use the main and detailed diagnostic numbers. Therefore, it is recommended to create a header file with the declaration of symbolic constants of all your numbers in it. + * For Bosch developers: use the header file of the export mechanism of the common database. Details see https://inside-docupedia.bosch.com/confluence/x/dY4ucw. + * For OEMs, partners and customers: the common.log.diagnosis component provides the file `public/src/diagnosis_templates/TEMPLATE.diagnostics.h` which can be used as a template for your diagnostics. -

- -# For Bosch developers of ctrlX CORE +# Adding or changing a diagnostics -## General steps when adding/changing a diagnostics +## For Bosch developers of ctrlX CORE +## General steps when adding or changing a diagnostics In general, when adding/changing a diagnostics the following steps have always to be done. -1. Insert a new diagnostic in the common database +1. Think about the diagnosis text and do the review therefor + * see https://inside-docupedia.bosch.com/confluence/x/cB_GPQ +2. Insert a new diagnostic in the common database * see https://inside-docupedia.bosch.com/confluence/x/u7_yZg -2. Use the export mechanism of the database to get the json file for your component +3. Use the export mechanism of the database to get the json file for your component * https://inside-docupedia.bosch.com/confluence/x/dY4ucw -3. Add/edit the related diagnostics documentation +4. Add/edit the related diagnostics documentation * see https://inside-docupedia.bosch.com/confluence/x/br8jSg -# For OEMs, partners and customers - +## Change a main diagnostics ToDo -

- -# Deprecated interfaces IRegistration and IRegistration2 - -## Prepare a component the first time for the usage of diagnosis numbers - - * Add the component "common.log.diagnosis" in the cdf.xml of your component and do a "reset dependencies". - * Depending if main and/or detailed diagnosis are needed, copy the related .cpp/.h files to the folder "public/src/diagnosis" of your component. - * Change 'TEMPLATE' to the name of the repository/component in small letters: - * in the file names - * in the cpp-file(s): the name of the included header file - * e.g. common_mycomponent_main_diag.h - * Set CMAKE include path for dependency to "common.log.diagnosis/public/include" (recommendation: set include path in file private/src/lib/CMakeLists.txt). - * Set CMAKE include path for dependency to "public/src/diagnosis" of your component (recommendation: set include path in file private/src/lib/CMakeLists.txt). - * Add in CMAKE .cpp files to source files (section SOURCE_FILES) with full path (recommendation: add in private/src/lib/CMakeLists.txt). - * Include one/both header file(s) in the c/cpp-file where diagnosis numbers are used (e.g. \#include "common_mycomponent_main_diag.h"). - * If not done before, continue as usual e.g. with adding the diagnosis library to your component/project and the diagnosis functions to your code. - -## General steps when adding/changing a diagnosis - -In general, when adding/changing a diagnosis the following steps have always to be done. - -1. Think about the diagnosis text and do the review therefor - * see https://inside-docupedia.bosch.com/confluence/x/cB_GPQ - -2. Insert a new diagnosis in the common database - * see https://inside-docupedia.bosch.com/confluence/x/FlmwQg - -3. Use the information of the database and add/change them in the related header file(s) - * [Add a new diagnosis (if diagnoses ARE NOT AVAILABLE in the header file(s))](#link_headline_add_diag_if_not_available) - * [Add a new diagnosis (if diagnoses ARE AVAILABLE in the header file(s))](#link_headline_add_diag_if_available) - * [Change an existing diagnosis](#link_headline_change_diag) - -4. Add/edit the related diagnosis documentation - * see https://inside-docupedia.bosch.com/confluence/display/TDKB/ctrlX-Diagnosen - -## Add a new diagnosis (if diagnoses ARE NOT AVAILABLE in the header file(s)) - -### Add a new main diagnosis - -1. See section [General steps when adding/changing a diagnosis](#link_headline_general_steps). -2. Changes in ..._main_diag.h/.cpp: - * General: all replaces to be done including \<\>. - * Replace \ with the full namespace of your component (e.g. "common::mycomponent") and correct the namespaces in header file manually (has to be separated by brackets instead of "::" ). - * Replace \ with the full 8 digit hexadecimal number of the main diagnosis code (e.g. "080F2345"). - * Replace \ with a text associated with the diagnosis in capital letters (e.g. "SCRIPT_PROCESS" so at the end the constant should look like this: "MAIN_DIAG_SCRIPT_PROCESS"). - * Replace \ with the English description of the main diagnosis. - * Replace \ with the version of the main diagnosis (without ""). -3. Use or delete the templates for a second diagnosis (see \) and sort it by diagnosis number! - -### Add a new detailed diagnosis - -1. See section [General steps when adding/changing a diagnosis](#link_headline_general_steps). -2. Changes in ..._detailed_diag.h/.cpp: - * General: all replaces to be done including \<\>. - * Replace \ with the full namespace of your component (e.g. "common::mycomponent") and correct the namespaces in header file manually (has to be seperated by brackets instead of "::" ). - * Replace \ with the full 8 digit hexadecimal number of the detailed diagnosis code with the sub system id "C" for ctrlX CORE (e.g. 0C0D0001) - * Replace \ with a text associated with the diagnosis in capital letters (e.g. "PROCESS_CREATE" so at the end the constant should look like this: "DETAILED_DIAG_PROCESS_CREATE"). - * Replace \ with the English description of the detailed diagnosis. - * Replace \ with the version of the detailed diagnosis (without ""). - * Replace \ with all related main diagnoses separated by ";" as 8 digit values (see \) in one line (e.g. "080F2345;080F2468,"). -3. Use or delete the templates for a second diagnosis (see \) and sort it by diagnosis number! - -## Add a new diagnosis (if diagnoses ARE AVAILABLE in the header file(s)) - -### Add a new main or detailed diagnosis - -1. See section [General steps when adding/changing a diagnosis](#link_headline_general_steps). -2. General: add the new diagnosis sorted by diagnosis number! -3. Copy and paste the following lines from the related diagnosis template files "TEMPLATE_main_diag.h" or "TEMPLATE_detailed_diag.h". - * Note: e.g. use the "mark"-functionality in Notepad++. - * main diagnosis: all lines including "MAIN_DIAG_1" (including related lines like "{" of the struct). - * detailed diagnosis: all lines including "DETAILED_DIAG_1" (including related lines like "{" of the struct). -4. Continue replacing the keywords as described in section [Add a new diagnosis (if diagnosis ARE NOT AVAILABLE in the header file(s))](#link_headline_add_diag_if_not_available). - -## Change an existing diagnosis - -1. See section [General steps when adding/changing a diagnosis](#link_headline_general_steps). - -### Change a main diagnosis - +## Change a detailed diagnostics ToDo -### Change a detailed diagnosis - +# For OEMs, partners and customers ToDo diff --git a/doc/images/licensing_plclib.png b/doc/images/licensing_plclib.png new file mode 100644 index 0000000000000000000000000000000000000000..74364f953bb292941eae13530102fd0ac18d92aa GIT binary patch literal 26101 zcmbrlc|4T+`#-Mjw5LcaF`1H3CMuL=5-Jo$$U2qOv4a znC}9Ds!ZyYc|BR?+gKf%@{3e%LsTqbc_Phs@5B8Y{{E+Thpc!;jQsQG7yUu~ zk{fdM)*5bKYnXn1KkMiJ{JNC9Iz!*Ma?`KNO_K){>6JhKx->+uj#pk;;@2foW*yiP zSY!LzUl+Aa#+g4K`Rii4Gfjpop7#wetf{X4a}3{R_hg}Y9*X)bn2?43DLSvh(0J85 zG9*OHSJAxHiR>=_y(J~VU17|aMcSZMM})Qh%$K65h6C>@(Ie@8>U?^({%@umfuca`g zORaLnbn(X~Y@gnMGOhI?nF_}hDl&rF z&&_BdZW(kA4Y>YwmM6~=EP5*t9=4v5{Ob58zroIQ;gC|{O70-vpc-cEl5tq5wHnX;o@ z5g$qp&gda~(7x(F*l!E6iHC!>abk@5Hy5cDk^)!1@0)*=z}};O-i{wyQJOb?o@<3t zA0JiseVox9^<8YsrqZ}?GyiN4_sR6wrf}-T`>nBWQ}U7QxrtNIKb)7jaDE|MTM1o2 zn+T0{J)UckHn|%V-E@;#(y?5%A3<`h?9mwHpG@yJzPJm)*Ykn7p0lJ}3MUr!=f^&C z?amrY;V>NgG+KM6PfzHecjQlZycgWU`o(tJSw6>Fzt-5kwxs=aWEkTkas%Q<%pCPbEY3?4%P*^@l(QT}P@rx_7`1Dr0cn?%Dkv1TS%8&|h;N*q)d$74+lCvxB&% z!x|@)gGiUU5N1e!bYQ6Mo0~7O*irlOBQP~-2FErD{!I`6Ke^-#Z8p7V z4e_bt(Hl!bzqPugD&`&-MZ2%Y;L zXCmY|h$QSk2DSxht9aM8Dt$1J@&S4xTpEe>s#{LOod)!Us0PEcW*aVTHM8* zWm{QJleV`va zY=oT4)f|Z6zUw?$MHso0ef5wJ^@Myy?O3=>ok1V#7HHp9WC$&hXFhJm_e48)k8C)5 z0cH(SWizLLxDU&jTs(foVq485|--Q*fIdSK?DJhc$bhRGorL9Rl zWQ*o|D(lZC>orx)ZXbAEO@|}B#qXK3kXo1#yhSuZPX55!ov4i~8;Cms1 z@HU?DfshpbQpiDVegRpqt5Q@9$RVHKo}?2^F|XxSC5Y-0Tb|X?`pGYFeU;J8Ojy#= zdj~3yb^~W1^TKx8bqM!LTe(6n8|Syi&7Avm`i*{&#xY;1gvpV78>sGuJtyNvujSF3 zU3A;#)2y|qu*jRWFAKF^=C4VZpO*yXdpxP=5Zt?9uR(mZ$3$hYFG^yayN#7n|)q z9oIxxgtxb4LxV3Y@H7Lq-NI&4zl>>RF)QP&@QOq1a&H>)!V9Dp^Yh~Mkq6;Ts5Kf^ zsr4G=-WU2^&umZXccgQORw3>rFLWI(aoT@;fwZO$)xz(igkCRUWbrmBBJP1a-QF+? zQdlD=az&k$!*-#wH*bx^aR#z3=T)K1GG|W)*3TCvy&bpAnoxS0_=R8Zc~^>+a;F@m z*wkXj-_7eyw!A6M0F}EQ7b}+W7F8z^T($6fO`w zGl;Y@J5DaW2K(gus#`oFs@HfUpHP%O?Z~LH4o!d7T25=tr(ZdrY+1ihlX$)|)HUg| zn+>g$WzBkhxMFz5JZu|1;JGkOUI2G*dXYPGs(4((d*GB8J8x``_h#?}XG`3NiMGmC z;m{=Q>gFl|%;VTrV!w<5gHeGwlHzi38oy_}(bnhZCC-rU)8hpQS`fhN63%XwMSH<`IVvcklMu0(Hq?YPnE&JX&!oJwfj zyMEa(&!M3Sv4M|e|0)1I-dm#e46kOhZX4}Wp|@#=@BWOo+ih{eZb)oH zZo%p{lxmpLH;z94TDHb;d&3t1^eslSbqizPfHMjq|6dm4<_z6pYU9MgE{{ui98{s7W z@Y5C48R;D%!zJiSAoHRG60eYST4y`g&2RF&0^h z==qOOt0W}8>O@A0KSBi`N9JWw^RkhG`kyj2WR)yO>uE|#NZi%i&gJ~Vz!6Q^#T3U| zsH4EL*9{^Cyq`!p(kNS%1%ifq`7oJYjOOn*av^_~q$2+@? z|K$YRT3}aoAaPMXApn4i2@Ic+>CSxi){5gtu@?kx2b%pqxrT$tJ33U@@#wl|Pa0rL z-eyqgo=KFB$_sFNmKg5W3u<4b)ove2xNcV(ic>x-awy}sTnH%oC>%bChnywiBPI$L zu8m&`M1BcVN_xzK6)dg8lGGscCTZMng^= z<%QPW^!!9c>Oc++il-+BaY0D znr1fc<$k#A?QJ1D*%bkU$Tx4yu+k$b$KE~EJBsxogSv`M2Mn4@QvGASGhHk6pZdVf zpa+sBNxH?{W;EW}E?@uD9}<%$rgReLt?$;S?V%^)C2<CgH79AP!Bic zhm2MxOziKQJ87mL#C3IiP?YX*VBELF+x;M{@0&U-#A#30<-B9}wL@w^MjQg*+bdER>pD1DX^_6;1!czO7xWgVH-s9! zT!EEg5$dmtBj@B~?A5`Xmt0lN6r2`jagE(>^ZwbC6ibj}XgZZ~FeAj^s(xLKOwQYC z+_T|l<<6;-7jURN@xXlKIL9<{7bgD_-kQ;PI!3rOJ|;31Zkgo^FoHqraNM0tI6yOS!-IU9f+OkA$M7L-%B>Ze1Ge%>vEuz!Fq z{Gnkys&vrVKteEWM`{sS*vF%T5m+J^qE`9QN)dE$Q2W+V_`?fV`twb06Nm=6n(o+g z*KzBLqsAI9G;NP5IUcfjdt~nHNS0=8gu-knQd4k}gkz73+^ zTwgl&6)XKBvCTY%s)x%zferFPh&Mef-t;}l`cx9R60=k=L;8!F(PivMmJ$GSBgZaKo^hq<^}GKdFm8}V4X?$@1JZ1_hfZ=;@~ELj;it*o2^p`t zT;c_V(2GV^khUChkNCtkM-n4pq!-zRe$tZeHZI(^oX2K?IpZbYwIsd{?dHb`o&y^> zPam&1ORBub+?b8&E$rKk>5C4S_ZvA^A6Ge`I=9*SJtEktImpC z>O@A53N8C!s;*0YgGCxAQ7YJk&KG*;2K~PKnTl>YcCp;lC`Rn8nNn(yPg!}gL*0$8 zEH=ees8>3^)kj8OfBkSAA)KmQ=S`KLxns`ZLbwbzty=}zW*NQeeT`pf+OQi=%_Gq9 zuI9e3?wN~~G}5k9D%+@26aEg75ekL1A<7bK%j98_ZFt3^$8Z0- zBEt;%$8*bUjwrNUkxl?+W zJhH;Cbsz-IVIXmapw6R0X#)=dIB7Aix3giP6qe~2Kv#wPEwg|mblA$8} zG$Y09KslbTIy&XiF7frqsU*rr(ZA$&-SMREDFq*Q#rR_9p85SRe6YLX_Cx*Glw?NI zHLn#x4szy4yT)Zdbe6hyIv;R#dtA-n_d+1<6`Dsa9@^9-cEtAFY?@QLJblv5j5|v( zeLWvE&Ph3~n2~9jO&)87GnQuBmoO8y$2jGsu#8FL8`v~-ziokUI82IhZ}gQdNnI|e zs#;p26lDf2OE|EDo&JtoqPySQ>RW?^M7sRHvYx9(e4pC9#$!{~wuC4(;^MsZsv4(1 zkd45vwEy+1u_Lzhj;-;HUP-0z91vP5JP^W7U04;g+Dd`OIWM}14;ayx`ir>RYy2Q2;-J=Nhn^|M2Bd$<0Vws1@#VRB|zOp z%V=>mmn7n&d_~{UqSrM-UvV2lOhyUFmsbPpG@YRXXrZ_9jV;||RLp^iPd4HXhW9iU z+TmW3gjABZXjvI*I05|T(8CoGi(+ivQd-Rj8w3z2$|s!L+R+99{yQN{T6SZzw}V+& z1Ehy&!dKMvwtHnqIzP8jd#xv$;G_isL!cF|W0R!iC(>My=tqRQPq<+0@(LsQ^j~s} z>&}B&K1w4+O)(U)V3PEwDEC~?QgL%qsAV|?HurKk_q6HPMdt}`U~B2y zjTHdA<)#QEx3=wiju=pwLdh zy;EDCU$Gs7YloAl*6x4^*HyM7BqZ(!`mtmX@!S&94sJ&94#W~Nn3J)*Q_NydV5!^V z#c;6*`q(N^GoC~(XdT{cg=3$~iN$-lu&N#^Y;F(~IK9SILU$Hc0+RiR+z$}D5;He# z)L3E;X{1&&*CtpVyK-J)nvj3_jfL+z{aNPQV*G}B?=DRZ$p-HV8WKWmW8Q-0&(t~{ zE?H5`eb*=fb#hU^t$|&oI2j!b&)}hi>a*0esU!4W!Y_Tvv7R(Yau7?0i+m;HS%|3h{<29pQ z_FUTq4DqX>1_oA3uevRMO^G09rN>x>1Lt<0z6?eUzbX7S);eKUN8{L4CC%2pemg`B zlX|iU&U20;Fv4sEjKV^7+y%Iw$w*O7nwBQ_XgRZfqp&|Z3{|95(mtsVy8=p=YwQad zQU#3RKKmAMbWqVF=v^?(;Ypt&SS;Y3P6Yh*zT&PO2t)I?E~)B8Yso1G8`XKEumtO< zViz@{vyLA~n(NRo&roBn3Ao9QbJ=)B&-8i1L`!Wma44;9ez-;4F_^|!Od%%94o!0VmShZA}Tsry3n78;N5AFofL+)-Y)Hp#YD z>iR>9B&Y7)!&fgsz-b4U0)7hkt3+IfKbR)lrvk=}S9xZG98NDuaWfOEVxz*C2hSD| z$D+atpg_!ezj%G+=hw%M9AcSm&;Fcjo1&a`up*{-xY3wsmv@j`1PJlo@5b*R9blQ= zre3&NgY!}~^LNxY{5sgh-?kH>+xu!Qgd>jtBE@wzKmd_wk!mjx(!@x18CG~C2RPC9 z2K!+2^I+-QN0&1qr_JZ;9`}yd94-yvKr8ZRA~jL3DOK@w!d22`&+JN)o^mZDfq3pd z@N7MM+cGd@)W`2E3WfdzC}iLJQn0TrWt~!b-DkCahxW}ka;>pjzMGg5mt?qBx73(V zYW$|wcuTfLHOBz=d!ZYRMPp=io449<#q))|84a|T-*KJz{t^cuu^dZkG#;UNpEK-i zl}d%ZVrJj<->>Pwd;o^HU6f1UF$VX#JLX3m?s@imC6`-uT){KipW@oq>7K<1NswS{ zHFy#kh5j-b1ph(^p095fxabX?z+kl7jQVFal6_Ls#Jjr(^-N$u6fZiJO!1A-SOtWg zV5eQO+-fs*-*7+2o8P6l2U$y1!*BQvyA!w(X|4Av9Y$GsHbY9r#42W1O%1^-hif`Z zCD$NAC-l!g|PaQ1MoJ;C*go8b*+xaZeGdh`EGvk7@6RW2zEkJ zaQyN?);B!cUprK|RANj#*cW#Y4}Uvb6{r&``A|*H;{LPcXBkToNCoc~AZg zBs;K|m(tSQUmvwmaSlFSD}*xyxd52>aqxGtd<6zII_EeWyNJvPC~uaD$Xl}ohH?LS%?HJR72Vf$zU+J_Yg@Sp`d~azOe%69M)Hp}A_?+JW5D$Ma z9UwX%0@XSULZDD(v~|d}jP}KftjG4mnat@yMs#V0Gz7;?xf(H8JR!+Cz0S*>T0vrMlADFK!ADu2=Iv&oK!^F3}%;V z!fKC@cD;bL01)bo{BOu`^Jgehko^7e_OFlYe|>!S6WRIw+Qo2th%UXy~7dN1EH zRPODDaPD*)gzuO++H)oQ;HV$%vP1uoB*@}M2??#OzqKU`l>3PvCLo!!rOz z^~!LK1c221!9c}KlJ`q^A7gAL57|8lz=i42Hwb$Y(;H-i^>iFOhQ=Ow#O4IDS* z(>;AR_#3Kgl3h=+cQZbIX0Kg*#n+zS(6RN}`stHnGj?{3sMc`tXHp#i#})@&+Gl2_ zSmPbqj^}0jm}irddHm*vzQ2rM=NA!{r&q;9hwX&N2c6o@vKtlhmyWByg+$_`_@P)| z-*}v$9|n<{emFrFmwLTxP(q0fgl+xX!Wf z>$SZ56p-wW!1!ft-;onI7%9jPg(_6&*p9IG14X7Vzk_|3HU`jZY|lT-3g43Zr0phR z{aL`{Qz5=fBl%zFHFqy7JkB%@%O$c|V(GUr*)9KeTTh!PM^^U^o9!0zu+)#?y5o7oSg zEYSkTpAb3xom#6Tu9qEAVL^J_FjH%;FDf1{`ubR}M>1gg(Mz8WXn4W&cY{x+gFS4| zs?tQ;NGE*_9HT2R;3%hpj}yOc!@NDwyuRbb+9t^=$nbh=J6~1VoNC4+Du|cv9PPon z4JsZ>VMO>>$+uP^+grGjl#+1as=+oJ)qL_Um3^D}tL&GQavD!1PPQ zOHZ6^M}M98`ljZEo>2$qGjouw1`HJN?zvagvV=x~J)b+)q4w4G#k1ImCQmO$f5oj1 z!{NzUoo5|10{}BA4f!@(p82=X`;_T`J5*J5Qypzn%XTe;AZ14=rL?%h5ra-kQquGf z6{MF-XaJ$4){EwWTrF|`Qdv5sQ1a3@qa6NUIR+j$2ENWgM^#Wn{U$jIqXVDO<7gny>}KB zyD-g@Cweb-s;9k`51J%a!-Irz6YDV!!D0SFumF` zv1MOZ^4xNo2;cw*NBK693j)oZaW@9rJ6VVpEJpS1T`zNTortiAW^+NQlluS4LkZ?g zlNPrpNRJDmEb~PmOn)`T^v+0{Ek644Jp$l$)?Zt?hDxywl;!7A3@%QK*5!l=j^%?U zA4|s9W^~)JAH2)$Q`Wb%2jzGLJEiKPJwE0Zobojl1~IyC8M^ZH?(Lh*Q7Jw3nH%Dk zxHh)(t|>Ual?$SSclu=XlzS#n&l^KjL-@Z0=A@gEa)BHzBM zBzeh#{BC%_#Sm(btJFmHf}WI@e)Kogl1HYK!$^>}9fx}_wzsgWrF7Y&s^{ z@wNn|)>xYSZ601vtw=rZg3?OfxWFo$mo&hZl{D|Jcda9x4u?*#*n|0(xJ!r)h1cR` zjVIjPi1+Nnj~*l?>Y`XlEcNOIc?k&xY=9Kv1L|EI^GUAc<)agi9K3L}%CNf&feT&r z5pO^D+VBIw=cSND@a(ixLZN1Xylgaq(yG5?h zQq)qNYw?8F51px+qsOk|=|q1rBctY1SF3U>}WU2vSzxfu406RVHAL`@nCTG0~#-R_gehKyatrd5#=R-CED z5bwg;Q1?p95PZKf_iOK5XkVTUG*QMNB`<^z(oyCVc+YtAZ|Ek;rR(-QHMb7jdRctT zm*>ULr(zTGC=+KUXOgZ+9qUfcI;~}Wd*Pa~m*YT?c=!1b&Uq*9SzRTkkr!9FHG6#Q zmb|O6xx%w0{=a~ZK7ya)r%&R zK!)6!B0?G`Z@+I3y!Ec_v4W+$mvGYOZQb5F!5hd6TYdG1^bF2kxzu@rdhGn}qTjG8 z0yucbUejw+YcjZh?P6Dxr;RYwZJon2n8E`STS2#7L296pFkxQi7Hi8z#Q|u$!6!HN zEA~0T`uEdA1DfhbD{oL|3@$F(F4jlb_mtf)IM5A(5<*P3A@`ha%3>^J+2y*Cl?o3) z5;k(rI3|#jIXI=lvU^8X-`+MG&|Zmcy2Be9F9hYgfSg}?rE#|e-lNJ73nmz!rY9dG zI^tYo)MP7Tyf2+Pw1#}R@W8%=ZqXSi(xK@1zRASCeVZ}bK9c+LU0&v1_5J=x-t~3W zy(6LSZ@jd`Mq`j3&;)Miw)usQCQMs)KFaB%AP<>Tl3F_(;GSs3)d@c?JHQ_J#=nZi zvHUO^-PpdMbYk4JU~c0t963p_rGH!xUHZ@xR^9oUcP~`rCoJY5NcSAQ`K6sMvkCPT zx(g4Egnf^JlQ9=S3$yFbqQ%$U*+C1u;TcE4e${WxZg1$lJf4ky@kpZW?!s)^9p`ph z1~gIrbdx(?Ep6i1rvkaqlDKQ6gyPI~Q zqj1Mj#q=v_vcttFA%ka!G+1AYI`E)H!<5q}+RB-5%FX5F7H1(cxBb>qKUkdO2WoEt zUDvlZ_`K%*=^x_ELaVKJ&;E3xew|3cy`dJ18z&0^R_Pk#c18DFFVG#%&aeGI!EYc; z4vXXrB>_~z*DynR{&N`59)R!HjxToJwH^EBWZxD|h{QK;6bki!Hf1ILsehp1g8re( zPUp?0xG$!Hw^1V1x)}LF4uJoye-~Ug!I09CFj13lIcnIAs*G1P1VrSx z(v^C-NMH%I-()EOBol)+#=CO)Q(gJ@29R5KuqMJM#THpI;flqd`Y3e1PoL9cZ{_*a z6xvDrVfM;)^fZ2>{A$XK&D?H(`??}ZAH~E4W($kb!U<&JX$-nwsuR(q*UiR7`31_qB>k_d7``#yvhYVw4`)Bm2n<2>DDmLlRGvQ|^ZkIe zzv`sl;CBatt2QqZ^7mkRWgCVYgmoR-sw}^8CtN1L#;c>dBi;j5c*t)W`W5)U7PI(r z1ONV9j>2O=w%#@Wlvlyl_+XW~t){q=B1#NKa%i@AKTlm;Y_n+l9j@{X;3|%!ZwC~q zbNruT>pxbfd9;d=uXH_^AllR5kh8X5Z5)(^eo7k*OruJ5H<0`JL!iI z{!?`qYKq=jZf%C%Yc>EL@RR!Wbd^zKJ){tdK4H{baZl(Nf8Z~d|E?Q<2mcikbcO%6 z|CI}VpYRH=CE>O2SB3ZAOVO2vL6>iH#Mj~lVCjh8#aIup_iD%V&otTrHt_ZOAG^U~ zPGR8$P$QxtFfCZbLL+y%v?jd5YX(ND^>GQ`A_x5J{4I@m@$$TD0M!hB^kCgN<@u^Z zyutp>!oD0C_JW1MPI~CMG+!*7kN+H)Y!Q@b;niRx)Ux0v z0hN`G`7RmmVTKf|=^zS<Ny8hzY)hika1V}WIT;CJ?ea7DG`8jEw9j z??6;^3c^O7utSuH(%)O6Rvq|g;@-z76r`rx@u(a(v6d&M7ybfgd9Qn7>xzC($HWkd z-kVe85{epP8kFP3f@gfw(_9fjgs-NMwYztxUSm4s%BtX;d{9-M>J1d}?Zr^r@V z3t6YkN}mDdV1o4ePTT!+mdGDN6=UXrG9(ti9tOi?CN%zdTyZr&d0J)EamMb&UA)vt zRG`#is&`xr;SFF{*Ckh!I|pX44jn=%jgU~#u}a=Ro5;qPHW=0i$b9ZyO>pxs~ zO8E+!lc=yXxWmu4QDl)jbJ{twoUgV<;0pNM$5RCq$z-)6TRV1#G*`4V&yQzyc$FPu z^=OqP0QM;{2C$3ZdEXI&y9+6tF)9+->SrplN=FU0YtURH39wTT*iCHZ+t(O{8D!i; z%AKiQE1@IqV~I(4a>};oFvCRIom`})LbtKYVN}G(d6WQH)D2*4{s}3524D~bF4=iB z^29|jo+*`oB9s02`M!e za$wHSINoxnZ@FEXHn5{~fWm&vKg!)mv7|($ zz$X$gcxPC*IXaZ_I4LmAZqkoGW=25IN}+&7^mXDWo)41VS-r_|0>2%!TkCXq<3hZ# zOU%Oer5=zGT_%7HC@1|Yef(UI_471(bM6v&ytLln9&Try?*!4d3u3o%slN*t=x>%_SWG@;3({Q>;YAz!RXU)Y!S~lUJZw)5CD21*j zK)!b`WL69+ST9bEl_}8VN1Yv%_6$XYw|d3DNmTJlDQyWq%DY??D$xo_-uqwb^{3p}?=d0}aZ zvO@Q*`u+9)85Y<53g1A_j1t1;%8|Z^0x>;>3`vl|GI^bGJ6{Tv-NBf9g_s|GlCZMJ z-M@23OiY-Q5~;fS0#(WgLs5<=kr=ka%1vIWsA_k0i0{jYcT)85sP)3<=oM z3tt%rx^w3KiKB3DIfu@=M={Ug59bT=@#xkGbIB#{h^Q@qHu9XL>1^!9wE5^0$EoEPQ{@4TZ2Y;M;-+5mc4Y1+Oo z`*1LPHHl<{z7t6(s+KhVw3LGB4UPRgb1%)VvJebfN0bf$w3z!FRon!Fd_80#xmAi& zC)+LPR1$tcDTo^vx@>{ZQQiSsk%C3^TK3TgY~bNPHULqiJ-|K`JWi+7#0*zu{AC$+ zrz2B-shFd3w77x)nRQfc#vS%N0E>I)fz7g584ft|`w)QP0RIDc70M+Ry)!i4-~I-6 z?+euT7s9f$KK^z)!vM+1zpd!s3+KWtyB@qw+Z!G2nl%#ltsksd`%g;yr`7-d__q_R zw4)@7Hm|fvB(#3>(0^m&6?3lr-AentBcQc8RYf<79bQ4j5={fi6x1+5peb&AS!f4~ zC{IR1(h7gJf!{g1dJq+e!lFwbdhGgXEC5MVV*A>t@ARKkbx=$6K@g2ZUk`cUSoHu9 zBkNbClSLw(Uty@XUDsW~47(5=^zK>RBnnx2i@skm1GM4-!Gi!j^>eP#ajN)9PT%)~ zqF!TE(nw=m&&pX9c$v^MQo^~VHm)D>Gd_*{TVR+yf`-pfGWS|83#!|CtbWz z%RfFq)%W|4V3v0yec-ZfF|v^Km3G|wW7O>k5-VJ&?$!HlbhgqlEAYlr6%|K6c;Au< zdj)E(h<{wI&MJwW%TD0mV<{H3=Z9o3@P&OHMzFz3|Bbk$m{O5dF15T`h9@=iS=sp0 zweyp^fvw&4i$@pIS!Y32N>A0}Ex{-h^=++X?0}{i7>vl%&IVw75b%6Gn_e*M%1+l$ z;OM2Iq(vuDnGE|d?#iFXH%i`=f1*_waE6|J*Di-v0lT<)JkiN>BM!5f+r4`@=(Vym z0@-uc95XS~N*){sj-PzvN<6w#UD0ZKLfBE2|X}%J9mGc zNpsN#-gkhFx3`pnr6qf#Bg4#4o~!}?5IihD>4$^9e!LyB$DMVp4@U0zQceJD8}hq; zL99t8Nv%xl`MDzvhb|4#_+db>!v3h1x8&X3(WsZV*^fFAsMtBzh-Ct&_P(>ogf2-o zzkR6K&}&>+4f$?1DvnDQ4+(%&@!`?B^W!FL@Lu%;;oq5dKPi<|vs+)nIM|xda zi9fyVH^H!aVX|N?U72p&?mSCmtVNpXg)VxDoM%j`yX?oE1M*GkSj)xUYMD=nLyTIz zIbDvkgF{xwVB}ADV}4{M(%;++#*PF;nT+;@Gy3WQhkoyR*D4+(H*m?&=Y=w6Bqp(S z6Tkbpzz8!7F{|AO-0~jrt5;WhtudOgUlXFn&TVCRDspq3w$`m4X`EMg?^EN1O# zch>Inc7TlvI(j&$Am3L%7GVtjXaObi$kJ^*OD!Ff4Y9b_U+^KiX6-nOX;Bk zAzMmr+V&x{6^7@|R>@7M=hXzUkbVZv`Wo2c1F=_%gCeI~ii8@USa-%iIz+4dy=+2) zDxwZCFh7~pilVSrNm$hXu2gs9)quPz5&MV&ia6}4aa-dcS?S^XsU+TG^O;)?kIP#z zxbJg~mtn`_wWaLs-8)kINkzr`M-9)_-G>VUsD@qv?ws*3@g^iAW8a2xC+Zutk7G=z zmt!C8W?al6=()T)LskiyQCz%HIr0zQI*G|v4`8Nl=%~eaCNqBJB-Wgvqd&d?V{NlH z7goMVj=Fm&*LGp?`Wwm&IU%)|l==NlrPoWBtVOo%H2?XJz4n!3o$UCwONZ@r&Yd#A z`rx$h}YsDHN1oxunKB7r*O;OLoGtqqNW_L{`^!25^SF zhrnJB+AB_I7*>N#31O*DAwmPHY}B=-g`Sa3Mx*%$wWUApiCx0&=S!Oyc;_Rc#*VQ8 z1F;FHz)&_DPPjTZa=*t2J`Zs^ucit8tuyUj1Y)HG)Jgi=4KRZ`%04QSBcJA2oTSpt5JXWVMwWVfqtV~n9WY-=m{22Xb zP9;tA3SGJHPU>gUh||`bt)?ZdGoAk5Dgw8()Bd7(hRF#FxAMTu8I{e!D82bp^I9k$ zokNj=>sa800U&JvReR{8&HoN{iv}N6{cJ5SX>Q&U1?!EAr!?2=WTA5B*M6y# zDxNG#nW$tFr%yd2yAdglQR*8)|GGEiM4Jt(skEW3Ht@xhv`Lkc>zuGX!4lVHeh;BE zp8L;3C}q2)I<1?hyMvTyuV+C!=<*U@P482%(k=u-qUpVdHam6CA7)_6rL}ig6|S+UIL&-UC&&af3_rRX8wDZYDoCo z@I8D5Tapp)64k}&B&xdR;#lEi=$}4=wYBD7)zqeIE$!tE!VoG{20l`FiU05`)u5W; za}lpg%P$^jxptN|CTb1JEHlUx3oADNDUdC5e!{0rK8qWygrbFYX0QmswYX zKD&W;e!GxQy z5-0n=Jx>z6J1rJ6Q8eb7`!?@@sRTb+cZ}@zeVYLt~&FoJ66?K zoye7TPu&6ui#?I#>r;yoUsL{%9NTO>!mz_o`dZc#-oww*j4)~yHfCz$)bn)bn)+)V zKd1Xa?tKqFuaQXK^ozgyUn$hd!~pLVcE-w?c$WKk)>mm!bD-1^Bj=%JE?3=vG~+J! z(=A=+#d*ZTe6TDyUayVLWw6sNm zoh$c2hK2ZJt(Ip%Q*`b1)+VHNOChSaV14&!Iw z0+&9ertwx9TZ0bwWPV?y>Q+zQKy3p=XpcyUCJa%0Hu)zI`20}iUt|K%;|ulBP6hz) zH3{SJT(EDr=BJIdd&$)lPeS(rCV<$l|2q|Wa>4AbY%6Tgxvm*V#_v~qxzOz{n9|qP z{hSl5{UqjfG<3Or`eOy0;o0U>X7M!~Zq| zy+F@ZNIE~*^#Wi7@}K;jwACIIx0LVjH*7AJnXyPl*1WhpX~j%c{S*@!=1l}JGW{QJ zR*7l$IDlpT75@V<17=ndK9M#3P|wF*64wr2mgW`>w_H0EMYzt30OqmNCI3#n;TtzP*gcC@VbbH~V*oTZ|D6n; zUHC7_;GL#wA=SKj>iGuCq+88Z9nBF)!;w`h^N4_zyi*5il2BXwv+9Ky8SdU1%1rCD z+LwtW5}1Y0(91Nmyy*4>FEjQ|ocH$l+h|?)xUmiVQ8z|O+!3^k3MOPMyk@Nk=t#^~ zLKrV<=j?hh*IcAnr=3A&$WJZg62?pCKVeHsE-%G*1NKZmj~qLO^qD+8orEdJ5RQ%VVl%)#G;+UImr2A4v0HiH7GDt2f?yl5(rVYPN0v@>T zB6ZK{wnY=z$>%*+rm~MRD<7rfrFTsG6+lZ#g(sMpP`#4jYa}YIt;;#|)2J&z(1mU1 z2K?o3hm2DGQRbVAZ3W6wq5Urwr&TUNkQ6Ky31iJ?Hjny@ibf`>!28i@cPy>eM+;vA@x*5o?g!Gg@FdxcKM58Z- z+o9WCEw6v_t`g#B+NH_^vYASNd84<2QQKl;aIhX?5LY1MZ`am}R-7LW#3P4$rS8Is zl2eL|@xsE(?Nwvb*3@{MjRDf0L??Mr;qY!W-+9(lP z2ikpt?ohvQHdpGW<^7KHC9q;&-9T&I|4*!cwVy>+B%&KrB4iPc5ym@hA*77{TE@lK z5yl2)LCVwibx9$FYy6`$qQ^&0O^~J{R3mG~kC89E)&Mq}=9_)u9Lj%xGhPlmw^`zS z<+Uf2*8jP>~o z{VcB1yz_Dh4~(58@%*DHOXO3R=)<-n&>RH`txp~+X;?yGy|GB=;D;?5=;O}ub_>Sg z??zm46vr@O1#z{6Uf|Enx>BaCSszW1UMeP-Q;p~`?lm@2$GlNxU zZMUktK@^!oEv?1X2`e<7CdlOaOGr5W?EeAn>z@?ePlgg8?*LGwdR#+|2)q;eWY1cO z{#`%+47`T4Qd|Fe=jiuj>Q55z??&NIY7ZDpg~~2Ce?|UadjRdm)hh(`N_+g&_Jam| z(+WXV7o(#=e%(@n&#-0FDv9@}|9R*(dZ&UPOM$Kc+;aaHdFi*}@a14!FnrkAAEL=z zE2ymrSAcw28ppW=z7*SbUPaCs-!DFpuJ?ma_$1rCT=b$zez{k<0M8hZW;CN){qw-sRF?`5QnbQ0^ztqKJNtzDlNxilKG&t@J9e3lz- zk0gF#o$k&+0IL7br0>=#Gzori*NPGJ0*?VlF`1u5)aZIX_&=27>Lr|9;SV6J7NFG{}z?$RXL^Kz9teXZbTcaZMVCs8xJi zTLnCU^2;UwX%wy*E>c=-6bc!9PJ5tJ$3QqKT_FHp4i4D<@@x4_D@^1PF1E}S7i&5} ziZyxpU1H(7&Q=%N8|!U*^KOwLezhaseTGEjPfXp1Y?^3q0c_dNOb77Jt)fh6p<&;C zBmJs1d*z-j(!sO68bBL+O?}y*mcDFGnUG&SJ5_XILvPe7j2Rxar9gt#ek%PV=bVAk zq4=Y;r^zwP>Tuw2-~V(3jZfkB)1iKG%AUTgX!-%?Nqo$LiuD$>bA2kt{p-giKN(2v z6KdaSFi=_yn*G^67f?`_uyNf&ka-l7RAk=FVKzC~D=aR_owvv2M%f1~)@=RAL#{Vz zHi|@KG6aox9a2XD_&i?M{wi*3e^s{4Vf61U;aykq*M{u{`WENPQsU#|du4&AaJHAa zUB$xP_@7^F{;y|MEWCDeT^15O_nqBO9pA@-kPtVPDYS3PkLq}N)=f21QjrVTT!3Jqhk!I>_GhrDX+Mcinh{#BW^X4<7i1G1ou?7kM zEPE)1ioFucf1`+Wdm&V5@a&oRrI38c+Npqa`YD~fX8k`JM$wW1`0SoTpzfbJo-GIn zc?CP0Y?0Bi+&57F)Gl5&EAO6#V3XoSy7a=Z$#u-p9%)|5k7f1F&BA=b#t8S#MY97F zMR`$gB}J8JrP}-0{#0BM0L2g;+d!%kTu;YNoyb&4 zu*{V+YqwCogD751HmV|Y&Bb(#y-1zOG@1+)Wsy40ok3MV>ObA<=|>S6{uihF>reeL z4!t|=YA{_%()6$nTQznW)EuyTrl|pXuw7>Z!~~N2KLN^T-+p39h==cfey?1{)KT)R zuS7;u%4dxO@0M=MWkxXlI7KIEddmwLA$06lG&aB|cXTGV_U-2HQK6iRG7#0xM>xjV z?^P%w&_cBP&UQHaDU(_vEp5CEa#b8rQs{^{#6Io?$Hu_E+u%zBDx)l&`DK%jCHk8Eczw}RA7RmstifK;*Z{6 zXsS+!rk_H|Qj?32Q}wzNG5_B}!L8qKDYETO)EzT6cu0j4aoHVnpKHDu+0>QFS6;H} zJrgP6$hk!3oHNMp2{jw?s&;D&pzsCqC$+lID)Bxk>=CSnctxg0uDZMPX19JhK5jPd|=0K0R0XOoTxbdld zsRhS+!6HRGmaAGzp!l6&w)(-gSLwcCV$7*S(kpV6qgLK&JaE`oFoc=N<^!$lK+5mY zo$#aN!_22|k~YqG78P|dI=#+rj`Yah;onBUU!_G{#{fXt0hp$;9b$VDH$F}Mqf^LG zMz66K`9E*S)9Co2Mfueg>WQ1|sC8G|A!@%xRD`|#w=*1(J7dGU{w8blgq@0_`yWbn z2@j&uFjDHjE!iCk-ljDGZ|UIy$CVcA+4PCge1u>y`y4i9w)y1cDeup#j2u3?fb}>3 z5GX&=-kd7Lsy)<(IC;wnhz-U05*7YIwBlk#DT=9_M1P2pzP_gDvAu7ye+7nwjmRr` zwe7lIFsP$sc;r~K`sb8`x#-Abo_Xc{Gt=5ttH;O7^d6ojmXV8VD`%OtGO@azlL8QF z(5t{5aNM)0PWP?s386RVmi#GRytF22wBRmYARD0^L?}vjFo9-K8J8Ec@xzrU`Ghrd zAxcKk$7FMAmqKESN915Bqwg8N5^Wh>ZR6Rlslv2BbSt(di9U1UWq6(28b z(1RLW##vc-!eN0Uqyb3zfQoEN!_4e=HLE+I0ML%dO7mV$a9ouO;6Xx=6@ViC!OXJ~ zKa50=`jkt4C@AQisadvM$j-!A_&vSmO+X{&;~x>+AY(A}y2YG=zK(j=htITN7{QunM;lL7geFm+`SdlJsw^7_4=5xVCSOE5s>?F?y;xe6{*_# zaWU}KzO=*dE>de|ERKbW6Zn+s(oWt~dv`A7RY#1T*<_`aiGXYI>c${tHB^*EWtCWJ z)IJmDX-<#oCWk1z*2Y9v&EbYAEK=88;L-AdOg^+h1NB>SYf*Z2^_7$?f)eSy) zh{JqAFIWe{QS(i-UGbz05%ie0^fB}Yb#jR9^n}OYENJtdsdP|@fX+VgHnfEZ6X7IN zX){MbJ_OVDfDeJ(4|8`I@Pf-GFH#=g_$n5hb!4rR^d!Seonowr!Y13I0}`#FhLWza zsa5yYZ?=F7N$@^WO4y7HiuH6(DgS-1WdWbF)ywp#%>hycEpVkxWgJkD2e*DSxYvC(u^0zx^8+Vl8h=lkL`8L>$4E#!OzXb_QJD z^{8y5l4bQZ=M{U?r$;JZWr-VW84Uv+;SD+?U{`y^jG(%Uzcu9%KT?r{oPfEx!mR$2 z73}dk{h3VIV*MwoD%SerWqnIm1ydS*7W)bP4q|H1)&p%0Vbe&kLi#D*W_`RHKtO9aB&E1ddbe|@~C0yfgAK)(&M*KhTyTjZ$96ev#><5wp^0ZQ2e|}8!#LE#R zt?HC6tTYZ{hgs3VkRo=y`9)Ii;_fQ6xQul)xe0Kt*-!6n^8CT;`nPfqYC%yL^lAsz z{^#9kv)~1>PQR3X6ETF5ZTq5w5ByKUd4>L)igVQ_{xi?_i&=Xq`Ho6u*{oa@rnu&dw$RtjpTv zD#ow0_SzQh+8d>cl3meH#a1u?(XQ^prDskPYVjoN!VCJC%o(EqTAziMTg3?x_a3T;mh)G63a<2pLu$Ea@Y;5sVZ3Y zFo)yRZ9WpRYSfN#SJ2)N?cIXB)OtJV4de_`0MHA zS{m0=EdA)4f}Ay^Ff*!+`Jh?*Kxp1v*u(;NjIY% ziX6x=P0q?z9JDh#mVC|Y-0FLryPs^5i}CGfrqeAc6p!YUo@K# zV4UuBY0yEgKOc8jO88FBK48V8bwTa6!EVrY>oLG-tgM{=0p`&OdY;v(-U25j9!E4% zL2Zm`On)fuQ zM9|4z5%cW>B`a9%nNJgeaG-%vUx|)QiWzcKULTd5YkCjlfUaM+tw+dAq8 zSM$w-^MLdf#?@LT@o3j&hP2|CwBAIjK6G&iIRwS@Khd+FM&(ngl#3OCAqf*R6f&Nj zh58N%A~ri>o4BA+5gtf2x^K7AcZ|m2A}R;wM1RJ!_z%#{87NBwNXK+;)1Lyc3T@W< zmc;zwHJf)^z2@DZZQ0KGX9eHwOI$?%PoDnQUpjNe@2zl>GkrhKbr|SXZ=Uja+1)R^ z{!owk&#oV5)4{4HOl>|0eE;_s+$TWx4Oo3Hlr<+aO3{aHxHGZ6+*qqJCypZk43% zqV$DuaHWV$X3bZhz7169nLnbUKIRK`5DVYjzNgk)BmGhdNiIHXg82c6u{SN|Z(flKQa=4Hye31FVvrs+IH6>V{9Iy{}SrK!KFa zP=mx??bXgz=V6gf%8@j^4r`~8qO%>e2MdWj6I6hAe{tA35dmPdR`*l6Ao!De{MB*( zyCPtvw6Q>?spbMhvx1Ke!(EjrpNCaQy|9yB6C(y~PM}cngESvQIu@0p7&!osc+ph9 zBE%xGhRk2DM?K*ogs%kJqAt*8*y*|*j--ZfYGZ06fwn>CrEGvy3KvFzz=4Wfm4A_P zv{C>Zj$Tx8HcNwPI8WDoXGXa?pZ?hC7+`*X(MD=M+Q*qJ{5F(xm2NU`!!A8E(VEhe zojcxcQK22>aa<@82}v6zHmal%>hptoM429`A;BB3JI+C;`$Gisw+3APs(+G-w?xEr zd$>&UfPS6c}B@kgXjiR@JOMvv8;}WreIb*ifE>bK*3TB^!HPB`@oF!iC_ zuq@G;?xaT(Ls@gj71crs(m@J$pQE00w5_ZC35?f@-laW(4f9R=(|T;IV3)AW14&#YOTCD=vjxWxX(a{hBt%-r{S^pM!1*g`ml$U*OVgXY3ptiWwv*w?XS zJ6znAu&f+D`ycZ@t+Or<7Wg=|HZie)gmFm@I4o@JB&7m;o znoYluz|X!@)hpGPb?gn!3FuP^RZ4`L?XIGc!=K)Q6`lU>c)^mSYC~fX`v=uNi9{Cb zpAi6!?D*Q3S2YM&%DT$CQ`0tMF0cZ=kCi%R!InMXJ7wHV0kc2b?!48JpWtI|Y`_w> zt1xE@@TX@wY3@U`T$@#ssgtl9F^^p1j~DWTkHX8l)nw|0?I}N4s2^jTy?01lKs+6NfVr9)oTsk%!0@=(Ibgy5`TG%eoISsC*{ZHQA9*zud zBTkk8T_Rs@?RY~Gj)5=$Dh<8}akm#@JYBZ6f;We`A0m1HRTPHNjeL!hWuE#i9=F#M z(GEoV%9Yt@q9&$Evd_D~2oPTvf1zt#LQK|_Aoe|9%S(s}bXp$6;#Cn^Kd}^UtWR89 zT-T0)yFL<%0H)jn3i0n;3=6fNzPnyFNKbPa4->aSx|#8Xk+HxBj_!QG*loYMlp$ZE z<6pycfy7p~`$+sUn*+S=_nmc`PK#K+fw#L%&%MN9H-@RtT$L-g`f;}R#xWTOIsS+7 zWMT^|trb7l5SrOQXxCSv&Is>Oj?Fh61|H@9OFx!@*i7GFsHXeHIuv5AD3T2$UN*=` z;TdZHe*os*0x!Fzoe58n^??B={M$ze<5c7`v^6__iuU3ivrt>C35|V+YpZ%6%uuzO}~CP4N@ZeZlZb1pIml>Odn@ z=-l@PMrqn=B``~AZUw=C!+)ZrqH7;BJY7F$Pu#Vi#``wq_>*OVC=!?OV+U5dfc&>K*K^X}109e+mP!aO zko^4>(6@P8Xsj=B_l3SZL1vauw4V%AtluItf(`uKzxPvWpVHvrl@Xx#$5Q`p)eV?- zsImT13j(|dH1}wk1LI(gjGk=~{n?}#6u|eyxf}{80|nFcc8NIh6CxjFhJov@Hk!*w zbu|P!y&Y`SbqY5%nj99tKi(igk;?P`L#4d18Rwnu;asv=E)z5d)QXLB-8ELATR0La zV}1JFqJdd$w(F><*U+%gN_b$7v3{OZj$`N3y|;~~SM+O{Zeif#CNtWpU~23!48>c4 zTJp0=S((@r|(C@ycwT$UaP#l z0#%wS8=ltrG8f$0*z_8pXA9c}AOMK~pQd@A_%zznwpHw6`owoL*0-;=x6Cg4EC3ZC NGh<7mY6JJU{{!8o#|{7h literal 0 HcmV?d00001 diff --git a/doc/licensing.md b/doc/licensing.md index 7bdb6877f..14341b498 100644 --- a/doc/licensing.md +++ b/doc/licensing.md @@ -1,4 +1,4 @@ -This document is part of the Bosch Rexroth ctrlX CORE App Development Guideline, and describes how to adapt to the the license management of the device. +This document is part of the Bosch Rexroth ctrlX CORE App Development Guideline, and describes how to adapt to the the license management of the device. Please refer to the App Development Guide for further information. @@ -13,6 +13,10 @@ Please refer to the App Development Guide for further information. > [2.3 Use REST API to Enforce Licenses](#rest) +> [2.4 Access License Manager in PLC Application](#plc) + +> [2.5 License Management in Windows Applications](#windows) + [3 Licensing Modes ](#modes) > [3.1 Overview](#overview) @@ -21,18 +25,17 @@ Please refer to the App Development Guide for further information. > [3.3 ctrlX CORE Temporary Usage Rights (Emergency Mode)](#emergency) -> [3.4 ctrX CORE 10 Day Trial License](#trial) +> [3.4 ctrlX CORE 10 Day Trial License](#trial) > [3.5 Four Hour Engineering Demo License on ctrlX COREvirtual](#virtual) > [3.6 Additional License Mode: ctrX CORE 3 Month Test License](#test) - - +> [3.7 Spoofing detection by optionally signing / verifying license requests](#spoofing) # 1 Introduction -From a user's perspective, device licenses are managed by the Bosch Rexroth Licensing Center [https://licensing.boschrexroth.com](https://licensing.boschrexroth.com). +From a user's perspective, device licenses are managed by the Bosch Rexroth Licensing Center [https://licensing.boschrexroth.com](https://licensing.boschrexroth.com). Using the portal it is possible to assign licenses to a device and to download a capability response, which contains all assigned licenses for a specific device. The downloaded capability response can than be deployed to the corresponding device. @@ -51,31 +54,25 @@ plugs: interface: content content: licensing-service target: $SNAP_DATA/licensing-service -``` +``` This will create a folder "license-service" during installation of the app on the ctrlX CORE and provide access to the unix domain socket "licensing-service.sock" which will be located in the folder. ## 2.2 Adapt package-manifest.json The app shall provide information in the package-manifest about each license that is supported. Description and title shall be human readable. -The "required" flag indicates whether a license is mandatory to use the application. Set the flag to true when the license is required and to false, when the license is optional. +The "required" flag indicates whether a license is mandatory to use the application. Set the flag to true when the license is required and to false, when the license is optional. Multiple licenses can have the "required" flag set to true simultaneously. In this case, the app must ensure that it works if any of the 'required' licenses is available. ```json - "licenses": [ + "licenses": [ { - "name": "SWL-XCx-FRW-BASIC_FOOBAR-NNNN", - "title": "ctrlX CORE - Foobar License", - "description": "Unlock the App's functionality.", + "name": "SWL-XC*-RUN-DLACCESSNRT**-NNNN", + "title": "ctrlX OS License - Customer App", + "description": "Integration of customer apps into ctrlX OS with access to the ctrlX Data Layer", "required": true - }, - { - "name": "SWL-XCx-FRW-ADVANCED_FOOBAR", - "title": "ctrlX CORE - Foobar License Extension", - "description": "This license extends the functionality of the App.", - "required": false - } + } ], - ``` +``` ## 2.3 Use REST API to enforce licenses @@ -90,7 +87,7 @@ In case a license is not required anymore - e.g. when the app is stopped or unin In case a license is missing, a warning or an error shall be displayed and/or logged and the user should be informed which licences are required to execute the specific functionality of the app. - + !!! important On the ctrlX CORE, when enforcing licenses the use of the license management is mandatory. Individual implementations are not permitted. @@ -103,30 +100,26 @@ Implementing this API, an app is able to - Acquire a license - Release a license - Get a list of all available license capabilities -- Update the license status in a ctrlX CORE - - -| Function | HTTP Method | URI | Payload | Response | -|---|---|---|---|---| -| Aquire license | POST |/license| {
"name": "SWL-XCx-FRW-BASIC_FOOBAR-NNNN",
"version": "1.0"
} | 200
{
"isPermanent": true,
"endDate": "2030-01-01T12:00:27.
7+00:20",
"name": "SWL-XCx-FRW-BASIC_FOOBAR-NNNN",
"id":
0083d875-30e8-4ff6-9f92-46096ef2d123",
"version": "1.0",
"startDate":"2030-01-01T12:00:27.87+00:20"
} | -|Release license| DELETE| /license/{id} |none | 204 | -|Get list of all activated capabilities |GET| /capabilities |none |200,
[
{
"isPermanent": true,
"finalExpirationDate": "2030-01-01T12:00:27.87+00:20",
"name": "SWL-XCx-FRW-BASIC_FOOBAR-NNNN",
"count": 1,
"version": "1.0",
"startDate": "2030-01-01T12:00:27.87+00:20"
}
]
] -| Update the capability state in the device| PUT| /capabilities |file
string($binary) +- Update the license status in a ctrlX CORE by uploaded a license file +| Function | HTTP Method | URI | Payload | Parameters | Response | +|---|---|---|---|---|---| +| Aquire license | POST |/license| {
"name": "SWL-XCx-FRW-BASIC_FOOBAR-NNNN",
"version": "1.0"
} |signResponse | 200
{
"isPermanent": true,
"endDate": "2030-01-01T12:00:27.
7+00:20",
"name": "SWL-XCx-FRW-BASIC_FOOBAR-NNNN",
"id":
0083d875-30e8-4ff6-9f92-46096ef2d123",
"version": "1.0",
"startDate":"2030-01-01T12:00:27.87+00:20"
} | +|Release license| DELETE| /license/{id} |none |none | 204 | +|Get list of all activated capabilities |GET| /capabilities |none | none |200,
[
{
"isPermanent": true,
"finalExpirationDate": "2030-01-01T12:00:27.87+00:20",
"name": "SWL-XCx-FRW-BASIC_FOOBAR-NNNN",
"count": 1,
"version": "1.0",
"startDate": "2030-01-01T12:00:27.87+00:20"
}
]
+| Update the capability state in the device| PUT| /capabilities | file
string($binary) | withChangeReport| 200 +|Get the device certificate chain |GET| /device-certificate-chain |none | none |200,
-----BEGIN CERTIFICATE----- MIIDOTCCA+gAwIBAgIURF1DTLBM3YljOsMxXMtHvtEVzE4wCgYIKoZIzj0EAwIwgbgxCzAJBgNVBAYTAkRFMRAwDgYDVQQIDAdCYXZhcmlhMRUwEwYDVQQHDAxMb2hy...
FgYDVR0lAQHBAwwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwIDSAAwRQIgH9Ksvn024lHfDhL4w4YyBLAf6JzxjBix8L6Ka1m3NUgCIQCx3sd85Ag0m/XuF+GViRiL3obO2Kr7reeXVEAg1gRgqw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- MIIDOjCCAt+gAwIBAgIUUdrEfPLcIibj5PCsmD1K6nYK0wCgYIKoZIzj0EAwIw...kRi49k6qak0EzsDVCWPxXeTLEa9OwinaCm1AiEAia+Kfhmg3cFI6KKHCA12ceic 0QRmvnOTubiVvXuTy88=QUHAwIwCgYIKoZIzj0EAwIDSAAwRQIgH9Ksvn024lHfDhL4w4YyBLAf6JzxjBix8L6IDSAAwRQIgH9Ksvn024lHfDhL4w4YyBLAf6JzxjBix8L6
-----END CERTIFICATE-----
### 2.3.3 Acquiring & releasing a license -Acquiring a license generates a unique license ID for that particular license. +Acquiring a license generates a unique license ID for that particular license. > ![](images/licensing2.png) This ID is required to release the license. Therefore, this ID should be stored in a directory which is not affected when your application goes into a faulty state and needs to be restarted. The usage of /tmp is recommended for this. -!!! hint - Know more about mounting temporary disk in memory system type:tmpfs from snap documentation. - ### 2.3.4 Available licenses on the device (activated capabilities) Upon request, an app may retrieve the list of available licenses on the device including all details (e.g. expiration, counter, ...). This may be used to check whether a specific license is available (and not in use) before trying to acquire it. @@ -137,16 +130,43 @@ Sample response: > ![](images/licensing1.png) ### 2.3.5 Update license status -The API allows to upload a capability response from the license portal to update the license status on the device (e.g. add new licenses). This functionality is not required by an app itself. +The API allows to upload a capability response (license file) from the license portal to update the license status on the device (e.g. add new licenses). This functionality is not required by an app itself but is rather performed by the device operator depending on which licenses will be required according to the installed apps. The REST API route to upload a license file allows passing an optional query parameter (withChangeReport). If this parameter is set, the result of the API will return all licenses that have been added / removed by the used license file. + +## 2.4 Access License Manager in PLC Application + +### 2.4.1 ctrlX AUTOMATION Library *CXA_LICENSING* + +In addition to the REST API, the License Manager can also be used in a PLC application. +To use the according functions, the library *CXA_LICENSING* can be added to a PLC application in the Library Manager. + +Please refer to the ctrlX PLC Engineering documentation for information about the Library Manager. + +### 2.4.2 Supported functions + +The *CXA_LICENSING* library provides POUs to acquire and release licenses and to get capabilities. In addition, the library also comes with an example how to use the licensing mechanisms in a PLC application. + +The online documentation of the library in ctrlX PLC Engineering provides detailed information about the POUs and the example: +> ![](images/licensing_plclib.png) + +## 2.5 License Management in Windows Applications + +ctrlX WORKS also supports the License Manager. + +Please find the ctrlX WORKS Licensing API here in the ctrlX World Portal: +[ctrlX WORKS Licensing API]( +https://bosch.sharepoint.com/sites/msteams_1647245/Shared%20Documents/Forms/AllItems.aspx?id=%2Fsites%2Fmsteams%5F1647245%2FShared%20Documents%2FPartner%2F01%5FctrlX%2DWorld%5Fgeneral%5Finformation%2F03%5FApp%5FDevelopment%2FWindows%5Flicensing%2Fcom%2Eboschrexroth%2Ectrlxworks%2Elicensing%2Eapi%2D1%2E0%2E0%2Ezip&parent=%2Fsites%2Fmsteams%5F1647245%2FShared%20Documents%2FPartner%2F01%5FctrlX%2DWorld%5Fgeneral%5Finformation%2F03%5FApp%5FDevelopment%2FWindows%5Flicensing) + +This API provides licensing functions for Windows Applications, and comes with according samples for different programming languages and frameworks. # 3 Licensing Modes ## 3.1 Overview -The license management on the **ctrlX CORE** supports several different licensing modes. THe following table gives an overview about the license modes. +The license management on the **ctrlX CORE** supports several different licensing modes. The following table gives an overview about the license modes. | License Mode | Target | Key | Usage | Additional information | |---|---|---|---|---| | Main License | ctrlX CORE |`SWL_XCR_{YOUR_APP_LICENSE_CODE}` | mandatory |(none specific) +| ctrlX OS Host Runtime License | ctrlX CORE | `SWL-XOH-RUN-xxxxxxxxxxxxx-NNNN` | mandatory |Required for ctrlX OS devices. This license is pre-installed on Bosch Rexroth devices. | Temporary Usage Rights (Emergency Mode) | ctrlX CORE |`SWL_XCR_{YOUR_APP_LICENSE_CODE}` | mandatory |`tampered` flag is `true` | | 10 Day Trial License |ctrlX CORE |`SWL_XCR_{YOUR_APP_LICENSE_CODE}` | optional |`isPermanent` flag is `false` |Four Hour Engineering Demo License |ctrlX COREvirtual|`SWL_XCR_ENGINEERING_4H`|optional|(none specific) @@ -169,7 +189,7 @@ The different license modes, and the expected behaviour of the App for these mod - The app shall start and run as intended, when the standard license is available. - If acquiring a license is not possible (no license is available), the app shall inform the user that a license needs to be obtained. -- In case of time based licenses, the app should inform the user on time before the license expires. As a best practice, a user should be informed +- In case of time based licenses, the app should inform the user on time before the license expires. As a best practice, a user should be informed four weeks prior to expiration. - When no standard app specific license is available on the device, an app shall only run if one of the other licenses is active. @@ -193,7 +213,7 @@ four weeks prior to expiration. - The app is able to detect whether the system runs in this mode by evaluating the `tampered` flag in the response to the acquisition request (the flag is set to `true`) - When this mode is active, the app should work as if a standard license is available. -## 3.4 ctrX CORE 10 Day Trial License +## 3.4 ctrlX CORE 10 Day Trial License **Purpose:** Test Mode on ctrlX CORE Hardware @@ -229,7 +249,36 @@ four weeks prior to expiration. - This mode is not intended / available for partner apps by default. - Please get in touch with Bosch Rexroth directly, if this mode might be of interest for you. +## 3.7 Spoofing detection by optionally signing / verifying license requests +**Purpose:** This mechanism allows applications that request a licene to verify that the license indeed comes from the ctrlX OS license manager. + +**Description:** +- Although it is quite unprobable, that a malicious actor could replace ctrlX OS' license manager, a further layer of security is added +- Applications can request licenses (see [License Manager API](#232-license-manager-api)) and set the 'signResponse' query parameter +- Once a license has been requested (with the corresponding query parameter set) the response's header will contain a signature +- This signature was calculated using the device certificate (and the corresponding tpm-based key) and can be used to fully verify that the license response was indeed from a certified ctrlX OS device with no spoofed license manager + +**Usage:** +1) Any application that wants to use this mechanism will need to send a license request with the corresponding query parameter set
+ 1.1) The response header contains a hex-encoded signature ("Payload-Signature")
+ 2.2) The signature is created using ECDSA-SHA256 on the standardized curve 'SECP-256'
+2) Once the response (and the signature in 'Payload-Signature') the application needs to verify that the signature is indeed valid and was produced by the device
+2.1) The license manager's device certificate chain (and the public key herein) can be used for this - see (see [License Manager API](#232-license-manager-api))
+2.2) Use the public key inside the end-entity (device) certificate to verify the signature
+3) Once signature verification is successful, we can assume that the chain sent by the device and the key used for signing correspond, however additional steps are required to ensure that the device is indeed a ctrlX OS device (and the license manager is unspoofed)
+3.1) The device-certificate chain as retrieved in step 2.1 can now be used to check whether the device is a ctrlX OS device by verifying the certificate chain
+3.2) The application now needs to verify that the certificate was indeed signed by an authorized ctrlX OS party (and its root CA certificate)
+3.3) For this purpose it needs to know the corresponding ctrlX root CA certificate (com.ctrlx-automation.os.crt) - recommendation is to have it inside the app's binaries as this will ensure that no malicious entity would be able to change it.
+3.4) Verify the certificate chain from the device up to the mentioned root certificate
+ +**Note:** +As there are multiple steps involved here (where some of them might be time consuming due to cryptographic complexity) it is the app's responsibility whether it wants to check this once during startup, according to a defined interval, etc. Please note the genereal perception is that - if this feature is required - checking it during startup suffices to verify the integrity of the license manager. + +**ctrlX OS root CA certificate:** +As stated in in step 3.2, the application needs to know the ctrlX OS root CA certificate (com.ctrlx-automation.os.crt). If this feature is required, the corresponding certificate needs to be embedded inside the application. The ctrlX OS root CA certificate can be retrieved via the following link:
+ +[Download ctrlX OS root CA certificate (com.ctrlx-automation.os.crt)](certificates/com.ctrlx-automation.os.crt) **Copyright** -SPDX-FileCopyrightText: Bosch Rexroth AG \ No newline at end of file +SPDX-FileCopyrightText: Bosch Rexroth AG diff --git a/doc/numopenfilehandles.md b/doc/numopenfilehandles.md index cf955d38a..84be0d58d 100644 --- a/doc/numopenfilehandles.md +++ b/doc/numopenfilehandles.md @@ -54,7 +54,7 @@ Therefor we recommend to: ## Complete Example Snap -In this SDK an complete example project creating a demo snap is stored under __samples-sh/ulimit-snap__. +In this SDK an complete example project creating a demo snap is stored under __samples-snap/ulimit__. The sample project folder also contains a README.md file with further informations. diff --git a/doc/package-assets.md b/doc/package-assets.md index 559fdb25e..f6417bfda 100644 --- a/doc/package-assets.md +++ b/doc/package-assets.md @@ -64,7 +64,6 @@ Add a "menus" element to the package manifest of your snap. The "menus" element * sidebar: An array of items to be integrated into the main menu * settings: An array of items to be integrated into the settings menu -* system: An array of items to be integrated into the system menu * overview: An array of items to be integrated into the app overview An item is defined as an object with the following elements: @@ -127,15 +126,6 @@ An item is defined as an object with the following elements: ] } ], - "system": [ - { - "id": "reboot", - "title": "Reboot", - "icon": "bosch-ic-gear", - "link": "/reboot-manager" - ] - } - ], "overview": [ { "id": "solutions-overview", @@ -200,6 +190,44 @@ If you want to open your application in your own tab, you can define the target } ``` +### Dashboard Widgets + +You can provide own widgets to be shown in the Home screen. These widgets need to be implemented as [Web Components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components). + +In short, widgets are provided in a JavaScript file and define a custom HTML tag. This JavaScript file can be loaded into any web page and the widget is instantiated by just inserting its tag into an HTML file (just like standard tags like \
or \). One JavaScript file can contain several Web Components. Your app must serve this JavaScript file, just like other assets, so that it can be addressed via a URL. + +For the Home screen to know about all the widgets, these need to be made publicly known in some way. This is done in the app's manifest in "uiExtensions" → "dashboard". Each element here defines one widget by providing the information needed to instantiate the widget (like the URL of the JavaScript file, where the widget is implemented, and the widget's tag name, size information) and metadata to display in the widget catalog. For a detailed description see the PackageManager-API, schema "DashboardWidget". + +Example + ```json + "uiExtensions": { + "dashboard": [ + { + "order": 10, + "src": "/motion/widgets.js", + "tag": "rexroth-axes-widget", + "title": "Axes", + "description": "Shows the status of your axes", + "categories": ["Motion"], + "i18n": "dashboard.motion.axes", + "image": "/motion/assets/img/DC_AE_ctrlX_DRIVE-axes_Symbol_bl_192x192_202102.svg", + "initialSize": { + "rows": 3, + "cols": 3 + }, + "minSize": { + "rows": 3, + "cols": 3 + }, + "maxSize": { + "rows": 3, + "cols": 3 + } + } + ] + } + ``` + ### Reverse Proxy The reverse proxy handles all **external** web-based (HTTP/HTTPS) requests to the device. The reverse proxy provides the following functionality: @@ -411,7 +439,7 @@ The following snippet shows the definition of the admin scope. You can see (and !!! Example - ```json + ```json { "identifier": "rexroth-device", "name": "Global device administration", @@ -424,7 +452,24 @@ The following snippet shows the definition of the admin scope. You can see (and } ] } - ``` + ``` + +### Licenses + +The app shall provide information in the package-manifest about each license that is supported. Description and title shall be human readable. +The "required" flag indicates whether a license is mandatory to use the application. Set the flag to true when the license is required and to false, when the license is optional. Multiple licenses can have the "required" flag set to true simultaneously. In this case, the app must ensure that it works if any of the 'required' licenses is available. + +!!! Example + ```json + "licenses": [ + { + "name": "SWL-XC*-RUN-DLACCESSNRT**-NNNN", + "title": "ctrlX OS License - Customer App", + "description": "Integration of customer apps into ctrlX OS with access to the ctrlX Data Layer", + "required": true + } + ], + ``` ### Certificate Management (optional) @@ -459,7 +504,13 @@ The certificate store block defines whether a snap service has to handle cryptog { "id": "examplestore", "title": "Example Store", - "description": "This is only an example store for documentation purposes." + "description": "This is only an example store for documentation purposes.", + "scopesR":[ + "example.permission.r" + ], + "scopesRWX":[ + "example.permission.rwx" + ] } ], ``` @@ -473,6 +524,14 @@ The certificate store block defines whether a snap service has to handle cryptog * VPN Manager * ... * **description:** Optional and displayed in the front end. To describe the application and provide some more information. +* **scopesR:** Optional list of scopes that allow the user to have read access to this certificate store. + * rexroth-solutions.web.all.r + * example.permission.r + * ... +* **scopesRWX:** Optional list of scopes that allow the user to have full access to this certificate store. + * rexroth-solutions.web.all.rw + * example.permission.rwx + * ... The following predefined folder structure applies to every certificate store: diff --git a/doc/persist-device-settings.md b/doc/persist-device-settings.md index 132b1d155..a409a4472 100644 --- a/doc/persist-device-settings.md +++ b/doc/persist-device-settings.md @@ -1,34 +1,46 @@ ### **Table of content** -[1 Introduction](#introduction) +[Introduction](#introduction) -[2 Register app settings](#register) +[Using REST API endpoints](#rest) -[3 Implement settings endpoints](#implement) +[Using Ubuntu’s snapshot mechanism](#snapshot) -## 1 Introduction +## Introduction -Third-party apps can integrate into the ctrlX Setup functionality so that their device-specific app settings are saved -or restored when a setup is created or applied. Therefore, an app must provide REST API endpoints to access its settings. -Settings of third-party apps that are not accessible through settings endpoints will not be included in a ctrlX setup. +Apps can integrate into the ctrlX Setup functionality so that their device-specific app settings are saved +or restored when a backup is created or restored. There are two ways of integration: -## 2 Register app settings +| Using REST API endpoints | Using Ubuntu’s snapshot mechanism | +|:-----------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------| +| Fine-grained control with respect to the settings format and content | Limited control with respect to the settings format and content | +| App settings can be saved or restored in any system state | The app will be disabled before taking or restoring its snapshot, which requires the system to be in SERVICE state | +| Secrets can be stored as encrypted files | Snapshot contents are stored unencrypted so that they must not include secrets | +| Unchanged settings are skipped on restore | Snapshot contents are always completely restored | +| Requires a web server and the implementation of API endpoints | Minimal implementation effort | -An app declares the settings to be included into a setup in the "apps"/"rexroth-setup" section of its package manifest. +## Using REST API endpoints + +For using this integration approach, an app must provide REST API endpoints that allow to access its settings. +Settings of apps that are not accessible through settings endpoints will not be included in a backup. + +### Register app settings + +An app declares the settings to be included into a backup in the "apps"/"rexroth-setup" section of its package manifest. Each setting consists of a setting name, a description, a URL used to read and update the settings value, and a value type: -- **name** (required): Name of the setting. Must be unique within the app's settings list. - Serves as key in the ctrlx-setup.json file. +- **name** (required): Name of the setting. Must be unique within the app’s settings list. + Serves as key in the ctrlx-backup.json file. Note that the name "$path" is reserved. - **description**: Short localized description of the setting. - **url** (required): URL used to read (GET) and update (PUT) the setting. A URL starting - with a slash is interpreted to be relative to https://\. + with a slash is interpreted to be relative to `https://localhost`. - **type**: One of - **"text"** (default): The value is saved as a quoted string. - **"json"**: The value is saved in JSON object format (see "Merge operation for JSON-formatted settings"). - **"file"**: The value is persisted as a file. - - **"encryptedFile"**: The value is persisted as a file. The Setup app encrypts the file content if the setup is + - **"encryptedFile"**: The value is persisted as an encrypted file if the backup is created with a password. **package-manifest.json:** @@ -68,12 +80,12 @@ created with a password. } ``` -The Setup app calls the URLs with GET or PUT to read or update the settings when a ctrlX setup is created or applied. +The Setup app calls the URLs with GET or PUT to read or update the settings when a backup is created or restored. -Creating a setup with the above setting declarations might, e.g., result in the following ctrlx-setup.json output. The -respective files (baz.bin, secret.bin.aes) would be included in the enclosing ctrlx-setup.zip archive. +Creating a backup with the above setting declarations might, e.g., result in the following `ctrlx-backup.json` output. The +respective files (`baz.bin`, `secret.bin.aes`) would be included in the enclosing `ctrlx-backup.zip` archive. -**ctrlx-setup.json:** +**ctrlx-backup.json:** ```json { @@ -97,27 +109,27 @@ respective files (baz.bin, secret.bin.aes) would be included in the enclosing ct } ``` -## 3 Implement settings endpoints +### Implement settings endpoints -Third-party apps must consider the following conditions and constraints in their implementations: +Apps must consider the following conditions and constraints in their implementations: -- Third-party app settings are applied after apps have been updated and device admin settings (users, scopes, licenses, +- App settings are applied after apps have been updated and device admin settings (users, scopes, licenses, ...) have been applied. - The order in which requests are sent to read or update the settings is undefined. - Persisted settings must be usable with newer versions of the app. A newer app version may introduce new settings and properties which must be tolerated (ignored) by older app versions. Incompatible changes (e.g. changing the meaning of enum values) between app versions must be avoided. -- Third-party apps using the settings type "json" must implement the special semantics described in the following +- Apps using the settings type "json" must implement the special semantics described in the following section. -### Merge operation for JSON-formatted settings +#### Merging JSON-formatted settings -Setup supports fine-grained modifications by merging the setup content with the current state of the device. The merge -operation will extend JSON objects with new properties, e.g. to add users to a users list. Conversely, a property can be -removed by setting its value to `null`. +The restore operation allows fine-grained modifications by merging the backup content with the current state of the device. +This way, new properties may be added to JSON objects (new users may, e.g., be added to the existing ones on the device). +Conversely, properties can be removed by setting their values to `null`. -Third-party apps can use the merge feature by providing their property settings with type "json" and by implementing the -following behavior: +Apps can use the merge feature by providing their property settings with type "json" and by implementing the following +behavior: | Use case | Example | Description | |:------------------------------------------------------------------------------------------------------------|:---------------------------------------------|:----------------------------------------| @@ -126,7 +138,7 @@ following behavior: | A new property in the JSON structure will be added on the device. | `"users": {"jane": {"passwordHash": "..."}}` | Adds new user "jane" | | A property with a `null` value in the JSON structure will remove the corresponding property on the device. | `"users": {"john": null}` | Deletes user "john" | -### Success behavior +#### Success behavior - **GET**: Apps must respond with status code 200 if the request has succeeded. The response body must contain the setting value in the following format: @@ -136,12 +148,12 @@ setting value in the following format: - **PUT**: Apps must apply the setting value contained in the request body and respond with status code 204 and an empty response body if the request has succeeded. -### Failure behavior +#### Failure behavior - Apps must respond with an error status code (4xx or 5xx) if a GET or PUT request has failed. - The response body must contain a JSON object describing the problem by providing an appropriate status code and title (cf. example and schema below). -- The Setup app reports the problem response of a failed request as an error in the logbook and via Web UI. Processing +- The Setup app reports the problem response of a failed request as an error in the Logbook and via Web UI. Processing is continued with the next setting. **Problem response body (example)** @@ -241,8 +253,7 @@ Problem: example: value = -4.5 severity: type: string - description: ' - Severity of a problem as defined RFC5424 of the Syslog standard, see https://tools.ietf.org/html/rfc5424' + description: 'Severity of a problem as defined RFC5424 of the Syslog standard, see https://tools.ietf.org/html/rfc5424' example: Error enum: - Emergency @@ -283,3 +294,49 @@ Problem: items: $ref: "#/Problem" ``` + +## Using Ubuntu’s snapshot mechanism + +An app may use Ubuntu’s snapshot mechanism to save and restore its settings, cf. https://snapcraft.io/docs/snapshots. +While this minimizes the implementation effort, the following issues should be considered: + +- A snapshot typically contains much more files than should be part of the apps settings, e.g. log files, cached files, etc. In order to keep backup file sizes manageable, apps should exclude irrelevant content from their snapshots if possible (cf. https://forum.snapcraft.io/t/excluding-data-from-snapshots/33643). +- Secrets are saved unencrypted in the snapshot and the backup file, respectively. +- Taking a snapshot fails if a file is locked or modified while taking the snapshot. Therefore, the Setup app disables apps before taking a snapshot, which requires that the system is in SERVICE state. Apps must be prepared to consistently save their state on "disable" events. When the snapshot has been taken, the Setup app enables the app again. +- Before restoring a snapshot, the Setup app disables the app. After the snapshot has been restored, the Setup app enables the app so that the app can initialize itself with the restored data. As the Setup app cannot find out if a snapshot contains changed settings, snapshots are always completely restored. + +The following entry in an app’s package manifest enables the use of Ubuntu’s snapshot mechanism for saving and restoring +its settings: + +**package-manifest.json:** + +```json +{ + "apps": { + "rexroth-setup": { + "settings": [ + { + "type": "snapshot" + } + ] + } + } +} +``` + +Creating a backup with the above settings declaration would result in the following `ctrlx-backup.json` output. The +respective snapshot file (`app.snapshot`) would be included in the enclosing `ctrlx-backup.zip` archive. + +**ctrlx-backup.json:** + +```json +{ + "apps": { + "myApp" : { + "settings": { + "$path": "apps/myApp/settings/app.snapshot" + } + } + } +} +``` diff --git a/doc/persistdata.md b/doc/persistdata.md index 2c40c23b4..65513bfff 100644 --- a/doc/persistdata.md +++ b/doc/persistdata.md @@ -168,7 +168,7 @@ For each command, the following elements must be specified: - **id** (required): a string serving as the identifier of the save or load command; must be unique within the “commands/activeConfiguration/save” and “commands/activeConfiguration/load” paths, respectively - **subject** (required): a string denoting what will be saved or loaded; used to inform users, e.g. in messages like “Loading *motion settings*” or “Failed to load *motion settings*” -- **url** (required): a string representing the request URL; URLs starting with a slash are interpreted to be relative to > (the control itself). Declare an absolute URL if you need to specify a port, e.g. `http://localhost:5555/my-app/api/v1/save`. The URL is used for HTTP POST requests which include command parameters in the request body (see section "Request parameters" for details) +- **url** (required): a string representing the request URL; URLs starting with a slash are interpreted to be relative to `https://localhost`. The URL is used for HTTP POST requests which include command parameters in the request body (see section "Request parameters" for details) By default there is no defined order of command execution. Starting with version XCR-V-0112, a command may declare that it needs to be executed **after** other commands. If this is required (which should be the exception), add an after element to your command declaration with an array containing the IDs of the predecessor commands. @@ -267,7 +267,7 @@ The field may contain “\n“ to separate cause and hint in the result output o #### Diagnostic messages -The Solutions app only logs a general diagnostic message on start and finish of a save and load operation. Each participant should additionally log its own activities and occurred problems into the control’s Logbook. Any diagnostic message or trace message related to saving or loading should include the current id at the end of the dynamic description in square brackets. +The Solutions app only logs a general diagnostic message on start and finish of a save and load operation. Each participant should additionally log its own activities and occurred problems into the device’s Logbook. Any diagnostic message or trace message related to saving or loading should include the current id at the end of the dynamic description in square brackets. Example of diagnostic entries as they would appear in the Logbook: diff --git a/doc/s2sauth.md b/doc/s2sauth.md index 0275f4788..ac24dbb1d 100644 --- a/doc/s2sauth.md +++ b/doc/s2sauth.md @@ -13,7 +13,9 @@ slots: secure-assets: interface: content content: secure-assets - target: $SNAP/secure-assets/${SNAPCRAFT_PROJECT_NAME} + source: + read: + - $SNAP/secure-assets/${SNAPCRAFT_PROJECT_NAME} service-token: interface: content content: service-token diff --git a/doc/samples.md b/doc/samples.md deleted file mode 100644 index 47a5a7682..000000000 --- a/doc/samples.md +++ /dev/null @@ -1,96 +0,0 @@ - -## Sample Projects - -Applications (snaps) for ctrlX CORE targets can be written in several programming language or even as shell scripts. - -For creating your own applications, the ctrlX AUTOMATION SDK offers sample projects that can be used as source of code snippets as templates. The sample projects are saved in sub folders according to their programming language or their type. - -Here an overview of the sample project types and their subfolders. - -!!! important - Run the install script listet in column three once before you are working with one or more sample projects. - These scripts are located in __/home/boschrexroth/scripts__. See also [install-scripts](install-scripts.md). - -| Sample Project Type | Link to Projects | Install Script -| :------------------ | :------------------------------------------------------ | :------------------------ | -| __C/C++__ | [samples-cpp/README.md](samples-cpp/README.md) | ~/scripts/install-cpp-aarch64-libs.sh -| __Go__ | [samples-go/README.md](samples-go/README.md) | ~/scripts/install-go.sh -| __Python__ | [samples-python/README.md](samples-python/README.md) | -| __.NET__ | [samples-net/README.md](samples-net/README.md) | ~/scripts/install-dotnet-sdk.sh -| __ANGULAR__ | [samples-angular/README.md](samples-angular/README.md) | -| __Node.js__ | [samples-node/README.md](samples-node/README.md) | ~/scripts/install-nodejs-npm.sh -| __Shell scripting__ | [samples-sh/README.md](samples-sh/README.md) | -| __Snap__ | [samples-snap/README.md](samples-snap/README.md) | -| __IEC 61131-3__ | [samples-iec61131/README.md](samples-iec61131/README.md)| - - -## Building Snaps - -!!! important - All project folders are containing these scripts to build snaps: - -* __build-snap-amd64.sh__: Build an amd64 snap for a ctrlX COREvirtual. -* __build-snap-arm64.sh__: Build an arm64 (aarch64) snap for a ctrlX CORE. - -You can call these scripts from the command line: - - ./build-snap-amd64.sh - ./build-snap-arm64.sh - - or from Visual Studio Code: - - * Select main menu item Terminal --> Run Build Task - * Select `build snap amd64` for building a snap for a ctrlX COREvirtual - * Select `build snap arm64` for building a snap for a ctrlX CORE. - -At the end of the build process the snap file should be available in the root folder of your project. - -See below for further Run Build Task items. - -## Installing a Snap Manually - -Right click the snap file in the Visual Studio Code EXPLORER and select 'Download'. Visual Studio Code stores it in your home directory on your host computer. For Windows 10 this is %USERPROFILE%, in Linux this is: ~/ - -Start a Web browser, login into your ctrlX CORE: - -* Select Settings - Apps -* Switch to Service Mode -* Click Install from file -* Select the downloaded file -* Switch to Operation Mode - -## Building and Installing a Snap Automated by Script - -Using the bash script __build-upload-log-snap.sh__ in the ctrlX AUTOMATION SDK folder scripts/ -You can create a snap file, upload it, install it on a ctrlX CORE and view the log output. - -The script can be started either from the command line or with the additional Run Build Task items of the Visual Studio Code IDE. - -### Starting Script from the Command Line - -Change into a sample project folder (e.g. samples-cpp/datalayer.client) and enter - - ../../scripts/build-upload-log-snap.sh -help - -All parameters and their default values are listed. - -E.g. to build and install a snap for a ctrlX COREvirtual with Network Adapter enter - - ../../scripts/build-upload-log-snap.sh -NA - -But we recommend calling this script from Visual Studio Code. See next chapter. - -### Starting Script as Visual Studio Build Task - -Additional to the two Build Tasks mentioned above there are further tasks: - -* __Build upload snap - ctrlX COREvirtual Network Adapter__ -* __Build upload snap - ctrlX COREvirtual Port Forwarding__ -* __Build upload log snap - ctrlX CORE 192.168.1.1__ -* __Build upload snap__ - -The first three tasks are calling the script with the parameter set needed for the according destination. There is sno need to select further parameters. - -If you are choosing the last item each parameter is prompted. - -Feel free to add more tasks or adapt the existing ones. diff --git a/doc/tpm2.md b/doc/tpm2.md index 75937f767..2d80d2e24 100644 --- a/doc/tpm2.md +++ b/doc/tpm2.md @@ -43,7 +43,7 @@ apps: plugs: [tpm2-socket, system-configuration, network] ``` -See also the sample in [samples-sh/tpm2.consumer](./samples-sh/tpm2.consumer/README.md) +See also the sample in [samples-snap/tpm2-webserver](./samples-snap/tpm2-webserver/README.md) ### Integration with Certificate Manager diff --git a/mkdocs.yml b/mkdocs.yml index 0f4562f40..0726dbd9a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -130,8 +130,6 @@ nav: - Samples Python: samples-python/README.md - Samples .NET: samples-net/README.md - Samples Nodejs: samples-node/README.md - - Samples ANGULAR: samples-angular/README.md - - Samples Shell: samples-sh/README.md - Samples Snap: samples-snap/README.md - Samples IEC 61131-3: samples-iec61131/README.md - Debugging: diff --git a/samples-angular/.vscode/settings.json b/samples-angular/.vscode/settings.json deleted file mode 100644 index 3b6641073..000000000 --- a/samples-angular/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "git.ignoreLimitWarning": true -} \ No newline at end of file diff --git a/samples-angular/README.md b/samples-angular/README.md deleted file mode 100644 index c264e53ec..000000000 --- a/samples-angular/README.md +++ /dev/null @@ -1,11 +0,0 @@ -![ANGULAR](https://upload.wikimedia.org/wikipedia/commons/c/cf/Angular_full_color_logo.svg){width=120} - -## Find out the supported samples - -### Basic Samples - -* [Multi-language](./multi-language/README.md) - -## Build a Snap - -See [Samples Overview](../samples.md) \ No newline at end of file diff --git a/samples-angular/multi-language/configs/package-assets/sdk-multi-language.package-manifest.json b/samples-angular/multi-language/configs/package-assets/sdk-multi-language.package-manifest.json deleted file mode 100644 index a5ef68094..000000000 --- a/samples-angular/multi-language/configs/package-assets/sdk-multi-language.package-manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "$schema": "https://json-schema.boschrexroth.com/ctrlx-automation/ctrlx-core/apps/package-manifest/package-manifest.v1.3.schema.json", - "version": "1.0.0", - "id": "sdk-multi-language", - "menus": { - "sidebar": [ - { - "id": "sdk-multi-language", - "title": "SDK Multi-language", - "icon": "bosch-ic-translate", - "link": "/sdk-multi-language", - "target": "_blank" - } - ] - }, - "services": { - "proxyMapping": [ - { - "binding": "unix://{$PACKAGE_WWW_SOCKET}", - "name": "sdk-multi-language", - "url": "/sdk-multi-language" - } - ] - } -} \ No newline at end of file diff --git a/samples-angular/multi-language/package-lock.json b/samples-angular/multi-language/package-lock.json deleted file mode 100644 index b8247d0ad..000000000 --- a/samples-angular/multi-language/package-lock.json +++ /dev/null @@ -1,12418 +0,0 @@ -{ - "name": "multi-language", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "multi-language", - "version": "1.0.0", - "dependencies": { - "@angular/animations": "^17.0.9", - "@angular/cdk": "^17.0.4", - "@angular/common": "^17.0.9", - "@angular/compiler": "^17.0.9", - "@angular/core": "^17.0.9", - "@angular/forms": "^17.0.9", - "@angular/material": "^17.0.4", - "@angular/platform-browser": "^17.0.9", - "@angular/platform-browser-dynamic": "^17.0.9", - "@ngx-translate/core": "^15.0.0", - "@ngx-translate/http-loader": "^8.0.0", - "ngx-translate-multi-http-loader": "^17.0.0", - "snap": "^1.1.0", - "tslib": "^2.6.2", - "zone.js": "^0.14.2" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^17.0.9", - "@angular/cli": "^17.0.9", - "@angular/compiler-cli": "^17.0.9", - "@types/node": "^20.10.5", - "ngx-translate-extract": "^1.0.0", - "typescript": "^5.2.2" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@angular-devkit/architect": { - "version": "0.1700.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular-devkit/architect/-/architect-0.1700.10.tgz", - "integrity": "sha512-JD/3jkdN1jrFMIDEk9grKdbjutIoxUDMRazq1LZooWjTkzlYk09i/s6HwvIPao7zvxJfelD6asTPspgkjOMP5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "17.0.10", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-angular": { - "version": "17.0.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular-devkit/build-angular/-/build-angular-17.0.10.tgz", - "integrity": "sha512-RWVu5Pdg6VdO3v1i0oI+HGr/NE4rhbNelM43w+9TqrzDtwmvckWsadSp0H88cPhQ4YGY5ldGKyQufO1UItR26w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1700.10", - "@angular-devkit/build-webpack": "0.1700.10", - "@angular-devkit/core": "17.0.10", - "@babel/core": "7.23.2", - "@babel/generator": "7.23.0", - "@babel/helper-annotate-as-pure": "7.22.5", - "@babel/helper-split-export-declaration": "7.22.6", - "@babel/plugin-transform-async-generator-functions": "7.23.2", - "@babel/plugin-transform-async-to-generator": "7.22.5", - "@babel/plugin-transform-runtime": "7.23.2", - "@babel/preset-env": "7.23.2", - "@babel/runtime": "7.23.2", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.0.10", - "@vitejs/plugin-basic-ssl": "1.0.1", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.16", - "babel-loader": "9.1.3", - "babel-plugin-istanbul": "6.1.1", - "browser-sync": "2.29.3", - "browserslist": "^4.21.5", - "chokidar": "3.5.3", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.20", - "css-loader": "6.8.1", - "esbuild-wasm": "0.19.5", - "fast-glob": "3.3.1", - "http-proxy-middleware": "2.0.6", - "https-proxy-agent": "7.0.2", - "inquirer": "9.2.11", - "jsonc-parser": "3.2.0", - "karma-source-map-support": "1.4.0", - "less": "4.2.0", - "less-loader": "11.1.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.30.5", - "mini-css-extract-plugin": "2.7.6", - "mrmime": "1.0.1", - "open": "8.4.2", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "3.0.1", - "piscina": "4.1.0", - "postcss": "8.4.31", - "postcss-loader": "7.3.3", - "resolve-url-loader": "5.0.0", - "rxjs": "7.8.1", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "semver": "7.5.4", - "source-map-loader": "4.0.1", - "source-map-support": "0.5.21", - "terser": "5.24.0", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "tslib": "2.6.2", - "undici": "5.27.2", - "vite": "4.5.1", - "webpack": "5.89.0", - "webpack-dev-middleware": "6.1.1", - "webpack-dev-server": "4.15.1", - "webpack-merge": "5.10.0", - "webpack-subresource-integrity": "5.1.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "optionalDependencies": { - "esbuild": "0.19.5" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "@angular/localize": "^17.0.0", - "@angular/platform-server": "^17.0.0", - "@angular/service-worker": "^17.0.0", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", - "karma": "^6.3.0", - "ng-packagr": "^17.0.0", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.2 <5.3" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/platform-server": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "jest": { - "optional": true - }, - "jest-environment-jsdom": { - "optional": true - }, - "karma": { - "optional": true - }, - "ng-packagr": { - "optional": true - }, - "protractor": { - "optional": true - }, - "tailwindcss": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/immutable": { - "version": "4.3.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/immutable/-/immutable-4.3.4.tgz", - "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@angular-devkit/build-angular/node_modules/less": { - "version": "4.2.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/less/-/less-4.2.0.tgz", - "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/sass": { - "version": "1.69.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/sass/-/sass-1.69.5.tgz", - "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1700.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular-devkit/build-webpack/-/build-webpack-0.1700.10.tgz", - "integrity": "sha512-jjcH5zGWre+adnVqjBdAr04Yto8oG6j7fFWuoiBVWEtK8AmesukGJQY8+QKX5UcrsyjP7COsfbz5WeJk3g1KOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1700.10", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" - } - }, - "node_modules/@angular-devkit/core": { - "version": "17.0.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular-devkit/core/-/core-17.0.10.tgz", - "integrity": "sha512-93N6oHnmtRt0hL3AXxvnk47sN1rHndfj+pqI5haEY41AGWzIWv9cSBsqlM0PWltNpo6VivcExZESvbLJ71wqbQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "3.0.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/schematics": { - "version": "17.0.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular-devkit/schematics/-/schematics-17.0.10.tgz", - "integrity": "sha512-hjf4gaMx2uB6ZhBstBSH0Q2hzfp6kxI4IiJ5i1QrxPNE1MdGnb2h+LgPTRCdO72a7PGeWcSxFRE7cxrXeQy19g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "17.0.10", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.5", - "ora": "5.4.1", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/animations": { - "version": "17.0.9", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/animations/-/animations-17.0.9.tgz", - "integrity": "sha512-TcAdBQyGqglgbxdiJcaHc7FcDNkzTXGRtZuPOcr4sYmBvryBu2q18edwzo6+QDYFaoGredFhE5RnOIw+M4A3Xw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/core": "17.0.9" - } - }, - "node_modules/@angular/cdk": { - "version": "17.0.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/cdk/-/cdk-17.0.5.tgz", - "integrity": "sha512-O3QQGPlRz0csQ+XWWzivvtsgVY+jbyZPSKa+N5cXRA5onC3vzajKzAwXQabwIAYR/OoLeI/WNEIDW7nLpFoGXQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "optionalDependencies": { - "parse5": "^7.1.2" - }, - "peerDependencies": { - "@angular/common": "^17.0.0 || ^18.0.0", - "@angular/core": "^17.0.0 || ^18.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/cli": { - "version": "17.0.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/cli/-/cli-17.0.10.tgz", - "integrity": "sha512-52rd8KmOMe3NJDp/wA+Mwj21qd4HR8fuLtfrErgVnZaJZKX2Bzi/z7FHQD3gdgMAdzUiG0OJWGM0h75Ls9X6Gw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1700.10", - "@angular-devkit/core": "17.0.10", - "@angular-devkit/schematics": "17.0.10", - "@schematics/angular": "17.0.10", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "4.1.1", - "inquirer": "9.2.11", - "jsonc-parser": "3.2.0", - "npm-package-arg": "11.0.1", - "npm-pick-manifest": "9.0.0", - "open": "8.4.2", - "ora": "5.4.1", - "pacote": "17.0.4", - "resolve": "1.22.8", - "semver": "7.5.4", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" - }, - "bin": { - "ng": "bin/ng.js" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/common": { - "version": "17.0.9", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/common/-/common-17.0.9.tgz", - "integrity": "sha512-xNS7DDfvFqfLr6xeZNJ+jORuGXP6hhv2HsYD3jb6ZQ8+QuMg+3MDij4a0L5npn72gH/Zz4JRKZ3Bt4Cq6cUqUA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/core": "17.0.9", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/compiler": { - "version": "17.0.9", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/compiler/-/compiler-17.0.9.tgz", - "integrity": "sha512-xf0JChGttVoYPh0PRV3KnbujtlNFavcYzElS6W8iW64O+2HaSxaquWnolcgL5QT1rNGp4s/TxsttloLhbqxNmw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/core": "17.0.9" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } - } - }, - "node_modules/@angular/compiler-cli": { - "version": "17.0.9", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/compiler-cli/-/compiler-cli-17.0.9.tgz", - "integrity": "sha512-fpbs8ZuHi2Z/uOIAxEICzQ1aYbc8Z2TOjB0PDP1RJ1kQmtlWNWxgMqV/uJ59sJO9AMYxc496msMtmOa3OByPYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "7.23.2", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.1.2", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, - "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/index.js" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/compiler": "17.0.9", - "typescript": ">=5.2 <5.3" - } - }, - "node_modules/@angular/core": { - "version": "17.0.9", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/core/-/core-17.0.9.tgz", - "integrity": "sha512-LtDWzyx19XNmAjXju9xjw//rDZPUFu2bllHqzS6NVO1bE4PwJHIs0zfvygh0j46ubKp1gUICNk3jvYK9FMVinA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.0" - } - }, - "node_modules/@angular/forms": { - "version": "17.0.9", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/forms/-/forms-17.0.9.tgz", - "integrity": "sha512-UCZhJH5FCRPGmYHfKCTGbOXqz4SEs9bVkAQGwhHzhM3Bwn3cZ/LKN2UfOglIcwkqKXxKnRx+VkJ2M1KfZJAvLQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/common": "17.0.9", - "@angular/core": "17.0.9", - "@angular/platform-browser": "17.0.9", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/material": { - "version": "17.0.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/material/-/material-17.0.5.tgz", - "integrity": "sha512-5weSqDb368p6G5Nji76fRWYUZ90h19jLMSKpNGCGTXfrQi+rBgdnJbHdYrIX8/wAH/OolPzY/tXoQDFl5r7YvQ==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/auto-init": "15.0.0-canary.a246a4439.0", - "@material/banner": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/card": "15.0.0-canary.a246a4439.0", - "@material/checkbox": "15.0.0-canary.a246a4439.0", - "@material/chips": "15.0.0-canary.a246a4439.0", - "@material/circular-progress": "15.0.0-canary.a246a4439.0", - "@material/data-table": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dialog": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/drawer": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/fab": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/floating-label": "15.0.0-canary.a246a4439.0", - "@material/form-field": "15.0.0-canary.a246a4439.0", - "@material/icon-button": "15.0.0-canary.a246a4439.0", - "@material/image-list": "15.0.0-canary.a246a4439.0", - "@material/layout-grid": "15.0.0-canary.a246a4439.0", - "@material/line-ripple": "15.0.0-canary.a246a4439.0", - "@material/linear-progress": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/menu": "15.0.0-canary.a246a4439.0", - "@material/menu-surface": "15.0.0-canary.a246a4439.0", - "@material/notched-outline": "15.0.0-canary.a246a4439.0", - "@material/radio": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/segmented-button": "15.0.0-canary.a246a4439.0", - "@material/select": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/slider": "15.0.0-canary.a246a4439.0", - "@material/snackbar": "15.0.0-canary.a246a4439.0", - "@material/switch": "15.0.0-canary.a246a4439.0", - "@material/tab": "15.0.0-canary.a246a4439.0", - "@material/tab-bar": "15.0.0-canary.a246a4439.0", - "@material/tab-indicator": "15.0.0-canary.a246a4439.0", - "@material/tab-scroller": "15.0.0-canary.a246a4439.0", - "@material/textfield": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tooltip": "15.0.0-canary.a246a4439.0", - "@material/top-app-bar": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/animations": "^17.0.0 || ^18.0.0", - "@angular/cdk": "17.0.5", - "@angular/common": "^17.0.0 || ^18.0.0", - "@angular/core": "^17.0.0 || ^18.0.0", - "@angular/forms": "^17.0.0 || ^18.0.0", - "@angular/platform-browser": "^17.0.0 || ^18.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/platform-browser": { - "version": "17.0.9", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/platform-browser/-/platform-browser-17.0.9.tgz", - "integrity": "sha512-Edz039lTJ9tHR6VEPHXUcQHqdCXAhJcdPoWSWsUBJ30eZFx0VlxQEb4ujlz8LBgIVvthp5WYhHMjd/ueWzEINw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/animations": "17.0.9", - "@angular/common": "17.0.9", - "@angular/core": "17.0.9" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "17.0.9", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.9.tgz", - "integrity": "sha512-44wIecNzxEUi3T/bggeJsgK+iD7Snu64sqQg00ewsuFCMpaWwyC80LnTIff/QnBVoggAjXvEql6vwr3AZNTcuQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0" - }, - "peerDependencies": { - "@angular/common": "17.0.9", - "@angular/compiler": "17.0.9", - "@angular/core": "17.0.9", - "@angular/platform-browser": "17.0.9" - } - }, - "node_modules/@assemblyscript/loader": { - "version": "0.10.1", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/helpers": { - "version": "7.23.8", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.21", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", - "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.21", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", - "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "dev": true - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", - "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", - "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/preset-env/-/preset-env-7.23.2.tgz", - "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.23.2", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.23.0", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-env/node_modules/core-js-compat": { - "version": "3.35.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/core-js-compat/-/core-js-compat-3.35.0.tgz", - "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.22.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/template": { - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.23.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "dev": true - }, - "node_modules/@material/animation": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/animation/-/animation-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-0eV06UGYeuFwC/4t+yjg3LCRGRLq72ybBtJYzcBDpP4ASTjie0WmpAOFJYXRq2U5X/yxLviDMhpRemoSUjgZ0Q==", - "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/auto-init": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/auto-init/-/auto-init-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-0QfmjT5elQ10hCxToVgq/WaC3301tVH1sJaO3O2yocVzr7s6iWm8/zch16V5hcHzQHbtcT3Rf4y1ZzmdNys2Iw==", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/banner": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/banner/-/banner-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-PBLgH7JEbEpTkLy33oyWXUhIFmSsdOrR6Gn6qIgQRo1qrnk5RSBGW2gEq4Z6793vjxM107gKudDb23E4Fcu4vg==", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/base": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/base/-/base-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-/ob3v3IFU8q2gGdVNWw5kNPjW2mRTeBIz1YdhGWUmRxKn2Kl8bdLOvrAmZtQMmPn/4cGXvinxpec/zVBWQKDkA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/button": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/button/-/button-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-rGpVRde0Aqhv2t9QvT8Zl3HvG89BeUNPOpgfpaLBZ4SGGAO4rIrckl/eCENibKgmmdCKcYZlG9gc5abQVPfUvw==", - "license": "MIT", - "dependencies": { - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/card": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/card/-/card-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-+rYUnBPgv5QVF6BeUs3toIRdSwFVohGmjk2ptTXMZkKxqAJt7Nr9Znbm3Ym2hD8GUHJeh3pyGFvEs6rG6JMYAw==", - "license": "MIT", - "dependencies": { - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/checkbox": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/checkbox/-/checkbox-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-sQwHzm1TSxHUoPrqplWTk/BhyzdDhzcwlbucwJK9W0o9WXMDk+d9PvcCxpP/9sAnVqZk42BfE89Y0T1DHglZ9A==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/chips": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/chips/-/chips-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-TiV9WJ5taEHPGWPhXbxJvUJhLzThg+VpK7aAlvL4RurtmJ7pURuEdRS4Z6o0OEqi3wKQ4z/+K44kZUn/+9HALg==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/checkbox": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/circular-progress": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/circular-progress/-/circular-progress-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-+QTfyExPWzgm2tqMInd32qQOftsC1b8MUhAhZSfuecYBfqAc7KZkQEKa2nm4y8EHKMFWe8/DcxLV6IxMBLgHwA==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/progress-indicator": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/circular-progress/node_modules/@material/progress-indicator": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/progress-indicator/-/progress-indicator-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-92HM5niUnqG5Y3M/xkscBD+2lkaWPDcIRPo0RHPYcyldL+EhWRv/sdQpfdiXw/h3uvKSowKxBMCHm8krAyf+sQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/data-table": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/data-table/-/data-table-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-89qVOjR7gqby6fsmh7tKj29SjQ2sGLXu2IzCeX3Vni4mz+xxo5dv11jxYNADvdgJDfhyDJFPh1FlqAH7O09nFA==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/checkbox": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/icon-button": "15.0.0-canary.a246a4439.0", - "@material/linear-progress": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/menu": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/select": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/density": { - "version": "15.0.0-canary.a246a4439.0", - "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/dialog": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/dialog/-/dialog-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-4lyxd+5ccOEMUGKzZcssaYyzkCsYTpYCSQSANR0toQPLv3voDwKMfA709uZI6+nL7Re6Xdf7jx8qe+QpTTjVcw==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/icon-button": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/dom": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/dom/-/dom-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-AftSOGQoQg/Ys2kOVjZzvqWmsnhg3Kam/2UC4Gj0DMMCu36J4MAoD+3PpnOd1aG3wiJKtUXR2vPIwE8I/PM9yg==", - "license": "MIT", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/drawer": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/drawer/-/drawer-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-/JUmbzRBaikdbZ250yA9ZTPqp2W5nGvvuHYoNVAAmtOmxuwGvvNNpWiVZy2lIYeYcf1hA7hJ5mEQxs0aSD7iWQ==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/elevation": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/elevation/-/elevation-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-lwPIOb8fHyOljIWYcVLPT73dPIEOKat/CXu6gqYIVMQgZQIksQNUA7z1O3l7apkRSuYUOYSXqrgU7AnWP4KcJg==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/fab": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/fab/-/fab-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-XUex3FNqxPD1i/4jITucB/RWTNkkdv52mbNmwrvbuThZlhuhyH9GzOQYTDop/b2783TPcv++xr8UUbuh8GWYzA==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/feature-targeting": { - "version": "15.0.0-canary.a246a4439.0", - "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/floating-label": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/floating-label/-/floating-label-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-832qZ/qxKx0KUatoeVY3Q2NmboVgiWBG0/1VsbJyodHrgQWfnBOHgLE+M322o6uM3OhvO+kWm4iYbvwhmLZGsw==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/focus-ring": { - "version": "15.0.0-canary.a246a4439.0", - "license": "MIT", - "dependencies": { - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0" - } - }, - "node_modules/@material/form-field": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/form-field/-/form-field-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Q/+ErgtAUFUPPUmWA1m5IP5voiN8XjPRwyoAlFxSTa/4t+EA5B18Z8Bsn9b6I0AC8RHke06H7UWrKz8XUDIFpw==", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/icon-button": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/icon-button/-/icon-button-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Igyo94rkIlqC91BR1Tv+WLTz1ZWcZZjl1xU7Vsx8mbWA1PnaRDUTNVV5LFi4e0ORp6GSblFTImpHngEy4agMEg==", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/image-list": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/image-list/-/image-list-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Rcj3q7Tp7Nwbe5ht6ptTc3zqK8TSDJHaPDBf+kzi0kkh6MAB4qoHPgn+HnA+zIZ79CScU56bN7zjA6XYaZvsLw==", - "license": "MIT", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/layout-grid": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/layout-grid/-/layout-grid-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-bkfxZuVzgtjEJgR3n8pvDQbe88ffULDJ5d2DF34IR8SOiRmQcj7UzqAt95XwIUcWlfisLCoIryP4U8XSpFb1EQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/line-ripple": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/line-ripple/-/line-ripple-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-20WmwRrejmtOdI37+959UqEVIjbMtAXlkDOkfCIA3OUhp+oZSjVkCqKxI16jxxVlnzJ353fy8xeSKzOHe4sExQ==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/linear-progress": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/linear-progress/-/linear-progress-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-IcCd4476pXHloTYadHDJ+2c2lntoVigeNnQEiD/ASQTKqKrJqkIdvvczFm9Ryu+V2+TKhp7vvQGFLUMaLPcmhw==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/progress-indicator": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/linear-progress/node_modules/@material/progress-indicator": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/progress-indicator/-/progress-indicator-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-92HM5niUnqG5Y3M/xkscBD+2lkaWPDcIRPo0RHPYcyldL+EhWRv/sdQpfdiXw/h3uvKSowKxBMCHm8krAyf+sQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/list": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/list/-/list-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-4H5dKIjCUGIPmKjfcegV0SBybD5NNdHp26OU6sovvWIvxSGQtDJr6z9I7i+0vF/HIS5ScbHD2+9/txtL80iqCA==", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/menu": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/menu/-/menu-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-2HOHQAIdWQtXjSvEIrW3lnbcIwFf5XaQhFzCEZ04FcSGApc4iLwsmRFVW3PzWx+mVrUrEfO/K42DVULIX9J1Pg==", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/menu-surface": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/menu-surface": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/menu-surface/-/menu-surface-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-4h4wZ0Rs7qBg1Otldw8ljp+LCULNL42pqbqcTXhKAkJM7pHcSw4k7IfoThSRLU3+V8T3/+qiAXyeQix2OGHzwg==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/notched-outline": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/notched-outline/-/notched-outline-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-zmRZHJ+5cOWsBatRyK50wuht78olXySyKOJIIEmy8lxSMZefI1764u0mr8tS1KYF8vSAl5cUlwCC3/2Njz1FPg==", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/floating-label": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/radio": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/radio/-/radio-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-on8EVztWXc/ajcaowFZ31ClGADYxQrhj4ulMne0NxdHHWQ44ttf5aXOVqtv5mxeOzrRACOkQyTUXBG07yTWCEQ==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/ripple": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/ripple/-/ripple-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Vl615/PIBpBD+IOI9Xypz0SV3RsmYJYSNx890Rih7irhUOaPsOUBmTYOWF5AsGBynqLcXoTNVhK92drYLKtJwQ==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/rtl": { - "version": "15.0.0-canary.a246a4439.0", - "license": "MIT", - "dependencies": { - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/segmented-button": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/segmented-button/-/segmented-button-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-oqGHs2C7C+yJW/xZf/wP8jBGLs6HcerhM3CsorLAEMH3MGuIlVC17WcisBewEWucsILYEWbySXy/7T4h6/psZA==", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/touch-target": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/select": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/select/-/select-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-odoNLiVOgdwbEeePkjHtlr43pjskDwyO8hi4z3jcud1Rg1czk5zoJ2mUI0+olOJjBQ26PGocwrSLqf3qaThbIA==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/floating-label": "15.0.0-canary.a246a4439.0", - "@material/line-ripple": "15.0.0-canary.a246a4439.0", - "@material/list": "15.0.0-canary.a246a4439.0", - "@material/menu": "15.0.0-canary.a246a4439.0", - "@material/menu-surface": "15.0.0-canary.a246a4439.0", - "@material/notched-outline": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/shape": { - "version": "15.0.0-canary.a246a4439.0", - "license": "MIT", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/slider": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/slider/-/slider-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-is1BSBpxaXBBv+wSVpe9WGWmWl59yJEeDNubTES2UFD0er3BmA+PdKkL09vvytDnBcbKf77TbxaRiUSGVaKUQA==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/snackbar": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/snackbar/-/snackbar-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-2NAtC1qozR/uajszZnPy08Ej8HNnpgvCjNCBerDN4SLH2Q0/aWrVrUjqRCp2ayAvsX+szoroGbCboMhaWRzDuQ==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/icon-button": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/switch": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/switch/-/switch-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-o0wcbYgm2yRs4een5uxT4RJnJ003DxXe33rk8vTBG2o7cdiSR3X7GJQxeIK3D9wPgWCAwBLhNYSzXrlTL5pkMw==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/tab/-/tab-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-HGLK774uMeLnhbjDJBOjft7S6SurZnKb+6Und88OMDUVUEG6MkFBAKQQr09iBIeLE2sUAiGQhBVQtb7LJKwolQ==", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/focus-ring": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/tab-indicator": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab-bar": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/tab-bar/-/tab-bar-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-dMQb1vXsBchQXcjbwgJZIGqTZHngm+3QGSOSb4LWjqHIgC5+w2RRrHsIAjNTyRhKssJ9nKKrbpM/Yz5vTPWH6w==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/tab": "15.0.0-canary.a246a4439.0", - "@material/tab-indicator": "15.0.0-canary.a246a4439.0", - "@material/tab-scroller": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab-indicator": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/tab-indicator/-/tab-indicator-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-gG2BgHT+ggKnUOaT8LjmH/+9nknRLh8v9qemrhUkDuCtZ8inlaC33OVbbxfrpQW3J+UzBh5YCUSC+2KrN39uUA==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab-scroller": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/tab-scroller/-/tab-scroller-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-6KvBpalc4SwLbHFm0rnuIE64VffUj7AKhnPc+mqM6VmxOvDzQ/ZSYga0rWlUfM4mCDFX3ZkSxim+iNzVF+Ejaw==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/tab": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/textfield": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/textfield/-/textfield-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-4BW5bUERPlIeiPnLSby21h1/xDmySuAG9Ucn1LM801a0+5mK3IwWb8031AP3filKZZqTx5JJvOJYZd6/OWBJVA==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/density": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/floating-label": "15.0.0-canary.a246a4439.0", - "@material/line-ripple": "15.0.0-canary.a246a4439.0", - "@material/notched-outline": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/theme": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/theme/-/theme-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-HWxC5Nhz8JZKTLTVmAsNxIGB3Kzr53+YFMg327S8/XuEDmI0RFHFvtwM9rADmyrHFBmUaVhV4iELyxFdi67c9w==", - "license": "MIT", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tokens": { - "version": "15.0.0-canary.a246a4439.0", - "license": "MIT", - "dependencies": { - "@material/elevation": "15.0.0-canary.a246a4439.0" - } - }, - "node_modules/@material/tooltip": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/tooltip/-/tooltip-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-Ja2Z4aZQkYWD6InXA+MG4M9zdKR6dYsXXlYzQppYpfcQzXylZqh5Y7WBLulG5fA2o83pHVwILfwFZM7j7ht08Q==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/button": "15.0.0-canary.a246a4439.0", - "@material/dom": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/tokens": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/top-app-bar": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/top-app-bar/-/top-app-bar-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-twQchmCa1In/FFrALPYojgeM8vmV7KH96wRY9NmPSJ046ANgPCicLBgLuSzrLETCFqAwbztqzxSG4xMBL81rYg==", - "license": "MIT", - "dependencies": { - "@material/animation": "15.0.0-canary.a246a4439.0", - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/elevation": "15.0.0-canary.a246a4439.0", - "@material/ripple": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/shape": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "@material/typography": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/touch-target": { - "version": "15.0.0-canary.a246a4439.0", - "license": "MIT", - "dependencies": { - "@material/base": "15.0.0-canary.a246a4439.0", - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/rtl": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/typography": { - "version": "15.0.0-canary.a246a4439.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@material/typography/-/typography-15.0.0-canary.a246a4439.0.tgz", - "integrity": "sha512-eXzBl9ROzWZ+41nan5pCrn1C/Zq3o/VsrLFaGv8fdRmhRR6/wHMeuvCCwGf5VtEmWdAE9FpJzRU/4ZPiJCJUyg==", - "license": "MIT", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.a246a4439.0", - "@material/theme": "15.0.0-canary.a246a4439.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@ngtools/webpack": { - "version": "17.0.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@ngtools/webpack/-/webpack-17.0.10.tgz", - "integrity": "sha512-UCiLrV2aLrtR7Wr/jJi0nH2Xzb7ETenrPWU/EcW9V3lnlDun5g1J0y01jRzvcipxNTOmFfI4lqv288nKSmSOAA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "typescript": ">=5.2 <5.3", - "webpack": "^5.54.0" - } - }, - "node_modules/@ngx-translate/core": { - "version": "15.0.0", - "license": "SEE LICENSE IN LICENSE", - "engines": { - "node": "^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/common": ">=16.0.0", - "@angular/core": ">=16.0.0", - "rxjs": "^6.5.5 || ^7.4.0" - } - }, - "node_modules/@ngx-translate/http-loader": { - "version": "8.0.0", - "license": "SEE LICENSE IN LICENSE", - "engines": { - "node": "^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/common": ">=16.0.0", - "@angular/core": ">=16.0.0", - "@ngx-translate/core": ">=15.0.0", - "rxjs": "^6.5.5 || ^7.4.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "lib/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@schematics/angular": { - "version": "17.0.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@schematics/angular/-/angular-17.0.10.tgz", - "integrity": "sha512-rRBlDMXfVPkW3CqVQxazFqkuJXd0BFnD1zjI9WtDiNt3o2pTHbLzuWJnXKuIt5rzv0x/bFwNqIt4CPW2DYGNMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "17.0.10", - "@angular-devkit/schematics": "17.0.10", - "jsonc-parser": "3.2.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@sigstore/core": { - "version": "0.2.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@sigstore/core/-/core-0.2.0.tgz", - "integrity": "sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "0.1.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@sigstore/verify/-/verify-0.1.0.tgz", - "integrity": "sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", - "@sigstore/protobuf-specs": "^0.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify/node_modules/@sigstore/bundle": { - "version": "2.1.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@sigstore/bundle/-/bundle-2.1.1.tgz", - "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "dev": true - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.21", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.14", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.11.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@types/node/-/node-20.11.3.tgz", - "integrity": "sha512-nrlmbvGPNGaj84IJZXMPhQuCMEVTT/hXZMJJG/aIqVL9fKxqk814sGGtJA4GI6hpJSLQjpi6cn0Qx9eOf9SDVg==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/node-forge": { - "dev": true - }, - "node_modules/@types/qs": { - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.5.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.6.0" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/abab": { - "version": "2.0.6", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/abbrev": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "dev": true, - "peer": true - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/async": { - "dev": true - }, - "node_modules/async-each-series": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/autoprefixer/node_modules/caniuse-lite": { - "version": "1.0.30001577", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/caniuse-lite/-/caniuse-lite-1.0.30001577.tgz", - "integrity": "sha512-rs2ZygrG1PNXMfmncM0B5H1hndY5ZCC9b5TkFaVNfZ+AUlyqcMyVIQtc3fsezi0NUCk5XZfDf9WS6WxMxnfdrg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/babel-loader": { - "version": "9.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.4", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/base64id": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "dev": true, - "license": "MIT" - }, - "node_modules/big.js": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/destroy": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/body-parser/node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/raw-body": { - "version": "2.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bonjour-service": { - "dev": true - }, - "node_modules/boolbase": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-sync": { - "version": "2.29.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/browser-sync/-/browser-sync-2.29.3.tgz", - "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "browser-sync-client": "^2.29.3", - "browser-sync-ui": "^2.29.3", - "bs-recipes": "1.3.4", - "chalk": "4.1.2", - "chokidar": "^3.5.1", - "connect": "3.6.6", - "connect-history-api-fallback": "^1", - "dev-ip": "^1.0.1", - "easy-extender": "^2.3.4", - "eazy-logger": "^4.0.1", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "fs-extra": "3.0.1", - "http-proxy": "^1.18.1", - "immutable": "^3", - "localtunnel": "^2.0.1", - "micromatch": "^4.0.2", - "opn": "5.3.0", - "portscanner": "2.2.0", - "raw-body": "^2.3.2", - "resp-modifier": "6.0.2", - "rx": "4.1.0", - "send": "0.16.2", - "serve-index": "1.9.1", - "serve-static": "1.13.2", - "server-destroy": "1.0.1", - "socket.io": "^4.4.1", - "ua-parser-js": "^1.0.33", - "yargs": "^17.3.1" - }, - "bin": { - "browser-sync": "dist/bin.js" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/browser-sync/node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/browser-sync/node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/browser-sync/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/browser-sync/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/browser-sync/node_modules/browser-sync-client": { - "version": "2.29.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/browser-sync-client/-/browser-sync-client-2.29.3.tgz", - "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "etag": "1.8.1", - "fresh": "0.5.2", - "mitt": "^1.1.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/browser-sync/node_modules/browser-sync-ui": { - "version": "2.29.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", - "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async-each-series": "0.1.1", - "chalk": "4.1.2", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^4.4.1", - "stream-throttle": "^0.1.3" - } - }, - "node_modules/browser-sync/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/browser-sync/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/browser-sync/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/browser-sync/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/browser-sync/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/browser-sync/node_modules/eazy-logger": { - "version": "4.0.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/eazy-logger/-/eazy-logger-4.0.1.tgz", - "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", - "dev": true, - "dependencies": { - "chalk": "4.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/browser-sync/node_modules/engine.io": { - "version": "6.5.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/engine.io/-/engine.io-6.5.4.tgz", - "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.11.0" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/browser-sync/node_modules/engine.io-client": { - "version": "6.5.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/engine.io-client/-/engine.io-client-6.5.3.tgz", - "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - } - }, - "node_modules/browser-sync/node_modules/engine.io-parser": { - "version": "5.2.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/browser-sync/node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/browser-sync/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-sync/node_modules/localtunnel": { - "version": "2.0.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/localtunnel/-/localtunnel-2.0.2.tgz", - "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", - "dev": true, - "license": "MIT", - "dependencies": { - "axios": "0.21.4", - "debug": "4.3.2", - "openurl": "1.1.1", - "yargs": "17.1.1" - }, - "bin": { - "lt": "bin/lt.js" - }, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/browser-sync/node_modules/localtunnel/node_modules/yargs": { - "version": "17.1.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/yargs/-/yargs-17.1.1.tgz", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/browser-sync/node_modules/socket.io": { - "version": "4.7.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/socket.io/-/socket.io-4.7.4.tgz", - "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.5.2", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/browser-sync/node_modules/socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ws": "~8.11.0" - } - }, - "node_modules/browser-sync/node_modules/socket.io-client": { - "version": "4.7.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/socket.io-client/-/socket.io-client-4.7.4.tgz", - "integrity": "sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.5.2", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/browser-sync/node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/browser-sync/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-sync/node_modules/ua-parser-js": { - "version": "1.0.37", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/ua-parser-js/-/ua-parser-js-1.0.37.tgz", - "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/browser-sync/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/browser-sync/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/browser-sync/node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/browser-sync/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/browserslist": { - "version": "4.22.2", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-recipes": { - "version": "1.3.4", - "dev": true, - "license": "ISC" - }, - "node_modules/buffer": { - "version": "5.7.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/builtins": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind/node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.1", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "dev": true - }, - "node_modules/chalk": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cheerio": { - "version": "0.22.0", - "dev": true, - "license": "MIT", - "dependencies": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash.assignin": "^4.0.9", - "lodash.bind": "^4.1.4", - "lodash.defaults": "^4.0.1", - "lodash.filter": "^4.4.0", - "lodash.flatten": "^4.2.0", - "lodash.foreach": "^4.3.0", - "lodash.map": "^4.4.0", - "lodash.merge": "^4.4.0", - "lodash.pick": "^4.2.1", - "lodash.reduce": "^4.4.0", - "lodash.reject": "^4.4.0", - "lodash.some": "^4.4.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cheerio/node_modules/css-select": { - "version": "1.2.0", - "dev": true, - "license": "BSD-like", - "dependencies": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "node_modules/cheerio/node_modules/css-what": { - "version": "2.1.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": "*" - } - }, - "node_modules/cheerio/node_modules/dom-serializer": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "node_modules/cheerio/node_modules/domelementtype": { - "version": "1.3.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/cheerio/node_modules/domhandler": { - "version": "2.4.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/cheerio/node_modules/domutils": { - "version": "1.5.1", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/cheerio/node_modules/entities": { - "version": "1.1.2", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/cheerio/node_modules/htmlparser2": { - "version": "3.10.1", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/cheerio/node_modules/nth-check": { - "version": "1.0.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "4.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 12" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/compressible": { - "version": "2.0.18", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/connect": { - "version": "3.6.6", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "~1.3.2", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.4.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/copy-anything": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "is-what": "^3.14.1" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/core-js-compat": { - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "dev": true, - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/critters": { - "version": "0.0.20", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chalk": "^4.1.0", - "css-select": "^5.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.2", - "htmlparser2": "^8.0.2", - "postcss": "^8.4.23", - "pretty-bytes": "^5.3.0" - } - }, - "node_modules/critters/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/critters/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/critters/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/critters/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/critters/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/critters/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-loader": { - "version": "6.8.1", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deepmerge-ts": { - "version": "5.1.0", - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/detect-node": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/dev-ip": { - "version": "1.0.1", - "dev": true, - "bin": { - "dev-ip": "lib/dev-ip.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/easy-extender": { - "version": "2.3.4", - "dev": true, - "dependencies": { - "lodash": "^4.17.10" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.12", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "~0.4.13" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "devOptional": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/errno": { - "version": "0.1.8", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-module-lexer": { - "version": "1.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" - } - }, - "node_modules/esbuild-wasm": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/esbuild-wasm/-/esbuild-wasm-0.19.5.tgz", - "integrity": "sha512-7zmLLn2QCj93XfMmHtzrDJ1UBuOHB2CZz1ghoCEZiRajxjUvHsF40PnbzFIY/pmesqPRaEtEWii0uzsTbnAgrA==", - "dev": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "dev": true - }, - "node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter-asyncresource": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/express": { - "version": "4.18.2", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/destroy": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/send": { - "version": "0.18.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/express/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/serve-static": { - "version": "1.15.0", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/express/node_modules/statuses": { - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.16.0", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/figures": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "2.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "is-buffer": "~1.1.2" - } - }, - "node_modules/follow-redirects": { - "dev": true - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs": { - "version": "0.0.1-security", - "dev": true, - "license": "ISC" - }, - "node_modules/fs-extra": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^3.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "dev": true, - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/fsevents": { - "dev": true, - "optional": true - }, - "node_modules/function-bind": { - "version": "1.1.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gettext-parser": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "encoding": "0.1.12" - } - }, - "node_modules/glob": { - "version": "7.1.1", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/globals": { - "version": "11.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "13.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "license": "ISC" - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hdr-histogram-js": { - "version": "2.0.3", - "dev": true, - "license": "BSD", - "dependencies": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "node_modules/hdr-histogram-percentiles-obj": { - "version": "3.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/hosted-git-info": { - "dev": true - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.4.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "dev": true, - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-errors/node_modules/statuses": { - "dev": true - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "dev": true, - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent/node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "6.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/ignore-walk/node_modules/minimatch": { - "version": "9.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immutable": { - "version": "3.8.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/ini": { - "version": "4.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/inquirer": { - "version": "9.2.11", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/inquirer/-/inquirer-9.2.11.tgz", - "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ljharb/through": "^2.3.9", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^5.0.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/inquirer/node_modules/@ljharb/through": { - "version": "2.3.11", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/ipaddr.js": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "dev": true, - "license": "MIT" - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-like": { - "version": "1.0.8", - "dev": true, - "license": "ISC", - "dependencies": { - "lodash.isfinite": "^3.3.2" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-unicode-supported": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-what": { - "version": "3.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/isobject": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.0", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/jsonfile": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map-support": "^0.5.5" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/launch-editor": { - "version": "2.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/less": { - "dev": true, - "peer": true - }, - "node_modules/less-loader": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "klona": "^2.0.4" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/license-webpack-plugin": { - "version": "4.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "webpack-sources": "^3.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-sources": { - "optional": true - } - } - }, - "node_modules/limiter": { - "dev": true - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.assignin": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.bind": { - "version": "4.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.filter": { - "version": "4.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.foreach": { - "version": "4.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isfinite": { - "version": "3.3.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.map": { - "version": "4.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.pick": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.reduce": { - "version": "4.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.reject": { - "version": "4.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.some": { - "version": "4.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "dev": true, - "license": "Unlicense", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "dev": true - }, - "node_modules/mime": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "dev": true, - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "0.0.8", - "dev": true, - "license": "MIT" - }, - "node_modules/minipass": { - "dev": true - }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/minizlib": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/mitt": { - "version": "1.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/mkdirp": { - "version": "0.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mrmime": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/mute-stream": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/needle": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/ngx-translate-extract": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "1.1.3", - "cheerio": "0.22.0", - "flat": "2.0.1", - "fs": "0.0.1-security", - "gettext-parser": "1.2.2", - "glob": "7.1.1", - "mkdirp": "0.5.1", - "path": "0.12.7", - "yargs": "7.0.2" - }, - "bin": { - "ngx-translate-extract": "bin/cli.js" - }, - "engines": { - "node": ">=4.3.2" - } - }, - "node_modules/ngx-translate-extract/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/ansi-styles": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/camelcase": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/chalk": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/cliui": { - "version": "3.2.0", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/get-caller-file": { - "version": "1.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/ngx-translate-extract/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/string-width": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/supports-color": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/wrap-ansi": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/y18n": { - "version": "3.2.2", - "dev": true, - "license": "ISC" - }, - "node_modules/ngx-translate-extract/node_modules/yargs": { - "version": "7.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "node_modules/ngx-translate-extract/node_modules/yargs-parser": { - "version": "5.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - }, - "node_modules/ngx-translate-multi-http-loader": { - "version": "17.0.0", - "license": "MIT", - "dependencies": { - "tslib": "^2.6.2" - }, - "peerDependencies": { - "@angular/common": ">=13.0.0", - "@angular/core": ">=13.0.0", - "@ngx-translate/core": ">=15.0.0", - "deepmerge-ts": "^5.1.0", - "rxjs": "^7.8.1" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.14", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-package-data": { - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-bundled": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg": { - "version": "11.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-packlist": { - "version": "8.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest": { - "version": "9.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openurl": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/opn": { - "version": "5.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/os-locale": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pacote": { - "version": "17.0.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/pacote/-/pacote-17.0.4.tgz", - "integrity": "sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^2.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@npmcli/agent": { - "version": "2.2.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@npmcli/agent/-/agent-2.2.0.tgz", - "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@npmcli/git": { - "version": "5.0.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@npmcli/git/-/git-5.0.4.tgz", - "integrity": "sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", - "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", - "dev": true, - "license": "ISC", - "dependencies": { - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@npmcli/run-script": { - "version": "7.0.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@npmcli/run-script/-/run-script-7.0.3.tgz", - "integrity": "sha512-ZMWGLHpzMq3rBGIwPyeaoaleaLMvrBrH8nugHxTi5ACkJZXTxXPtVuEH91ifgtss5hUwJQ2VDnzDBWPmz78rvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@sigstore/bundle": { - "version": "2.1.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@sigstore/bundle/-/bundle-2.1.1.tgz", - "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@sigstore/sign": { - "version": "2.2.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@sigstore/sign/-/sign-2.2.1.tgz", - "integrity": "sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", - "@sigstore/protobuf-specs": "^0.2.1", - "make-fetch-happen": "^13.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@sigstore/tuf": { - "version": "2.3.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@sigstore/tuf/-/tuf-2.3.0.tgz", - "integrity": "sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", - "tuf-js": "^2.2.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@tufjs/models": { - "version": "2.0.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@tufjs/models/-/models-2.0.0.tgz", - "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pacote/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/pacote/node_modules/cacache": { - "version": "18.0.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/cacache/-/cacache-18.0.2.tgz", - "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/pacote/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pacote/node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pacote/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pacote/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/pacote/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/pacote/node_modules/make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pacote/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/pacote/node_modules/minipass-fetch": { - "version": "3.0.4", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/pacote/node_modules/node-gyp": { - "version": "10.0.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/node-gyp/-/node-gyp-10.0.1.tgz", - "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/nopt": { - "version": "7.2.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", - "dev": true, - "license": "ISC", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/npm-registry-fetch": { - "version": "16.1.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", - "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", - "dev": true, - "license": "ISC", - "dependencies": { - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/sigstore": { - "version": "2.2.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/sigstore/-/sigstore-2.2.0.tgz", - "integrity": "sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", - "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.2.1", - "@sigstore/tuf": "^2.3.0", - "@sigstore/verify": "^0.1.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/socks-proxy-agent": { - "version": "8.0.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pacote/node_modules/tuf-js": { - "version": "2.2.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/tuf-js/-/tuf-js-2.2.0.tgz", - "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/models": "2.0.0", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/which": { - "version": "4.0.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "dev": true, - "license": "(MIT AND Zlib)" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse5": { - "version": "7.1.2", - "devOptional": true, - "license": "MIT", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-html-rewriting-stream": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-sax-parser": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path": { - "version": "0.12.7", - "dev": true, - "license": "MIT", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/piscina": { - "version": "4.1.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/piscina/-/piscina-4.1.0.tgz", - "integrity": "sha512-sjbLMi3sokkie+qmtZpkfMCUJTpbxJm/wvaPzU28vmYSsTSW8xk9JcFUsbqGJdtPpIQ9tuj+iDcTtgZjwnOSig==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventemitter-asyncresource": "^1.0.0", - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0" - }, - "optionalDependencies": { - "nice-napi": "^1.0.2" - } - }, - "node_modules/piscina/node_modules/nice-napi": { - "version": "1.0.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "!win32" - ], - "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" - } - }, - "node_modules/piscina/node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/piscina/node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/portscanner": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^2.6.0", - "is-number-like": "^1.0.3" - }, - "engines": { - "node": ">=0.4", - "npm": ">=1.0.0" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-loader": { - "version": "7.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.2.0", - "jiti": "^1.18.2", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "dev": true - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/proc-log": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/process": { - "version": "0.11.10", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/punycode": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/read-package-json": { - "version": "7.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readdirp/node_modules/picomatch": { - "dev": true - }, - "node_modules/rechoir": { - "version": "0.6.2", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.14", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "dev": true, - "license": "MIT" - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/requires-port": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resp-modifier": { - "version": "6.0.2", - "dev": true, - "dependencies": { - "debug": "^2.2.0", - "minimatch": "^3.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/resp-modifier/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/resp-modifier/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.29.4", - "dev": true, - "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-async": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rx": { - "version": "4.1.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/rxjs": { - "version": "7.8.1", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/safevalues": { - "version": "0.3.4", - "license": "Apache-2.0" - }, - "node_modules/sass": { - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/sass-loader": { - "version": "13.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.3.0", - "dev": true, - "license": "ISC", - "optional": true - }, - "node_modules/schema-utils": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/send": { - "version": "0.16.2", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/depd": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/http-errors": { - "version": "1.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/inherits": { - "version": "2.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/send/node_modules/mime": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/send/node_modules/setprototypeof": { - "version": "1.1.0", - "dev": true, - "license": "ISC" - }, - "node_modules/send/node_modules/statuses": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.13.2", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/server-destroy": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "dev": true, - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "license": "BSD-3-Clause", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/slash": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snap": { - "version": "1.1.0", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "commander": "^2.18.0", - "fs-extra": "^7.0.0", - "shelljs": "^0.8.2" - }, - "bin": { - "snap": "snap.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/snap/node_modules/fs-extra": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/snap/node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "dev": true, - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" - } - }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.16", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/spdy": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/ssri": { - "version": "10.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/statuses": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-throttle": { - "version": "0.1.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "commander": "^2.2.0", - "limiter": "^1.0.5" - }, - "bin": { - "throttleproxy": "bin/throttleproxy.js" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.2.0", - "dev": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/terser": { - "version": "5.24.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/tmp": { - "version": "0.0.33", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" - }, - "node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "dev": true, - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-assert": { - "version": "1.0.9", - "dev": true, - "license": "MIT" - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici": { - "version": "5.27.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/undici/-/undici-5.27.2.tgz", - "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "dev": true, - "license": "MIT" - }, - "node_modules/undici/node_modules/@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-filename": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unique-slug": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util": { - "version": "0.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vite": { - "version": "4.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/esbuild": { - "dev": true - }, - "node_modules/watchpack": { - "version": "2.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "dev": true, - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "6.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "dev": true - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-merge/node_modules/flat": { - "version": "5.0.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-subresource-integrity": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "typed-assert": "^1.0.8" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", - "webpack": "^5.12.0" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } - } - }, - "node_modules/webpack/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.21", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", - "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack/node_modules/terser": { - "version": "5.26.0", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/terser/-/terser-5.26.0.tgz", - "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/which-module": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/wildcard": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/yargs": { - "version": "17.7.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zone.js": { - "version": "0.14.3", - "resolved": "https://lo-artifact.de.bosch.com:443/artifactory/api/npm/npm-automationx/zone.js/-/zone.js-0.14.3.tgz", - "integrity": "sha512-jYoNqF046Q+JfcZSItRSt+oXFcpXL88yq7XAZjb/NKTS7w2hHpKjRJ3VlFD1k75wMaRRXNUt5vrZVlygiMyHbA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - } - } - } -} diff --git a/samples-angular/multi-language/package.json b/samples-angular/multi-language/package.json deleted file mode 100644 index 4978c743f..000000000 --- a/samples-angular/multi-language/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "multi-language", - "version": "1.0.0", - "scripts": { - "ng": "ng", - "start": "ng serve -o", - "build": "ng build", - "watch": "ng build --watch --configuration development", - "test": "ng test" - }, - "private": true, - "dependencies": { - "@angular/animations": "^17.0.9", - "@angular/cdk": "^17.0.4", - "@angular/common": "^17.0.9", - "@angular/compiler": "^17.0.9", - "@angular/core": "^17.0.9", - "@angular/forms": "^17.0.9", - "@angular/material": "^17.0.4", - "@angular/platform-browser": "^17.0.9", - "@angular/platform-browser-dynamic": "^17.0.9", - "@ngx-translate/core": "^15.0.0", - "@ngx-translate/http-loader": "^8.0.0", - "ngx-translate-multi-http-loader": "^17.0.0", - "snap": "^1.1.0", - "tslib": "^2.6.2", - "zone.js": "^0.14.2" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^17.0.9", - "@angular/cli": "^17.0.9", - "@angular/compiler-cli": "^17.0.9", - "@types/node": "^20.10.5", - "ngx-translate-extract": "^1.0.0", - "typescript": "^5.2.2" - } -} diff --git a/samples-angular/multi-language/snap/snapcraft.yaml b/samples-angular/multi-language/snap/snapcraft.yaml deleted file mode 100644 index 78b9832ba..000000000 --- a/samples-angular/multi-language/snap/snapcraft.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# See https://snapcraft.io/docs/getting-started -# See https://snapcraft.io/docs/snapcraft-yaml-reference -name: sdk-multi-language -version: '1.0.0' -base: core22 -title: SDK Multi-language -summary: Multi-language sample in Angular for ctrlX -description: | - This sample shows how to set different languages in Third-party apps. -grade: stable # must be 'stable' to release into candidate/stable channels -confinement: strict # reduced file access to selected areas, reduced - -parts: - configs: - source: ./configs - plugin: dump - organize: - 'package-assets/*': package-assets/${SNAPCRAFT_PROJECT_NAME}/ - - www: - source: . - plugin: npm - npm-node-version: '20.10.0' - override-build: | - # install node - snapcraftctl build - - # setup npm - npm config set unsafe-perm true - - # install dependencies - npm install - - # run angular build script - npm run build - - # remove node - rm -rf ${SNAPCRAFT_PART_INSTALL} - organize: - '${SNAPCRAFT_PART_BUILD}/dist/app': package-www/${SNAPCRAFT_PROJECT_NAME}/ - -slots: - package-assets: - interface: content - content: package-assets - source: - read: - - $SNAP/package-assets/${SNAPCRAFT_PROJECT_NAME} - - package-www: - interface: content - content: package-www - source: - read: - - $SNAP/package-www/${SNAPCRAFT_PROJECT_NAME} diff --git a/samples-cpp/datalayer.client.alldata/CMakeLists.txt b/samples-cpp/datalayer.client.alldata/CMakeLists.txt index 6ca412802..6945746fa 100644 --- a/samples-cpp/datalayer.client.alldata/CMakeLists.txt +++ b/samples-cpp/datalayer.client.alldata/CMakeLists.txt @@ -79,9 +79,9 @@ SET ( PRIVATE_INCLUDE_DIRS # execute_process(COMMAND uname -a OUTPUT_VARIABLE HOST_SYSTEM_ARCH) IF( ${HOST_SYSTEM_ARCH} MATCHES "aarch64") - set (FLATBUFFERS_FLATC_EXECUTABLE ${USER_DEPENDENCY_DIR}/bin/oss.flatbuffers/ubuntu22-gcc-aarch64/release/flatc) + set (FLATBUFFERS_FLATC_EXECUTABLE ${USER_DEPENDENCY_DIR}/bin/oss.flatbuffers/ubuntu22-gcc-aarch64/flatc) ELSE() - set (FLATBUFFERS_FLATC_EXECUTABLE ${USER_DEPENDENCY_DIR}/bin/oss.flatbuffers/ubuntu22-gcc-x64/release/flatc) + set (FLATBUFFERS_FLATC_EXECUTABLE ${USER_DEPENDENCY_DIR}/bin/oss.flatbuffers/ubuntu22-gcc-x64/flatc) ENDIF() execute_process(COMMAND chmod +x ${FLATBUFFERS_FLATC_EXECUTABLE}) set (FLATBUFFERS_INCLUDE_DIR ${USER_DEPENDENCY_DIR}/include/oss.flatbuffers) diff --git a/samples-cpp/datalayer.ecat.io/README.md b/samples-cpp/datalayer.ecat.io/README.md index b6a874751..98ef5377b 100644 --- a/samples-cpp/datalayer.ecat.io/README.md +++ b/samples-cpp/datalayer.ecat.io/README.md @@ -4,7 +4,7 @@ This sample app toggles some Fieldbus I/O's. ## Introduction -It demonstrate how it is possible to read inputs and write outputs. It starts to toggle the outputs while the first channel of the input is set to true. +It demonstrate how it is possible to read inputs and write outputs. ## Prerequisites for the ctrlX CORE diff --git a/samples-cpp/datalayer.ecat.io/main.cpp b/samples-cpp/datalayer.ecat.io/main.cpp index ed8449830..e6eee373e 100644 --- a/samples-cpp/datalayer.ecat.io/main.cpp +++ b/samples-cpp/datalayer.ecat.io/main.cpp @@ -4,12 +4,16 @@ * SPDX-License-Identifier: MIT */ -#include -#include -#include #include -#include +#include #include +#include +#include +#include +#include +#include +#include +#include #include "comm/datalayer/datalayer.h" #include "comm/datalayer/datalayer_system.h" @@ -18,349 +22,255 @@ #include "ctrlx_datalayer_helper.h" static bool g_endProcess = false; -static void signalHandler(int signal) -{ +static void signalHandler(int signal) { std::cout << "INFO Signal received: " << signal << std::endl; g_endProcess = true; } -int run(comm::datalayer::DatalayerSystem& datalayerSystem, comm::datalayer::IClient* client) -{ - comm::datalayer::DlResult dlResult; - comm::datalayer::Variant outputMap; - comm::datalayer::Variant inputMap; - - std::string address = "fieldbuses/ethercat/master/instances/ethercatmaster/realtime_data/output/map"; - std::cout << "INFO Reading " << address << std::endl; - dlResult = client->readSync(address, &outputMap); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - std::cout << "ERROR Reading " << address << " failed with: " << dlResult.toString() << std::endl; - return 1; - } - - address = "fieldbuses/ethercat/master/instances/ethercatmaster/realtime_data/input/map"; - std::cout << "INFO Reading " << address << std::endl; - dlResult = client->readSync(address, &inputMap); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - std::cout << "ERROR Reading " << address << " failed with: " << dlResult.toString() << std::endl; - return 1; - } +bool getMemoryMap(comm::datalayer::DatalayerSystem &datalayerSystem, + comm::datalayer::IClient *client, + std::shared_ptr &memoryUser, + const std::string &address, uint32_t *revision, + std::vector *byteIndices, + std::vector *bitIndices) { - // First we have to open the realtime memory, reading the whole outputs. - uint8_t* outData; - address = "fieldbuses/ethercat/master/instances/ethercatmaster/realtime_data/output"; - std::cout << "INFO Opening " << address << std::endl; - std::shared_ptr rtMemUserOutput; - dlResult = datalayerSystem.factory()->openMemory(rtMemUserOutput, address); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - std::cout << "ERROR Opening " << address << " failed with: " << dlResult.toString() << std::endl; - return 1; + comm::datalayer::DlResult dlResult; + comm::datalayer::Variant variantMap; + + const std::string addressMap = address + "/map"; + std::cout << "INFO Reading " << addressMap << std::endl; + dlResult = client->readSync(addressMap, &variantMap); + if (comm::datalayer::STATUS_FAILED(dlResult)) { + std::cout << "ERROR Reading " << addressMap + << " failed with: " << dlResult.toString() << std::endl; + return false; } - // We can read the inputs to get a start trigger for example - uint8_t* inData; - address = "fieldbuses/ethercat/master/instances/ethercatmaster/realtime_data/input"; std::cout << "INFO Opening " << address << std::endl; - std::shared_ptr rtMemUserInput; - dlResult = datalayerSystem.factory()->openMemory(rtMemUserInput, address); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - std::cout << "ERROR Opening " << address << " failed with: " << dlResult.toString() << std::endl; - return 1; + dlResult = datalayerSystem.factory()->openMemory(memoryUser, address); + if (comm::datalayer::STATUS_FAILED(dlResult)) { + std::cout << "ERROR Opening " << address + << " failed with: " << dlResult.toString() << std::endl; + return false; } - // After successful reading the outputs we must take the memory layout. - // A memory owner defines the layout of the realtime memory. - // You see it in the datalayer.realtime example (memoryowner.cpp) - std::cout << "INFO Try to get output memory map" << std::endl; int tries = 10; - do - { - if (g_endProcess) - { - return 0; - } - dlResult = rtMemUserOutput->getMemoryMap(outputMap); - if (comm::datalayer::STATUS_SUCCEEDED(dlResult)) - { - break; + do { + if (g_endProcess) { + return false; } - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - tries--; - } while (tries > 0); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - std::cout << "ERROR Getting output memory map failed with: " << dlResult.toString() << std::endl; - return 1; - } - - std::cout << "INFO Try to get input memory map" << std::endl; - tries = 10; - do - { - if (g_endProcess) - { - return 0; - } + std::cout << "INFO Try #" << std::to_string(tries) << " to get memory map" + << std::endl; - dlResult = rtMemUserInput->getMemoryMap(inputMap); - if (comm::datalayer::STATUS_SUCCEEDED(dlResult)) - { + dlResult = memoryUser->getMemoryMap(variantMap); + if (comm::datalayer::STATUS_SUCCEEDED(dlResult)) { break; } - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + std::this_thread::sleep_for(std::chrono::milliseconds(1000)); tries--; } while (tries > 0); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - std::cout << "ERROR Getting input memory map failed with: " << dlResult.toString() << std::endl; - return 1; + if (comm::datalayer::STATUS_FAILED(dlResult)) { + std::cout << "ERROR getMemoryMap() failed with: " << dlResult.toString() + << std::endl; + return false; } - // Now we got the layout, but we have to convert it cause it is a flatbuffer - // To imagen the result after converting the data you can take a look at the datalayertree - // "devices/ethercatmaster/0/outputs -> map" - dlResult = outputMap.verifyFlatbuffers(comm::datalayer::VerifyMemoryMapBuffer); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - std::cout << "ERROR Verify output map flatbuffers failed with: " << dlResult.toString() << std::endl; - return -1; + dlResult = + variantMap.verifyFlatbuffers(comm::datalayer::VerifyMemoryMapBuffer); + if (comm::datalayer::STATUS_FAILED(dlResult)) { + std::cout << "ERROR verifyFlatbuffers() failed with: " + << dlResult.toString() << std::endl; + return false; } - // Verify the Input layout, similar to the output - dlResult = inputMap.verifyFlatbuffers(comm::datalayer::VerifyMemoryMapBuffer); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - std::cout << "ERROR Verify input map flatbuffers failed with: " << dlResult.toString() << std::endl; - return -1; - } + // At this point we can take the data. It is important to always check the + // revision number. The revision number will be different if the layout will + // be changed. + auto memMap = comm::datalayer::GetMemoryMap(variantMap.getData()); + *revision = memMap->revision(); - // At this point we can take the data. It is important to always check the revision number. - // The revision number will be different if the layout will be changed. - auto memMap = comm::datalayer::GetMemoryMap(outputMap.getData()); - auto revision = memMap->revision(); std::string name; uint32_t offset = 0; - std::map mapOfOutputs; - - std::cout << "INFO Reading Bitoffset and Name of DOs" << std::endl; - // Save all the outputs (name and offset) into a map - for (auto variable = memMap->variables()->begin(); variable != memMap->variables()->end(); variable++) - { - if (variable->bitsize() == 1) - { + uint32_t byteIndex = 0; + uint8_t bitIndex = 0; + + std::cout << "INFO Reading Bitoffset and Name" << std::endl; + for (auto variable = memMap->variables()->begin(); + variable != memMap->variables()->end(); variable++) { + if (variable->bitsize() == 1) { name = variable->name()->str(); offset = variable->bitoffset(); - std::cout << "INFO Name: " << name << " Bitoffset: " << offset << std::endl; - mapOfOutputs.insert(std::make_pair(name, offset)); + byteIndex = offset >> 3; + bitIndex = offset & 7; + byteIndices->push_back(byteIndex); + bitIndices->push_back(bitIndex); + std::cout << "INFO Name: " << name << " Bitoffset: " << offset + << " Byte index: " << byteIndex << " Bit index: " << bitIndex + << std::endl; } } - // Iputs - auto memMapInputs = comm::datalayer::GetMemoryMap(inputMap.getData()); - auto revisionIn = memMapInputs->revision(); - std::string nameIn; - uint32_t offsetIn = 0; - std::map mapOfInputs; - - std::cout << "INFO Reading Bitoffset and Name of DIs" << std::endl; - // Save all the inputs (name and offset) into a map - for (auto variable = memMapInputs->variables()->begin(); variable != memMapInputs->variables()->end(); variable++) - { - if (variable->bitsize() == 1) - { - name = variable->name()->str(); - offset = variable->bitoffset(); - std::cout << "INFO Name: " << name << " Bitoffset: " << offset << std::endl; - mapOfInputs.insert(std::make_pair(nameIn, offsetIn)); - } + if (byteIndices->size() == 0) { + std::cout << "ERROR No bit values (bitsize=1) found" << std::endl; + return false; } - // Check every second the first input channel if it's true start to toggle - bool startbit = false; - while (!startbit) - { - if (g_endProcess) - { - return 0; - } + std::cout << "INFO " << byteIndices->size() << " bit values (bitsize=1) found" + << std::endl; + return true; +} - std::map::iterator it = mapOfInputs.find("S20_EC_BK/S20_DI_16_1/Digital_Input_Channels.DI_Channel_01_Terminal_Point_00_"); - std::cout << "INFO Read Input: " << it->first << " at Offset " << it->second << std::endl; +bool copyInputToOutput( + comm::datalayer::DatalayerSystem &datalayerSystem, + comm::datalayer::IClient *client, + std::shared_ptr &memoryUserInput, + uint32_t revisionInput, std::vector &byteIndicesInput, + std::vector &bitIndicesInput, + std::shared_ptr &memoryUserOutput, + uint32_t revisionOutput, std::vector &byteIndicesOutput, + std::vector &bitIndicesOutput, bool *buffer) { + + // Read input values ------------------------------------- + uint8_t *dataInput; + comm::datalayer::DlResult dlResult = + memoryUserInput->beginAccess(dataInput, revisionInput); + if (comm::datalayer::STATUS_FAILED(dlResult)) { + std::cout << "ERROR beginAccess() input memory failed with: " + << dlResult.toString() << std::endl; + return false; + } - dlResult = rtMemUserInput->beginAccess(inData, revisionIn); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - break; - } + for (size_t i = 0; i < sizeof(buffer); i++) { + uint8_t allBits = dataInput[byteIndicesInput[i]]; + buffer[i] = (allBits & (1 << bitIndicesInput[i])) > 0; + } - uint8_t value = inData[it->second / 8]; - if (value) - { - startbit = true; - } + memoryUserInput->endAccess(); - rtMemUserInput->endAccess(); - std::this_thread::sleep_for(std::chrono::seconds(1)); + // Write putput values --------------------------------------- + uint8_t *dataOutput; + dlResult = memoryUserOutput->beginAccess(dataOutput, revisionOutput); + if (comm::datalayer::STATUS_FAILED(dlResult)) { + std::cout << "ERROR beginAccess() output memory failed with: " + << dlResult.toString() << std::endl; + return false; } - // Begin to write outputs until SIGINT is send - bool temp = false; - while (true) - { - if (g_endProcess) - { - return 0; + for (size_t i = 0; i < sizeof(buffer); i++) { + uint8_t allBits = dataOutput[byteIndicesOutput[i]]; + uint8_t bitMask = 1 << bitIndicesOutput[i]; + if (buffer[i]) { + allBits |= bitMask; + } else { + bitMask = ~bitMask; + allBits &= bitMask; } + dataOutput[byteIndicesOutput[i]] = allBits; + } - std::cout << "INFO Start to toggle" << std::endl; + memoryUserOutput->endAccess(); - // If first channel would be unset -> end toggle - std::map::iterator itInput = mapOfInputs.find("S20_EC_BK/S20_DI_16_1/Digital_Input_Channels.DI_Channel_01_Terminal_Point_00_"); - dlResult = rtMemUserInput->beginAccess(inData, revisionIn); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - break; - } + return true; +} - uint8_t value = inData[itInput->second / 8]; - if (!value) - { - g_endProcess = true; - } +comm::datalayer::IClient * +getClientRetry(comm::datalayer::DatalayerSystem &datalayerSystem) { - rtMemUserInput->endAccess(); - if (!temp) - { - // Create iterator for the map, after that we can iterate through all variables and set the - std::map::iterator it = mapOfOutputs.begin(); - while (it != mapOfOutputs.end()) - { - if (g_endProcess) - { - return 0; - } - - std::cout << "INFO Set Output: " << it->first << " :: Offset " << it->second << std::endl; - - // Memory is form beginAccess till endAccess locked, so do not do stuff you won't need - dlResult = rtMemUserOutput->beginAccess(outData, revision); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - break; - } - - // set toggle bit - uint8_t value = outData[it->second / 8]; - value |= 1 << (it->second % 8); - outData[it->second / 8] = value; - - rtMemUserOutput->endAccess(); - it++; - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - } + // ctrlX OS virtual with network adapter + comm::datalayer::IClient *client = getClient(datalayerSystem); + if (client != nullptr) { + return client; + } - temp = true; - } - else - { - std::map::iterator it = mapOfOutputs.begin(); - while (it != mapOfOutputs.end()) - { - if (g_endProcess) - { - return 0; - } - - std::cout << "INFO Unset Output: " << it->first << " :: Offset " << it->second << std::endl; - - // Memory is form beginAccess till endAccess locked, so do not do stuff you won't need - dlResult = rtMemUserOutput->beginAccess(outData, revision); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - break; - } - - // Set toggle bit - uint8_t value = outData[it->second / 8]; - value &= ~(1 << (it->second % 8)); - outData[it->second / 8] = value; - - rtMemUserOutput->endAccess(); - it++; - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - } + // ctrlX OS virtual with port forwarding + return getClient(datalayerSystem, "10.0.2.2", "boschrexroth", "boschrexroth", + 8443); +} - temp = false; - } +int main(void) { - std::this_thread::sleep_for(std::chrono::milliseconds(500)); - } + std::signal(SIGINT, signalHandler); - // Set all outputs to save state - std::map::iterator it = mapOfOutputs.begin(); - while (it != mapOfOutputs.end()) - { - if (g_endProcess) - { - return 0; - } + comm::datalayer::DatalayerSystem datalayerSystem; + datalayerSystem.start(false); - dlResult = rtMemUserOutput->beginAccess(outData, revision); - if (comm::datalayer::STATUS_FAILED(dlResult)) - { - break; - } + comm::datalayer::IClient *client = nullptr; + while (g_endProcess == false) { - outData[it->second / 8] = 0x00; - - rtMemUserOutput->endAccess(); - it++; - } + // Sleep after error (or at startup) + std::this_thread::sleep_for(std::chrono::seconds(10)); - return 0; -} + if (client != nullptr) { + // In case of retry + delete client; + } + comm::datalayer::IClient *client = getClientRetry(datalayerSystem); -comm::datalayer::IClient* getClientRetry(comm::datalayer::DatalayerSystem& datalayerSystem) -{ + if (client == nullptr) { + std::cout << "ERROR Client connection failed" << std::endl; + continue; + } - comm::datalayer::IClient* client = getClient(datalayerSystem); - if (client != nullptr) - { - return client; - } + // Get input map + std::shared_ptr memoryUserInput; + std::string dlAddressInput = + "fieldbuses/ethercat/master/instances/ethercatmaster/realtime_data/input"; + uint32_t revisionInput; + std::vector byteIndicesInput; + std::vector bitIndicesInput; + + bool boolResult = + getMemoryMap(datalayerSystem, client, memoryUserInput, dlAddressInput, + &revisionInput, &byteIndicesInput, &bitIndicesInput); + if (boolResult == false) { + continue; + } - return getClient(datalayerSystem, "10.0.2.2", "boschrexroth", "boschrexroth", 8443); -} + // Get output map + std::shared_ptr memoryUserOutput; + std::string dlAddressOutput = + "fieldbuses/ethercat/master/instances/ethercatmaster/realtime_data/output"; + uint32_t revisionOutput; + std::vector byteIndicesOutput; + std::vector bitIndicesOutput; + + boolResult = + getMemoryMap(datalayerSystem, client, memoryUserOutput, dlAddressOutput, + &revisionOutput, &byteIndicesOutput, &bitIndicesOutput); + if (boolResult == false) { + continue; + } -int main(void) -{ - std::signal(SIGINT, signalHandler); + // Find minimal size of bytes + size_t minSize = byteIndicesInput.size() < byteIndicesOutput.size() + ? byteIndicesInput.size() + : byteIndicesOutput.size(); + bool *buffer = new bool[minSize]; - comm::datalayer::DatalayerSystem datalayerSystem; - datalayerSystem.start(false); + // Copy loop + while (g_endProcess == false) { - comm::datalayer::IClient* client = getClientRetry(datalayerSystem); + std::cout << "INFO Copying input to output..." << std::endl; - int exitCode = 1; - if (client == nullptr) - { - std::cout << "ERROR Client connection failed" << std::endl; - } - else - { - exitCode = run(datalayerSystem, client); - std::cout << "INFO Shutting down application" << std::endl; + boolResult = copyInputToOutput( + datalayerSystem, client, memoryUserInput, revisionInput, + byteIndicesInput, bitIndicesInput, memoryUserOutput, revisionOutput, + byteIndicesOutput, bitIndicesOutput, buffer); + if (boolResult == false) { + break; + } + + // Sleep before nect copy + std::this_thread::sleep_for(std::chrono::seconds(5)); + } } delete client; + datalayerSystem.stop(); - return exitCode; + return 0; } diff --git a/samples-cpp/datalayer.ecat.io/snap/snapcraft.yaml b/samples-cpp/datalayer.ecat.io/snap/snapcraft.yaml index 00c339d76..b2914d2e9 100644 --- a/samples-cpp/datalayer.ecat.io/snap/snapcraft.yaml +++ b/samples-cpp/datalayer.ecat.io/snap/snapcraft.yaml @@ -7,9 +7,9 @@ name: sdk-cpp-ecat-io title: SDK C++ EtherCAT I/O version: 1.0.0 grade: stable -summary: Sample app for processing rt data from EtherCAT +summary: Sample app for copying EtherCAT I/Os. description: | - This app will read EtherCAT nodes from the ctrlX Data Layer. + This app will copy EtherCAT digital inputs to outputs. base: core22 confinement: strict diff --git a/samples-cpp/datalayer.provider.alldata/CMakeLists.txt b/samples-cpp/datalayer.provider.alldata/CMakeLists.txt index 96efc45ec..c40bac09a 100644 --- a/samples-cpp/datalayer.provider.alldata/CMakeLists.txt +++ b/samples-cpp/datalayer.provider.alldata/CMakeLists.txt @@ -78,9 +78,9 @@ SET ( PRIVATE_INCLUDE_DIRS # execute_process(COMMAND uname -a OUTPUT_VARIABLE HOST_SYSTEM_ARCH) IF( ${HOST_SYSTEM_ARCH} MATCHES "aarch64") - set (FLATBUFFERS_FLATC_EXECUTABLE ${SDK_ROOT_DIR}bin/oss.flatbuffers/ubuntu22-gcc-aarch64/release/flatc) + set (FLATBUFFERS_FLATC_EXECUTABLE ${SDK_ROOT_DIR}bin/oss.flatbuffers/ubuntu22-gcc-aarch64/flatc) ELSE() - set (FLATBUFFERS_FLATC_EXECUTABLE ${SDK_ROOT_DIR}bin/oss.flatbuffers/ubuntu22-gcc-x64/release/flatc) + set (FLATBUFFERS_FLATC_EXECUTABLE ${SDK_ROOT_DIR}bin/oss.flatbuffers/ubuntu22-gcc-x64/flatc) ENDIF() set (FLATBUFFERS_INCLUDE_DIR ${SDK_ROOT_DIR}include/oss.flatbuffers) include (${SDK_ROOT_DIR}cmake/oss.flatbuffers/FindFlatBuffers.cmake) diff --git a/samples-cpp/datalayer.provider.simple/CMakeLists.txt b/samples-cpp/datalayer.provider.simple/CMakeLists.txt index d4a93f00c..28adff685 100644 --- a/samples-cpp/datalayer.provider.simple/CMakeLists.txt +++ b/samples-cpp/datalayer.provider.simple/CMakeLists.txt @@ -76,9 +76,9 @@ SET ( PRIVATE_INCLUDE_DIRS # execute_process(COMMAND uname -a OUTPUT_VARIABLE HOST_SYSTEM_ARCH) IF( ${HOST_SYSTEM_ARCH} MATCHES "aarch64") - set (FLATBUFFERS_FLATC_EXECUTABLE ${SDK_ROOT_DIR}/bin/oss.flatbuffers/ubuntu22-gcc-aarch64/release/flatc) + set (FLATBUFFERS_FLATC_EXECUTABLE ${SDK_ROOT_DIR}/bin/oss.flatbuffers/ubuntu22-gcc-aarch64/flatc) ELSE() - set (FLATBUFFERS_FLATC_EXECUTABLE ${SDK_ROOT_DIR}/bin/oss.flatbuffers/ubuntu22-gcc-x64/release/flatc) + set (FLATBUFFERS_FLATC_EXECUTABLE ${SDK_ROOT_DIR}/bin/oss.flatbuffers/ubuntu22-gcc-x64/flatc) ENDIF() set (FLATBUFFERS_INCLUDE_DIR ${SDK_ROOT_DIR}/include/oss.flatbuffers) include (${SDK_ROOT_DIR}/cmake/oss.flatbuffers/FindFlatBuffers.cmake) diff --git a/samples-cpp/datalayer.sharedmemory/main_owner.cpp b/samples-cpp/datalayer.sharedmemory/main_owner.cpp index f182786c6..30b3ca6f9 100644 --- a/samples-cpp/datalayer.sharedmemory/main_owner.cpp +++ b/samples-cpp/datalayer.sharedmemory/main_owner.cpp @@ -113,7 +113,7 @@ int main(void) comm::datalayer::DlResult result; comm::datalayer::DatalayerSystem datalayerSystem; - std::string dlBasePath = "sdk/cpp/datalayer/shardedmemory/"; + std::string dlBasePath = "sdk/cpp/datalayer/sharedmemory/"; if (isSnap()) { diff --git a/samples-cpp/datalayer.sharedmemory/main_user.cpp b/samples-cpp/datalayer.sharedmemory/main_user.cpp index cc3bccce9..b4fae4dbc 100644 --- a/samples-cpp/datalayer.sharedmemory/main_user.cpp +++ b/samples-cpp/datalayer.sharedmemory/main_user.cpp @@ -61,7 +61,7 @@ int main() std::shared_ptr outputMemUser; uint8_t* outData; - std::string dlBasePath = "sdk/cpp/datalayer/shardedmemory/"; + std::string dlBasePath = "sdk/cpp/datalayer/sharedmemory/"; // Structure to interrupt the do while loops with SIGINT std::signal(SIGINT, sigIntHandler); diff --git a/samples-go/datalayer.client.ext/README.md b/samples-go/datalayer.client.ext/README.md index c599c2714..45ff8ba8b 100644 --- a/samples-go/datalayer.client.ext/README.md +++ b/samples-go/datalayer.client.ext/README.md @@ -14,7 +14,7 @@ If the ctrlX Data Layer connection breaks the app will exit. After 10s it will b ## Prerequisites -See the description on [ctrlX Data Layer client and provider library for Go](https://github.com/boschrexroth/ctrlx-datalayer-golang) +See the description on [ctrlX Data Layer client and provider library for Go](https://github.com/boschrexroth/ctrlx-datalayer-golang/v2) ## Visual Studio Code diff --git a/samples-go/datalayer.client.ext/cmd/client/main.go b/samples-go/datalayer.client.ext/cmd/client/main.go index 0f70a3fbe..483859955 100644 --- a/samples-go/datalayer.client.ext/cmd/client/main.go +++ b/samples-go/datalayer.client.ext/cmd/client/main.go @@ -14,7 +14,7 @@ import ( "datalayer.client/pkg/client" "datalayer.client/pkg/utils" - "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" + "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" ) // Get client connection diff --git a/samples-go/datalayer.client.ext/go.mod b/samples-go/datalayer.client.ext/go.mod index 3fab188fc..3718caa3d 100644 --- a/samples-go/datalayer.client.ext/go.mod +++ b/samples-go/datalayer.client.ext/go.mod @@ -2,6 +2,6 @@ module datalayer.client go 1.21 -require github.com/boschrexroth/ctrlx-datalayer-golang v1.3.0 +require github.com/boschrexroth/ctrlx-datalayer-golang/v2 v2.2.0 require github.com/google/flatbuffers v23.5.26+incompatible // indirect diff --git a/samples-go/datalayer.client.ext/go.sum b/samples-go/datalayer.client.ext/go.sum index ee040637d..512ad9005 100644 --- a/samples-go/datalayer.client.ext/go.sum +++ b/samples-go/datalayer.client.ext/go.sum @@ -1,22 +1,4 @@ -github.com/boschrexroth/ctrlx-datalayer-golang v1.3.0 h1:rwOJNZEGwMGbKziTcGpcoMdK0lfZE78lxR+UzLw+pRM= -github.com/boschrexroth/ctrlx-datalayer-golang v1.3.0/go.mod h1:i0ex6o3HhWHDSS0KEmRuHZOk3FVdJamzyk+tp3qmxkg= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/google/flatbuffers v1.12.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/boschrexroth/ctrlx-datalayer-golang/v2 v2.2.0 h1:6MoAXUDAxx1YyAERH/vmyKlSEm2Y3j21ugx4myj5xlI= +github.com/boschrexroth/ctrlx-datalayer-golang/v2 v2.2.0/go.mod h1:7B/LrdaFDc3YMfXGoBx1XpFgjAgNfNW8ZJZpeeKnxpI= github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/loov/hrtime v1.0.1/go.mod h1:yDY3Pwv2izeY4sq7YcPX/dtLwzg5NU1AxWuWxKwd0p0= -github.com/loov/hrtime v1.0.3/go.mod h1:yDY3Pwv2izeY4sq7YcPX/dtLwzg5NU1AxWuWxKwd0p0= -github.com/loov/hrtime/hrplot v1.0.2/go.mod h1:9t65xYn4d42ntjv40Wt5lbU72/VC5S0zGDgjC8kD5BU= -github.com/loov/plot v0.0.0-20200413101321-e09a6f01d2f5/go.mod h1:gSrhfSMoiPGG0CZ9E66kXjaHxFw0fzJhooyicOnz5z4= -github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 h1:Yl0tPBa8QPjGmesFh1D0rDy+q1Twx6FyU7VWHi8wZbI= -github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/samples-go/datalayer.client.ext/pkg/client/bulkclient.go b/samples-go/datalayer.client.ext/pkg/client/bulkclient.go index ab6d17640..35976c64a 100644 --- a/samples-go/datalayer.client.ext/pkg/client/bulkclient.go +++ b/samples-go/datalayer.client.ext/pkg/client/bulkclient.go @@ -5,7 +5,7 @@ */ package client -import "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" +import "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" // bulkClient is the a bulk client wrapper. type bulkClient struct { diff --git a/samples-go/datalayer.client.ext/pkg/client/datalayerclient.go b/samples-go/datalayer.client.ext/pkg/client/datalayerclient.go index 2b9bb6ef8..3b3660ba7 100644 --- a/samples-go/datalayer.client.ext/pkg/client/datalayerclient.go +++ b/samples-go/datalayer.client.ext/pkg/client/datalayerclient.go @@ -6,7 +6,7 @@ package client import ( - "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" + "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" ) // datalayerClient is the a client wrapper. diff --git a/samples-go/datalayer.client.ext/pkg/client/subscriptionclient.go b/samples-go/datalayer.client.ext/pkg/client/subscriptionclient.go index 55a0ecfa9..752535ee8 100644 --- a/samples-go/datalayer.client.ext/pkg/client/subscriptionclient.go +++ b/samples-go/datalayer.client.ext/pkg/client/subscriptionclient.go @@ -8,7 +8,7 @@ package client import ( "fmt" - "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" + "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" ) // subscriptionClient is a subscription client wrapper. diff --git a/samples-go/datalayer.client.simple/go.mod b/samples-go/datalayer.client.simple/go.mod index 3fab188fc..3718caa3d 100644 --- a/samples-go/datalayer.client.simple/go.mod +++ b/samples-go/datalayer.client.simple/go.mod @@ -2,6 +2,6 @@ module datalayer.client go 1.21 -require github.com/boschrexroth/ctrlx-datalayer-golang v1.3.0 +require github.com/boschrexroth/ctrlx-datalayer-golang/v2 v2.2.0 require github.com/google/flatbuffers v23.5.26+incompatible // indirect diff --git a/samples-go/datalayer.client.simple/go.sum b/samples-go/datalayer.client.simple/go.sum index ee040637d..187764b1d 100644 --- a/samples-go/datalayer.client.simple/go.sum +++ b/samples-go/datalayer.client.simple/go.sum @@ -1,22 +1,14 @@ -github.com/boschrexroth/ctrlx-datalayer-golang v1.3.0 h1:rwOJNZEGwMGbKziTcGpcoMdK0lfZE78lxR+UzLw+pRM= -github.com/boschrexroth/ctrlx-datalayer-golang v1.3.0/go.mod h1:i0ex6o3HhWHDSS0KEmRuHZOk3FVdJamzyk+tp3qmxkg= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/google/flatbuffers v1.12.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/boschrexroth/ctrlx-datalayer-golang/v2 v2.2.0 h1:6MoAXUDAxx1YyAERH/vmyKlSEm2Y3j21ugx4myj5xlI= +github.com/boschrexroth/ctrlx-datalayer-golang/v2 v2.2.0/go.mod h1:7B/LrdaFDc3YMfXGoBx1XpFgjAgNfNW8ZJZpeeKnxpI= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/loov/hrtime v1.0.1/go.mod h1:yDY3Pwv2izeY4sq7YcPX/dtLwzg5NU1AxWuWxKwd0p0= -github.com/loov/hrtime v1.0.3/go.mod h1:yDY3Pwv2izeY4sq7YcPX/dtLwzg5NU1AxWuWxKwd0p0= -github.com/loov/hrtime/hrplot v1.0.2/go.mod h1:9t65xYn4d42ntjv40Wt5lbU72/VC5S0zGDgjC8kD5BU= -github.com/loov/plot v0.0.0-20200413101321-e09a6f01d2f5/go.mod h1:gSrhfSMoiPGG0CZ9E66kXjaHxFw0fzJhooyicOnz5z4= github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 h1:Yl0tPBa8QPjGmesFh1D0rDy+q1Twx6FyU7VWHi8wZbI= github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/samples-go/datalayer.provider.simple/README.md b/samples-go/datalayer.provider.simple/README.md index ada21cf18..d00510377 100644 --- a/samples-go/datalayer.provider.simple/README.md +++ b/samples-go/datalayer.provider.simple/README.md @@ -12,7 +12,7 @@ If the ctrlX Data Layer connection breaks the app will exit. After 10s it will b ## Prerequisites -see the description on [ctrlX Data Layer client and provider library for Go](https://github.com/boschrexroth/ctrlx-datalayer-golang) +see the description on [ctrlX Data Layer client and provider library for Go](https://github.com/boschrexroth/ctrlx-datalayer-golang/v2) ## Visual Studio Code diff --git a/samples-go/datalayer.provider.simple/cmd/provider/main.go b/samples-go/datalayer.provider.simple/cmd/provider/main.go index e1988db49..c44983c4e 100644 --- a/samples-go/datalayer.provider.simple/cmd/provider/main.go +++ b/samples-go/datalayer.provider.simple/cmd/provider/main.go @@ -11,9 +11,10 @@ import ( "os/signal" "syscall" + "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" + "datalayer.provider/pkg/node" "datalayer.provider/pkg/utils" - "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" ) func main() { diff --git a/samples-go/datalayer.provider.simple/go.mod b/samples-go/datalayer.provider.simple/go.mod index 1f64a9359..c79f89125 100644 --- a/samples-go/datalayer.provider.simple/go.mod +++ b/samples-go/datalayer.provider.simple/go.mod @@ -2,6 +2,6 @@ module datalayer.provider go 1.21 -require github.com/boschrexroth/ctrlx-datalayer-golang v1.3.0 +require github.com/boschrexroth/ctrlx-datalayer-golang/v2 v2.2.0 require github.com/google/flatbuffers v23.5.26+incompatible diff --git a/samples-go/datalayer.provider.simple/go.sum b/samples-go/datalayer.provider.simple/go.sum index ee040637d..187764b1d 100644 --- a/samples-go/datalayer.provider.simple/go.sum +++ b/samples-go/datalayer.provider.simple/go.sum @@ -1,22 +1,14 @@ -github.com/boschrexroth/ctrlx-datalayer-golang v1.3.0 h1:rwOJNZEGwMGbKziTcGpcoMdK0lfZE78lxR+UzLw+pRM= -github.com/boschrexroth/ctrlx-datalayer-golang v1.3.0/go.mod h1:i0ex6o3HhWHDSS0KEmRuHZOk3FVdJamzyk+tp3qmxkg= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/google/flatbuffers v1.12.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/boschrexroth/ctrlx-datalayer-golang/v2 v2.2.0 h1:6MoAXUDAxx1YyAERH/vmyKlSEm2Y3j21ugx4myj5xlI= +github.com/boschrexroth/ctrlx-datalayer-golang/v2 v2.2.0/go.mod h1:7B/LrdaFDc3YMfXGoBx1XpFgjAgNfNW8ZJZpeeKnxpI= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/loov/hrtime v1.0.1/go.mod h1:yDY3Pwv2izeY4sq7YcPX/dtLwzg5NU1AxWuWxKwd0p0= -github.com/loov/hrtime v1.0.3/go.mod h1:yDY3Pwv2izeY4sq7YcPX/dtLwzg5NU1AxWuWxKwd0p0= -github.com/loov/hrtime/hrplot v1.0.2/go.mod h1:9t65xYn4d42ntjv40Wt5lbU72/VC5S0zGDgjC8kD5BU= -github.com/loov/plot v0.0.0-20200413101321-e09a6f01d2f5/go.mod h1:gSrhfSMoiPGG0CZ9E66kXjaHxFw0fzJhooyicOnz5z4= github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 h1:Yl0tPBa8QPjGmesFh1D0rDy+q1Twx6FyU7VWHi8wZbI= github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/samples-go/datalayer.provider.simple/pkg/node/nodearraytimestamp.go b/samples-go/datalayer.provider.simple/pkg/node/nodearraytimestamp.go index 54f2ee639..3d2cd2d57 100644 --- a/samples-go/datalayer.provider.simple/pkg/node/nodearraytimestamp.go +++ b/samples-go/datalayer.provider.simple/pkg/node/nodearraytimestamp.go @@ -8,8 +8,8 @@ package node import ( "time" - "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" - fbs "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/fbs/comm/datalayer" + "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" + fbs "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/fbs/comm/datalayer" ) const typeaddressarraytimestamp = "types/datalayer/array-of-timestamp" diff --git a/samples-go/datalayer.provider.simple/pkg/node/nodedata.go b/samples-go/datalayer.provider.simple/pkg/node/nodedata.go index f472a19fa..5c8bc2293 100644 --- a/samples-go/datalayer.provider.simple/pkg/node/nodedata.go +++ b/samples-go/datalayer.provider.simple/pkg/node/nodedata.go @@ -8,7 +8,7 @@ package node import ( "fmt" - "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" + "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" ) const addressroot = "sdk/go/provider/simple/" @@ -53,14 +53,17 @@ func (n *NodeData) Value() *datalayer.Variant { // NodeData is accessed via the interface NodeDataHandler func StartNodeDataHandler(d NodeDataHandler) { for { + if d.Node() == nil { return } + select { case event, ok := <-d.Node().Channels().OnCreate: if !ok { return } + fmt.Println("event: oncreate: ", d.Name()) event.Callback(datalayer.Result(0), nil) @@ -73,30 +76,30 @@ func StartNodeDataHandler(d NodeDataHandler) { event.Callback(datalayer.ResultUnsupported, nil) case event, ok := <-d.Node().Channels().OnBrowse: - func() { - if !ok { - return - } + if !ok { + return + } + func(e datalayer.ProviderNodeEvent) { newData := datalayer.NewVariant() defer datalayer.DeleteVariant(newData) newData.SetArrayString([]string{}) fmt.Println("event: OnBrowse: ", d.Name()) - event.Callback(datalayer.Result(0), newData) - }() + e.Callback(datalayer.Result(0), newData) + }(event) case event, ok := <-d.Node().Channels().OnRead: - func() { - if !ok { - return - } + if !ok { + return + } + func(e datalayer.ProviderNodeEventData) { newData := datalayer.NewVariant() defer datalayer.DeleteVariant(newData) d.Value().Copy(newData) fmt.Println("event: OnRead: ", d.Name()) - event.Callback(datalayer.Result(0), newData) - }() + e.Callback(datalayer.Result(0), newData) + }(event) case event, ok := <-d.Node().Channels().OnWrite: if !ok { @@ -108,17 +111,16 @@ func StartNodeDataHandler(d NodeDataHandler) { event.Callback(datalayer.Result(0), event.Data) case event, ok := <-d.Node().Channels().OnMetadata: - func() { - if !ok { - return - } + if !ok { + return + } + func(e datalayer.ProviderNodeEvent) { fmt.Println("event: OnMetadata: ", d.Name()) - r, v := d.OnMetadata() defer datalayer.DeleteVariant(v) - event.Callback(r, v) - }() + e.Callback(r, v) + }(event) case <-d.Node().Channels().Done: fmt.Println("event: Done: ", d.Name()) diff --git a/samples-go/datalayer.provider.simple/pkg/node/nodefbs.go b/samples-go/datalayer.provider.simple/pkg/node/nodefbs.go index 710efc48b..9236f2736 100644 --- a/samples-go/datalayer.provider.simple/pkg/node/nodefbs.go +++ b/samples-go/datalayer.provider.simple/pkg/node/nodefbs.go @@ -10,9 +10,10 @@ import ( "os" "path" + "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" + fbs "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/fbs/comm/datalayer" + "datalayer.provider/pkg/sample/schema" - "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" - fbs "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/fbs/comm/datalayer" flatbuffers "github.com/google/flatbuffers/go" ) diff --git a/samples-go/datalayer.provider.simple/pkg/node/nodestring.go b/samples-go/datalayer.provider.simple/pkg/node/nodestring.go index 606db91c4..88f3e48a9 100644 --- a/samples-go/datalayer.provider.simple/pkg/node/nodestring.go +++ b/samples-go/datalayer.provider.simple/pkg/node/nodestring.go @@ -6,8 +6,8 @@ package node import ( - "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" - fbs "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/fbs/comm/datalayer" + "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" + fbs "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/fbs/comm/datalayer" ) const typeaddressstring = "types/datalayer/string" diff --git a/samples-go/datalayer.provider.simple/pkg/node/nodetimestamp.go b/samples-go/datalayer.provider.simple/pkg/node/nodetimestamp.go index 1ae5fb964..f9af675df 100644 --- a/samples-go/datalayer.provider.simple/pkg/node/nodetimestamp.go +++ b/samples-go/datalayer.provider.simple/pkg/node/nodetimestamp.go @@ -8,8 +8,8 @@ package node import ( "time" - "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/datalayer" - fbs "github.com/boschrexroth/ctrlx-datalayer-golang/pkg/fbs/comm/datalayer" + "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/datalayer" + fbs "github.com/boschrexroth/ctrlx-datalayer-golang/v2/pkg/fbs/comm/datalayer" ) const typeaddresstimestamp = "types/datalayer/timestamp" diff --git a/samples-go/tpm2.srk/cmd/tpm2/main.go b/samples-go/tpm2.srk/cmd/tpm2/main.go index 86c9db531..f498b6c0d 100644 --- a/samples-go/tpm2.srk/cmd/tpm2/main.go +++ b/samples-go/tpm2.srk/cmd/tpm2/main.go @@ -13,11 +13,10 @@ import ( "io/ioutil" "os" - "tpm2.srk/cmd/tpm2/util" - - "github.com/google/go-tpm-tools/tpm2tools" - "github.com/google/go-tpm/tpm2" + "github.com/google/go-tpm-tools/client" + "github.com/google/go-tpm/legacy/tpm2" "github.com/google/go-tpm/tpmutil" + "tpm2.srk/cmd/tpm2/util" ) const TpmSrkHandle = 0x81000001 @@ -65,7 +64,7 @@ var ( func LoadWithCachedSrk(rw io.ReadWriter, publicBlob []byte, privateBlob []byte) (keyhandle tpmutil.Handle, err error) { srkHandle := tpmutil.Handle(TpmSrkHandle) - key, err := tpm2tools.NewCachedKey(rw, tpm2.HandleOwner, defaultSrkTemplate, srkHandle) + key, err := client.NewCachedKey(rw, tpm2.HandleOwner, defaultSrkTemplate, srkHandle) if err != nil { return 0, err } @@ -77,7 +76,7 @@ func LoadWithCachedSrk(rw io.ReadWriter, publicBlob []byte, privateBlob []byte) if err = tpm2.EvictControl(rw, "", tpm2.HandleOwner, srkHandle, srkHandle); err != nil { return 0, err } - key, err := tpm2tools.NewCachedKey(rw, tpm2.HandleOwner, defaultSrkTemplate, srkHandle) + key, err := client.NewCachedKey(rw, tpm2.HandleOwner, defaultSrkTemplate, srkHandle) if err != nil { return 0, err } @@ -113,7 +112,7 @@ func createKey() error { return err } } - key, err := tpm2tools.NewCachedKey(rwc, tpm2.HandleOwner, defaultSrkTemplate, handle) + key, err := client.NewCachedKey(rwc, tpm2.HandleOwner, defaultSrkTemplate, handle) if err != nil { return err } diff --git a/samples-go/tpm2.srk/go.mod b/samples-go/tpm2.srk/go.mod index 2aa8da754..e8735ce17 100644 --- a/samples-go/tpm2.srk/go.mod +++ b/samples-go/tpm2.srk/go.mod @@ -3,11 +3,21 @@ module tpm2.srk go 1.21 require ( - github.com/google/go-tpm v0.3.2 - github.com/google/go-tpm-tools v0.2.0 + github.com/google/go-tpm v0.9.0 + github.com/google/go-tpm-tools v0.4.3 ) require ( - golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d // indirect - google.golang.org/protobuf v1.25.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/go-configfs-tsm v0.2.2 // indirect + github.com/google/go-sev-guest v0.11.1 // indirect + github.com/google/go-tdx-guest v0.3.1 // indirect + github.com/google/logger v1.1.1 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/pborman/uuid v1.2.1 // indirect + github.com/pkg/errors v0.9.1 // indirect + go.uber.org/multierr v1.11.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/sys v0.18.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) diff --git a/samples-go/tpm2.srk/go.sum b/samples-go/tpm2.srk/go.sum index 9208dab18..d5b6bd209 100644 --- a/samples-go/tpm2.srk/go.sum +++ b/samples-go/tpm2.srk/go.sum @@ -1,182 +1,46 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-tpm v0.1.2-0.20190725015402-ae6dd98980d4/go.mod h1:H9HbmUG2YgV/PHITkO7p6wxEEj/v5nlsVWIwumwH2NI= -github.com/google/go-tpm v0.3.0/go.mod h1:iVLWvrPp/bHeEkxTFi9WG6K9w0iy2yIszHwZGHPbzAw= -github.com/google/go-tpm v0.3.2 h1:3iQQ2dlEf+1no7CLlfLPYzxhQy7j2G/emBqU5okydaw= -github.com/google/go-tpm v0.3.2/go.mod h1:j71sMBTfp3X5jPHz852ZOfQMUOf65Gb/Th8pRmp7fvg= -github.com/google/go-tpm-tools v0.0.0-20190906225433-1614c142f845/go.mod h1:AVfHadzbdzHo54inR2x1v640jdi1YSi3NauM2DUsxk0= -github.com/google/go-tpm-tools v0.2.0 h1:pBflcn8x5iFohPScqlmLaImrC7ts/EUJa7ZY4FkTFq4= -github.com/google/go-tpm-tools v0.2.0/go.mod h1:npUd03rQ60lxN7tzeBJreG38RvWwme2N1reF/eeiBk4= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/certificate-transparency-go v1.1.2 h1:4hE0GEId6NAW28dFpC+LrRGwQX5dtmXQGDbg8+/MZOM= +github.com/google/certificate-transparency-go v1.1.2/go.mod h1:3OL+HKDqHPUfdKrHVQxO6T8nDLO0HF7LRTlkIWXaWvQ= +github.com/google/go-attestation v0.5.0 h1:jXtAWT2sw2Yu8mYU0BC7FDidR+ngxFPSE+pl6IUu3/0= +github.com/google/go-attestation v0.5.0/go.mod h1:0Tik9y3rzV649Jcr7evbljQHQAsIlJucyqQjYDBqktU= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-configfs-tsm v0.2.2 h1:YnJ9rXIOj5BYD7/0DNnzs8AOp7UcvjfTvt215EWcs98= +github.com/google/go-configfs-tsm v0.2.2/go.mod h1:EL1GTDFMb5PZQWDviGfZV9n87WeGTR/JUg13RfwkgRo= +github.com/google/go-sev-guest v0.11.1 h1:gnww4U8fHV5DCPz4gykr1s8SEX1fFNcxCBy+vvXN24k= +github.com/google/go-sev-guest v0.11.1/go.mod h1:qBOfb+JmgsUI3aUyzQoGC13Kpp9zwLeWvuyXmA9q77w= +github.com/google/go-tdx-guest v0.3.1 h1:gl0KvjdsD4RrJzyLefDOvFOUH3NAJri/3qvaL5m83Iw= +github.com/google/go-tdx-guest v0.3.1/go.mod h1:/rc3d7rnPykOPuY8U9saMyEps0PZDThLk/RygXm04nE= +github.com/google/go-tpm v0.9.0 h1:sQF6YqWMi+SCXpsmS3fd21oPy/vSddwZry4JnmltHVk= +github.com/google/go-tpm v0.9.0/go.mod h1:FkNVkc6C+IsvDI9Jw1OveJmxGZUUaKxtrpOS47QWKfU= +github.com/google/go-tpm-tools v0.4.3 h1:L5dc34fttMIREoKRmnIJfv2NSZDSZ+RfBD+izN0EZoA= +github.com/google/go-tpm-tools v0.4.3/go.mod h1:T8jXkp2s+eltnCDIsXR84/MTcVU9Ja7bh3Mit0pa4AY= +github.com/google/go-tspi v0.3.0 h1:ADtq8RKfP+jrTyIWIZDIYcKOMecRqNJFOew2IT0Inus= +github.com/google/go-tspi v0.3.0/go.mod h1:xfMGI3G0PhxCdNVcYr1C4C+EizojDg/TXuX5by8CiHI= +github.com/google/logger v1.1.1 h1:+6Z2geNxc9G+4D4oDO9njjjn2d0wN5d7uOo0vOIW1NQ= +github.com/google/logger v1.1.1/go.mod h1:BkeJZ+1FhQ+/d087r4dzojEg1u2ZX+ZqG1jTUrLM+zQ= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= +github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d h1:MiWWjyhUzZ+jvhZvloX6ZrUsdEghn8a64Upd8EMHglE= -golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/samples-go/webdav.client/.vscode/launch.json b/samples-go/webdav.client/.vscode/launch.json index 90787753d..69d6639d7 100644 --- a/samples-go/webdav.client/.vscode/launch.json +++ b/samples-go/webdav.client/.vscode/launch.json @@ -4,6 +4,7 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ + { "name": "Launch Package", "type": "go", @@ -11,6 +12,7 @@ "mode": "auto", "program": "${workspaceRoot}/cmd/client/main.go", "cwd": "${workspaceRoot}" +// "env": {"SNAP": "true"} } ] } \ No newline at end of file diff --git a/samples-go/webdav.client/.vscode/settings.json b/samples-go/webdav.client/.vscode/settings.json new file mode 100644 index 000000000..a46064559 --- /dev/null +++ b/samples-go/webdav.client/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "go.inferGopath": false +} \ No newline at end of file diff --git a/samples-go/webdav.client/.vscode/tasks.json b/samples-go/webdav.client/.vscode/tasks.json new file mode 100644 index 000000000..8d7d1de03 --- /dev/null +++ b/samples-go/webdav.client/.vscode/tasks.json @@ -0,0 +1,196 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Build snap amd64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-amd64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build snap arm64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-arm64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Network Adapter", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-NA" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Port Forwarding", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-PF" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE 192.168.1.1", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-addr", + "192.168.1.1" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-build", + "${input:Build}", + "-upload", + "${input:Upload}", + "-logs", + "${input:Logs}", + "-service", + "${input:Service}", + "-addr", + "${input:IPAddress}", + "-ssl-port", + "${input:SSLPort}", + "-ssl-usr", + "${input:SSLUser}", + "-ssl-pwd", + "${input:SSLPwd}", + "-arch", + "${input:Arch}", + "-ssh-port", + "${input:SSHPort}", + "-ssh-usr", + "${input:SSHUser}", + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + ], + "inputs": [ + { + "id": "Build", + "type": "pickString", + "description": "Build snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "Upload", + "type": "pickString", + "description": "Upload snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "IPAddress", + "type": "promptString", + "description": "IP address", + "default": "192.168.1.1" + }, + { + "id": "SSLPort", + "type": "promptString", + "description": "HTTPS (SSL) port number", + "default": "443" + }, + { + "id": "Service", + "type": "pickString", + "description": "Switch to state SERVICE before installing the snap: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSLUser", + "type": "promptString", + "description": "HTTPS (SSL) user name", + "default": "boschrexroth" + }, + { + "id": "SSLPwd", + "type": "promptString", + "password": true, + "description": "HTTPS (SSL) password", + "default": "boschrexroth" + }, + { + "id": "Arch", + "type": "pickString", + "description": "CPU architecture?", + "options": [ + "arm64", + "amd64" + ], + "default": "arm64" + }, + { + "id": "Logs", + "type": "pickString", + "description": "Show logs - SSH must be enabled on ctrlX: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSHPort", + "type": "promptString", + "description": "SSH port number", + "default": "22" + }, + { + "id": "SSHUser", + "type": "promptString", + "description": "SSH user name", + "default": "rexroot" + } + ] +} \ No newline at end of file diff --git a/samples-go/webdav.client/build-snap-amd64.sh b/samples-go/webdav.client/build-snap-amd64.sh new file mode 100644 index 000000000..17b0914db --- /dev/null +++ b/samples-go/webdav.client/build-snap-amd64.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e +snapcraft clean --destructive-mode +snapcraft --destructive-mode --target-arch=amd64 --enable-experimental-target-arch diff --git a/samples-sh/ulimit-snap/build-snap.sh b/samples-go/webdav.client/build-snap-arm64.sh similarity index 100% rename from samples-sh/ulimit-snap/build-snap.sh rename to samples-go/webdav.client/build-snap-arm64.sh diff --git a/samples-go/webdav.client/cmd/client/main.go b/samples-go/webdav.client/cmd/client/main.go index b643f8926..667ab2eef 100644 --- a/samples-go/webdav.client/cmd/client/main.go +++ b/samples-go/webdav.client/cmd/client/main.go @@ -6,9 +6,13 @@ package main import ( + "context" "crypto/tls" "fmt" "net/http" + "os" + "os/signal" + "syscall" "github.com/dustin/go-humanize" "github.com/emersion/go-webdav" @@ -19,11 +23,16 @@ const ( ) var ( - host string = "https://localhost:8443" + host string = "https://localhost:8443" + //host string = "https://10.0.2.2:8443" user string = "boschrexroth" // The user needs manage configurations to access the files password string = "boschrexroth" ) +func isSnap() bool { + return os.Getenv("SNAP") != "" +} + func main() { httpClient := webdav.HTTPClientWithBasicAuth(&http.Client{ Transport: &http.Transport{ @@ -41,19 +50,19 @@ func main() { printDir(client, "./appdata") // remove archive webdav.client - err = client.RemoveAll("./webdav.client") + err = client.RemoveAll(context.TODO(), "./webdav.client") if err != nil { fmt.Println(err) } // create archive webdav.client - err = client.Mkdir("./webdav.client") + err = client.Mkdir(context.TODO(), "./webdav.client") if err != nil { fmt.Println(err) } // create a text file - w, err := client.Create("./webdav.client/hello.txt") + w, err := client.Create(context.TODO(), "./webdav.client/hello.txt") if err != nil { panic(err) } @@ -66,15 +75,23 @@ func main() { printDir(client, "./webdav.client") // create a copy of appdata folder - err = client.CopyAll("./appdata", "webdav.client.copy", true) + err = client.Copy(context.TODO(), "./appdata", "webdav.client.copy", &webdav.CopyOptions{NoRecursive: false, NoOverwrite: false}) if err != nil { fmt.Println(err) } printDir(client, "./webdav.client.copy") + + if isSnap() { + // Handle process exit event (SIGTERM) + sigterm := make(chan os.Signal, 1) // we need to reserve to buffer size 1, so the notifier are not blocked + signal.Notify(sigterm, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGABRT) + // Wait for process termination + <-sigterm + } } func printDir(client *webdav.Client, path string) { - fInfos, err := client.Readdir(path, true) + fInfos, err := client.ReadDir(context.TODO(), path, true) if err != nil { panic(err) } diff --git a/samples-go/webdav.client/go.mod b/samples-go/webdav.client/go.mod index 3f1a50ff0..a76af328d 100644 --- a/samples-go/webdav.client/go.mod +++ b/samples-go/webdav.client/go.mod @@ -1,8 +1,8 @@ module github.com/boschrexroth/ctrlx-automation-sdk/samples-go/webdav.client -go 1.18 +go 1.21 require ( github.com/dustin/go-humanize v1.0.1 - github.com/emersion/go-webdav v0.4.0 + github.com/emersion/go-webdav v0.5.0 ) diff --git a/samples-go/webdav.client/go.sum b/samples-go/webdav.client/go.sum index 8c065193f..eed430db8 100644 --- a/samples-go/webdav.client/go.sum +++ b/samples-go/webdav.client/go.sum @@ -1,7 +1,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/emersion/go-ical v0.0.0-20220601085725-0864dccc089f/go.mod h1:2MKFUgfNMULRxqZkadG1Vh44we3y5gJAtTBlVsx1BKQ= -github.com/emersion/go-vcard v0.0.0-20191221110513-5f81fa0d3cc7/go.mod h1:HMJKR5wlh/ziNp+sHEDV2ltblO4JD2+IdDOWtGcQBTM= -github.com/emersion/go-webdav v0.4.0 h1:iIkgitJBUNu2c1vL0KqqRb5jDjs38bzM/H7WxewrIh4= -github.com/emersion/go-webdav v0.4.0/go.mod h1:lkPYZO/vsDNV9GPyVMBBsAUZzzxINL97bEVFykApo58= +github.com/emersion/go-vcard v0.0.0-20230815062825-8fda7d206ec9/go.mod h1:HMJKR5wlh/ziNp+sHEDV2ltblO4JD2+IdDOWtGcQBTM= +github.com/emersion/go-webdav v0.5.0 h1:Ak/BQLgAihJt/UxJbCsEXDPxS5Uw4nZzgIMOq3rkKjc= +github.com/emersion/go-webdav v0.5.0/go.mod h1:ycyIzTelG5pHln4t+Y32/zBvmrM7+mV7x+V+Gx4ZQno= github.com/teambition/rrule-go v1.7.2/go.mod h1:mBJ1Ht5uboJ6jexKdNUJg2NcwP8uUMNvStWXlJD3MvU= +github.com/teambition/rrule-go v1.8.2/go.mod h1:Ieq5AbrKGciP1V//Wq8ktsTXwSwJHDD5mD/wLBGl3p4= diff --git a/samples-go/webdav.client/snap/snapcraft.yaml b/samples-go/webdav.client/snap/snapcraft.yaml new file mode 100644 index 000000000..944ff1cca --- /dev/null +++ b/samples-go/webdav.client/snap/snapcraft.yaml @@ -0,0 +1,57 @@ +name: sdk-go-client-webdav +title: SDK Go Client WebDAV +version: 1.0.0 +summary: ctrlX WebDAV protocol sample written in Go for ctrlX CORE. +description: The sample demonstrates how to access to configuration files of a ctrlX CORE remotely using the WebDAV protocol. +confinement: strict # use 'strict' once you have the right plugs and slot +grade: stable +base: core22 +type: app + +apps: + client: + command: bin/client + plugs: + - network + - datalayer + daemon: simple + restart-condition: always + passthrough: + restart-delay: 10s + +parts: + client: + plugin: go + source: . + build-snaps: ['go/1.21/stable'] + stage-packages: + - libzmq5 + - ctrlx-datalayer + build-packages: + - on amd64: + - libsystemd-dev + - libzmq3-dev + - pkg-config + - on arm64: + - libsystemd-dev:arm64 + - libzmq3-dev:arm64 + #- pkg-config:arm64 + override-build: | + case $SNAPCRAFT_ARCH_TRIPLET in + aarch64-linux-gnu) + export GOARCH=arm64 + export GOARM=7 + export CGO_ENABLED=1 + export CC=aarch64-linux-gnu-gcc + ;; + amd64) + export GOARCH=amd64 + ;; + esac + go build -buildvcs=false -o ../install/bin/ ./... + +plugs: + datalayer: + interface: content + content: datalayer + target: $SNAP_DATA/.datalayer diff --git a/samples-net/.vscode/launch.json b/samples-net/.vscode/launch.json index 301009419..a0a1fb361 100644 --- a/samples-net/.vscode/launch.json +++ b/samples-net/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build solution", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/datalayer.client/bin/Debug/net6.0/datalayer.client.dll", + "program": "${workspaceFolder}/datalayer.client/bin/Debug/net8.0/datalayer.client.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console @@ -23,7 +23,7 @@ "request": "launch", "preLaunchTask": "build solution", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/datalayer.client.browse/bin/Debug/net6.0/datalayer.client.browse.dll", + "program": "${workspaceFolder}/datalayer.client.browse/bin/Debug/net8.0/datalayer.client.browse.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console @@ -36,7 +36,7 @@ "request": "launch", "preLaunchTask": "build solution", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/datalayer.provider/bin/Debug/net6.0/datalayer.provider.dll", + "program": "${workspaceFolder}/datalayer.provider/bin/Debug/net8.0/datalayer.provider.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console @@ -49,7 +49,7 @@ "request": "launch", "preLaunchTask": "build solution", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/datalayer.provider.alldata/bin/Debug/net6.0/datalayer.provider.alldata.dll", + "program": "${workspaceFolder}/datalayer.provider.alldata/bin/Debug/net8.0/datalayer.provider.alldata.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console @@ -62,7 +62,7 @@ "request": "launch", "preLaunchTask": "build solution", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/hello.world/bin/Debug/net6.0/hello.world.dll", + "program": "${workspaceFolder}/hello.world/bin/Debug/net8.0/hello.world.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/appdata/.vscode/launch.json b/samples-net/appdata/.vscode/launch.json index 9f4914f04..3a0ca6bf0 100644 --- a/samples-net/appdata/.vscode/launch.json +++ b/samples-net/appdata/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build project", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/bin/Debug/net6.0/appdata.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/appdata.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/appdata/appdata.csproj b/samples-net/appdata/appdata.csproj index d07a663f4..72a01d0dd 100644 --- a/samples-net/appdata/appdata.csproj +++ b/samples-net/appdata/appdata.csproj @@ -1,13 +1,13 @@ Exe - net6.0 + net8.0 Samples.Appdata None - - + + \ No newline at end of file diff --git a/samples-net/appdata/configs/package-assets/sdk-net-appdata.package-manifest.json b/samples-net/appdata/configs/package-assets/sdk-net-appdata.package-manifest.json index 68e143b87..ddc23fa2d 100644 --- a/samples-net/appdata/configs/package-assets/sdk-net-appdata.package-manifest.json +++ b/samples-net/appdata/configs/package-assets/sdk-net-appdata.package-manifest.json @@ -57,7 +57,7 @@ "name": "sdk-net-appdata", "description": "Application data of the SDK .NET AppData Sample", "icon": "bosch-ic-directory", - "copyOnLoad": true + "copyOnLoad": true } ] } diff --git a/samples-net/datalayer.client.browse/.vscode/launch.json b/samples-net/datalayer.client.browse/.vscode/launch.json index 707a0913b..d0f846bdd 100644 --- a/samples-net/datalayer.client.browse/.vscode/launch.json +++ b/samples-net/datalayer.client.browse/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build project", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/bin/Debug/net6.0/datalayer.client.browse.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/datalayer.client.browse.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/datalayer.client.browse/datalayer.client.browse.csproj b/samples-net/datalayer.client.browse/datalayer.client.browse.csproj index 742c934d7..7708e4c95 100644 --- a/samples-net/datalayer.client.browse/datalayer.client.browse.csproj +++ b/samples-net/datalayer.client.browse/datalayer.client.browse.csproj @@ -2,14 +2,14 @@ Exe - net6.0 + net8.0 Samples.Datalayer.Client.Browse None - - + + diff --git a/samples-net/datalayer.client.browse/package-lock.json b/samples-net/datalayer.client.browse/package-lock.json new file mode 100644 index 000000000..34b4e0799 --- /dev/null +++ b/samples-net/datalayer.client.browse/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "datalayer.client.browse", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/samples-net/datalayer.client.bulkread/.vscode/launch.json b/samples-net/datalayer.client.bulkread/.vscode/launch.json index 411c08311..86df6310a 100644 --- a/samples-net/datalayer.client.bulkread/.vscode/launch.json +++ b/samples-net/datalayer.client.bulkread/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build project", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/bin/Debug/net6.0/datalayer.client.bulkread.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/datalayer.client.bulkread.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/datalayer.client.bulkread/datalayer.client.bulkread.csproj b/samples-net/datalayer.client.bulkread/datalayer.client.bulkread.csproj index 2f421ff27..9d4ea8b67 100644 --- a/samples-net/datalayer.client.bulkread/datalayer.client.bulkread.csproj +++ b/samples-net/datalayer.client.bulkread/datalayer.client.bulkread.csproj @@ -2,14 +2,14 @@ Exe - net6.0 + net8.0 Samples.Datalayer.Client.BulkRead None - - + + diff --git a/samples-net/datalayer.client.bulkread/package-lock.json b/samples-net/datalayer.client.bulkread/package-lock.json new file mode 100644 index 000000000..782b478dd --- /dev/null +++ b/samples-net/datalayer.client.bulkread/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "datalayer.client.bulkread", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/samples-net/datalayer.client.simple/.vscode/launch.json b/samples-net/datalayer.client.simple/.vscode/launch.json index 7052c483b..102c59ead 100644 --- a/samples-net/datalayer.client.simple/.vscode/launch.json +++ b/samples-net/datalayer.client.simple/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build project", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/bin/Debug/net6.0/datalayer.client.simple.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/datalayer.client.simple.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/datalayer.client.simple/datalayer.client.simple.csproj b/samples-net/datalayer.client.simple/datalayer.client.simple.csproj index acf227441..13ede583f 100644 --- a/samples-net/datalayer.client.simple/datalayer.client.simple.csproj +++ b/samples-net/datalayer.client.simple/datalayer.client.simple.csproj @@ -2,14 +2,14 @@ Exe - net6.0 + net8.0 Samples.Datalayer.Client None - - + + diff --git a/samples-net/datalayer.client.simple/npm_install.bat b/samples-net/datalayer.client.simple/npm_install.bat new file mode 100644 index 000000000..975b1afae --- /dev/null +++ b/samples-net/datalayer.client.simple/npm_install.bat @@ -0,0 +1,27 @@ +::Author: marcmaro (DC-IA/ESW1) +@echo off + +cd /D "%~dp0" + +call npm install +if %ERRORLEVEL% NEQ 0 ( + goto error +) + +call npm prune +if %ERRORLEVEL% NEQ 0 ( + goto error +) + +::-------------------------------------- +:: ERROR HANDLING +::-------------------------------------- +::ECHO %ERRORLEVEL% +:success + color A0 + exit /B 0 + +:error + color C0 + pause + exit /B %ERRORLEVEL% \ No newline at end of file diff --git a/samples-net/datalayer.client.simple/package-lock.json b/samples-net/datalayer.client.simple/package-lock.json new file mode 100644 index 000000000..97575401f --- /dev/null +++ b/samples-net/datalayer.client.simple/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "datalayer.client.simple", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/samples-net/datalayer.provider.alldata/.vscode/launch.json b/samples-net/datalayer.provider.alldata/.vscode/launch.json index 65ce54895..5fd01aaa4 100644 --- a/samples-net/datalayer.provider.alldata/.vscode/launch.json +++ b/samples-net/datalayer.provider.alldata/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build project", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/bin/Debug/net6.0/datalayer.provider.alldata.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/datalayer.provider.alldata.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/datalayer.provider.alldata/build-fbs.sh b/samples-net/datalayer.provider.alldata/build-fbs.sh index 0f86bc3fb..f8aa5ee12 100644 --- a/samples-net/datalayer.provider.alldata/build-fbs.sh +++ b/samples-net/datalayer.provider.alldata/build-fbs.sh @@ -1,5 +1,5 @@ #!/bin/bash -flatc=$(dirname $0)/../../../public/bin/oss.flatbuffers/ubuntu22-gcc-x64/release/flatc +flatc=$(dirname $0)/../../../public/bin/oss.flatbuffers/ubuntu22-gcc-x64/flatc rm -frv ./bfbs mkdir -pv ./bfbs diff --git a/samples-net/datalayer.provider.alldata/datalayer.provider.alldata.csproj b/samples-net/datalayer.provider.alldata/datalayer.provider.alldata.csproj index c8d8aa372..3c50af1c8 100644 --- a/samples-net/datalayer.provider.alldata/datalayer.provider.alldata.csproj +++ b/samples-net/datalayer.provider.alldata/datalayer.provider.alldata.csproj @@ -2,14 +2,14 @@ Exe - net6.0 + net8.0 Samples.Datalayer.Provider.Alldata None - - + + diff --git a/samples-net/datalayer.provider.alldata/sample/schema/InertialValue.cs b/samples-net/datalayer.provider.alldata/sample/schema/InertialValue.cs index c6b7e9e29..39fee1abe 100644 --- a/samples-net/datalayer.provider.alldata/sample/schema/InertialValue.cs +++ b/samples-net/datalayer.provider.alldata/sample/schema/InertialValue.cs @@ -13,7 +13,7 @@ public struct InertialValue : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_24_3_7(); } public static InertialValue GetRootAsInertialValue(ByteBuffer _bb) { return GetRootAsInertialValue(_bb, new InertialValue()); } public static InertialValue GetRootAsInertialValue(ByteBuffer _bb, InertialValue obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/samples-net/datalayer.provider.simple/.vscode/launch.json b/samples-net/datalayer.provider.simple/.vscode/launch.json index 584795873..55d210d64 100644 --- a/samples-net/datalayer.provider.simple/.vscode/launch.json +++ b/samples-net/datalayer.provider.simple/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build project", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/bin/Debug/net6.0/datalayer.provider.simple.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/datalayer.provider.simple.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/datalayer.provider.simple/build-fbs.sh b/samples-net/datalayer.provider.simple/build-fbs.sh index f3dc47589..5e99b513b 100644 --- a/samples-net/datalayer.provider.simple/build-fbs.sh +++ b/samples-net/datalayer.provider.simple/build-fbs.sh @@ -1,5 +1,5 @@ #!/bin/bash -flatc=$(dirname $0)/../../../public/bin/oss.flatbuffers/ubuntu22-gcc-x64/release/flatc +flatc=$(dirname $0)/../../../public/bin/oss.flatbuffers/ubuntu22-gcc-x64/flatc rm -frv ./bfbs rm -frv ./comm/datalayer/daq mkdir -pv ./bfbs diff --git a/samples-net/datalayer.provider.simple/datalayer.provider.simple.csproj b/samples-net/datalayer.provider.simple/datalayer.provider.simple.csproj index 131d989a4..34f880e39 100644 --- a/samples-net/datalayer.provider.simple/datalayer.provider.simple.csproj +++ b/samples-net/datalayer.provider.simple/datalayer.provider.simple.csproj @@ -2,14 +2,14 @@ Exe - net6.0 + net8.0 Samples.Datalayer.Provider None - - + + diff --git a/samples-net/datalayer.provider.simple/sample/schema/InertialValue.cs b/samples-net/datalayer.provider.simple/sample/schema/InertialValue.cs index 39aa5b765..808a52632 100644 --- a/samples-net/datalayer.provider.simple/sample/schema/InertialValue.cs +++ b/samples-net/datalayer.provider.simple/sample/schema/InertialValue.cs @@ -13,7 +13,7 @@ public struct InertialValue : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_24_3_7(); } public static InertialValue GetRootAsInertialValue(ByteBuffer _bb) { return GetRootAsInertialValue(_bb, new InertialValue()); } public static InertialValue GetRootAsInertialValue(ByteBuffer _bb, InertialValue obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/samples-net/datalayer.provider.virtual/.vscode/launch.json b/samples-net/datalayer.provider.virtual/.vscode/launch.json index 6180d472d..2fc208252 100644 --- a/samples-net/datalayer.provider.virtual/.vscode/launch.json +++ b/samples-net/datalayer.provider.virtual/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build project", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/bin/Debug/net6.0/datalayer.provider.virtual.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/datalayer.provider.virtual.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/datalayer.provider.virtual/datalayer.provider.virtual.csproj b/samples-net/datalayer.provider.virtual/datalayer.provider.virtual.csproj index 55e2ac191..7173db556 100644 --- a/samples-net/datalayer.provider.virtual/datalayer.provider.virtual.csproj +++ b/samples-net/datalayer.provider.virtual/datalayer.provider.virtual.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 Samples.Datalayer.Provider.Virtual None @@ -18,8 +18,8 @@ - - + + diff --git a/samples-net/diagnostics.logbook/.vscode/launch.json b/samples-net/diagnostics.logbook/.vscode/launch.json index ddb925464..f354d8cde 100644 --- a/samples-net/diagnostics.logbook/.vscode/launch.json +++ b/samples-net/diagnostics.logbook/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build project", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/bin/Debug/net6.0/diagnostics.logbook.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/diagnostics.logbook.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/diagnostics.logbook/diagnostics.logbook.csproj b/samples-net/diagnostics.logbook/diagnostics.logbook.csproj index 63a1b51bb..1623cd838 100644 --- a/samples-net/diagnostics.logbook/diagnostics.logbook.csproj +++ b/samples-net/diagnostics.logbook/diagnostics.logbook.csproj @@ -2,16 +2,16 @@ Exe - net6.0 + net8.0 Samples.Diagnostics.Logbook None - - - - + + + + diff --git a/samples-net/hello.web.asp/.vscode/launch.json b/samples-net/hello.web.asp/.vscode/launch.json index 1a0b5d64d..480721492 100644 --- a/samples-net/hello.web.asp/.vscode/launch.json +++ b/samples-net/hello.web.asp/.vscode/launch.json @@ -9,7 +9,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "build project", - "program": "${workspaceFolder}/bin/Debug/net6.0/hello.web.asp.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/hello.web.asp.dll", "args": [], "cwd": "${workspaceFolder}", "stopAtEntry": false, diff --git a/samples-net/hello.web.asp/Program.cs b/samples-net/hello.web.asp/Program.cs index 2ecf749a6..be8fa17ce 100644 --- a/samples-net/hello.web.asp/Program.cs +++ b/samples-net/hello.web.asp/Program.cs @@ -24,4 +24,4 @@ public static IHostBuilder CreateHostBuilder(string[] args) }); } } -} +} \ No newline at end of file diff --git a/samples-net/hello.web.asp/hello.web.asp.csproj b/samples-net/hello.web.asp/hello.web.asp.csproj index babcc815d..3d89438ba 100644 --- a/samples-net/hello.web.asp/hello.web.asp.csproj +++ b/samples-net/hello.web.asp/hello.web.asp.csproj @@ -1,13 +1,13 @@  - net6.0 + net8.0 Hello.Web.Asp None - + diff --git a/samples-net/hello.web.asp/services/DataLayerService.cs b/samples-net/hello.web.asp/services/DataLayerService.cs index 09ccc6144..f6518530c 100644 --- a/samples-net/hello.web.asp/services/DataLayerService.cs +++ b/samples-net/hello.web.asp/services/DataLayerService.cs @@ -19,46 +19,63 @@ public class DataLayerService /// /// Gets the Client. /// - public IClient Client { get; } + public static IClient Client { get; private set; } + + /// + /// Gets the DatalayerSystem. + /// + public static IDatalayerSystem System { get; private set; } /// /// Initializes a new instance of the class. /// - public DataLayerService() + static DataLayerService() { - Client = CreateClient(); + CreateClient(); } /// /// The CreateClient. /// /// The . - private static IClient CreateClient() + private static void CreateClient() { // Create a new ctrlX Data Layer system - var system = new DatalayerSystem(); + System = new DatalayerSystem(); // Starts the ctrlX Data Layer system without a new broker (startBroker = false) because one broker is already running on ctrlX CORE - system.Start(startBroker: false); - Console.WriteLine("ctrlX Data Layer system started."); + System.Start(startBroker: false); + + if (!System.IsStarted) + { + Console.WriteLine("Failed to connect ctrlX Data Layer client!"); + return; + } // Create a remote address with the parameters according to your environment var remote = new Remote(ip: "192.168.1.1", sslPort: 443).ToString(); // Create the client with remote connection string - using var client = system.Factory.CreateClient(remote); - Console.WriteLine("ctrlX Data Layer client created."); + Client = System.Factory.CreateClient(remote); - return client; + if (!Client.IsConnected) + { + Console.WriteLine("Failed to connect ctrlX Data Layer client!"); + } } /// - /// The ReadNodeValue. + /// Reads a value from the address. /// /// The address. /// The . public NodeValue ReadNodeValue(string address) { + if (Client == null) { + Console.WriteLine("Failed to read node value from ctrlX Data Layer client!"); + return null; + } + var (result, variant) = Client.Read(address); var node = new NodeValue { diff --git a/samples-net/hello.world/.vscode/launch.json b/samples-net/hello.world/.vscode/launch.json index db071769d..53c2f7955 100644 --- a/samples-net/hello.world/.vscode/launch.json +++ b/samples-net/hello.world/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build project", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/bin/Debug/net6.0/hello.world.dll", + "program": "${workspaceFolder}/bin/Debug/net8.0/hello.world.dll", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/samples-net/hello.world/hello.world.csproj b/samples-net/hello.world/hello.world.csproj index 3bf04c26b..4f8d46be2 100644 --- a/samples-net/hello.world/hello.world.csproj +++ b/samples-net/hello.world/hello.world.csproj @@ -2,11 +2,11 @@ Exe - net6.0 + net8.0 Samples.HelloWorld - + diff --git a/samples-net/samples.sln b/samples-net/samples.sln index 1aa3bae2e..050ef6584 100644 --- a/samples-net/samples.sln +++ b/samples-net/samples.sln @@ -3,12 +3,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.3.32922.545 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "datalayer.client", "datalayer.client\datalayer.client.csproj", "{78366E2C-DA29-4226-B08A-E420911FC8E8}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "datalayer.provider.alldata", "datalayer.provider.alldata\datalayer.provider.alldata.csproj", "{BEFC4E5D-7C2A-411E-9101-D025027C282E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "datalayer.provider", "datalayer.provider\datalayer.provider.csproj", "{E2193A37-1BD3-4FC0-98BE-5A2201CBF784}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B3C8AA5B-8E98-4884-8EE8-DF9A3F8A1822}" ProjectSection(SolutionItems) = preProject nuget.config = nuget.config @@ -20,8 +16,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "hello.world", "hello.world\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "diagnostics.logbook", "diagnostics.logbook\diagnostics.logbook.csproj", "{97C5D05B-176D-48E1-AB91-FC48387F42CA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "datalayer.mqtt", "datalayer.mqtt\datalayer.mqtt.csproj", "{318347E8-2D82-4EC4-8653-2B2D5D8F65DC}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "datalayer.provider.virtual", "datalayer.provider.virtual\datalayer.provider.virtual.csproj", "{2087D920-EF0D-4A1D-A76D-EB4232995827}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "appdata", "appdata\appdata.csproj", "{6C8E126C-30ED-4C30-ADEC-1CA3A2B8CDDA}" @@ -36,18 +30,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {78366E2C-DA29-4226-B08A-E420911FC8E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {78366E2C-DA29-4226-B08A-E420911FC8E8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {78366E2C-DA29-4226-B08A-E420911FC8E8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {78366E2C-DA29-4226-B08A-E420911FC8E8}.Release|Any CPU.Build.0 = Release|Any CPU {BEFC4E5D-7C2A-411E-9101-D025027C282E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BEFC4E5D-7C2A-411E-9101-D025027C282E}.Debug|Any CPU.Build.0 = Debug|Any CPU {BEFC4E5D-7C2A-411E-9101-D025027C282E}.Release|Any CPU.ActiveCfg = Release|Any CPU {BEFC4E5D-7C2A-411E-9101-D025027C282E}.Release|Any CPU.Build.0 = Release|Any CPU - {E2193A37-1BD3-4FC0-98BE-5A2201CBF784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2193A37-1BD3-4FC0-98BE-5A2201CBF784}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E2193A37-1BD3-4FC0-98BE-5A2201CBF784}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E2193A37-1BD3-4FC0-98BE-5A2201CBF784}.Release|Any CPU.Build.0 = Release|Any CPU {B38F7169-CECB-4F89-A70C-3A5515FB8850}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B38F7169-CECB-4F89-A70C-3A5515FB8850}.Debug|Any CPU.Build.0 = Debug|Any CPU {B38F7169-CECB-4F89-A70C-3A5515FB8850}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -60,10 +46,6 @@ Global {97C5D05B-176D-48E1-AB91-FC48387F42CA}.Debug|Any CPU.Build.0 = Debug|Any CPU {97C5D05B-176D-48E1-AB91-FC48387F42CA}.Release|Any CPU.ActiveCfg = Release|Any CPU {97C5D05B-176D-48E1-AB91-FC48387F42CA}.Release|Any CPU.Build.0 = Release|Any CPU - {318347E8-2D82-4EC4-8653-2B2D5D8F65DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {318347E8-2D82-4EC4-8653-2B2D5D8F65DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {318347E8-2D82-4EC4-8653-2B2D5D8F65DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {318347E8-2D82-4EC4-8653-2B2D5D8F65DC}.Release|Any CPU.Build.0 = Release|Any CPU {2087D920-EF0D-4A1D-A76D-EB4232995827}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2087D920-EF0D-4A1D-A76D-EB4232995827}.Debug|Any CPU.Build.0 = Debug|Any CPU {2087D920-EF0D-4A1D-A76D-EB4232995827}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/samples-node/.gitignore b/samples-node/.gitignore new file mode 100644 index 000000000..e598c186d --- /dev/null +++ b/samples-node/.gitignore @@ -0,0 +1,5 @@ +/**/bin +/**/obj +/**/prime +/**/stage +/**/parts \ No newline at end of file diff --git a/samples-node/README.md b/samples-node/README.md index ed4508f08..d7e5d0928 100644 --- a/samples-node/README.md +++ b/samples-node/README.md @@ -8,7 +8,7 @@ * [Hello World](./hello-world/README.md) * [ctrlX Data Layer Client](./datalayer.client-simple/README.md) * [ctrlX Data Layer Provider](./datalayer.provider-simple/README.md) -* [ctrlX Solutions WebDAV Interface](./solutions.webdav.interface/README.md) +* [ctrlX WebDAV App data Client](./webdav.client/README.md) ### Advanced Samples @@ -16,6 +16,9 @@ * [ctrlX Data Layer Client: Browser](./datalayer.client.browse/README.md) * [ctrlX Data Layer Provider: All Data Types](./datalayer.provider.alldata/README.md) +### Angular Samples +* [Angular Multi-language](./angular.multi-language/README.md) + ## Build a Snap See [Samples Overview](../samples.md) \ No newline at end of file diff --git a/samples-angular/multi-language/.browserslistrc b/samples-node/angular.multi-language/.browserslistrc similarity index 100% rename from samples-angular/multi-language/.browserslistrc rename to samples-node/angular.multi-language/.browserslistrc diff --git a/samples-angular/multi-language/.editorconfig b/samples-node/angular.multi-language/.editorconfig similarity index 100% rename from samples-angular/multi-language/.editorconfig rename to samples-node/angular.multi-language/.editorconfig diff --git a/samples-angular/multi-language/.gitignore b/samples-node/angular.multi-language/.gitignore similarity index 100% rename from samples-angular/multi-language/.gitignore rename to samples-node/angular.multi-language/.gitignore diff --git a/samples-angular/multi-language/.vscode/extensions.json b/samples-node/angular.multi-language/.vscode/extensions.json similarity index 100% rename from samples-angular/multi-language/.vscode/extensions.json rename to samples-node/angular.multi-language/.vscode/extensions.json diff --git a/samples-angular/multi-language/.vscode/launch.json b/samples-node/angular.multi-language/.vscode/launch.json similarity index 100% rename from samples-angular/multi-language/.vscode/launch.json rename to samples-node/angular.multi-language/.vscode/launch.json diff --git a/samples-angular/multi-language/.vscode/settings.json b/samples-node/angular.multi-language/.vscode/settings.json similarity index 100% rename from samples-angular/multi-language/.vscode/settings.json rename to samples-node/angular.multi-language/.vscode/settings.json diff --git a/samples-angular/multi-language/.vscode/tasks.json b/samples-node/angular.multi-language/.vscode/tasks.json similarity index 100% rename from samples-angular/multi-language/.vscode/tasks.json rename to samples-node/angular.multi-language/.vscode/tasks.json diff --git a/samples-angular/multi-language/README.md b/samples-node/angular.multi-language/README.md similarity index 99% rename from samples-angular/multi-language/README.md rename to samples-node/angular.multi-language/README.md index 51e77980e..7222f20c1 100644 --- a/samples-angular/multi-language/README.md +++ b/samples-node/angular.multi-language/README.md @@ -1,4 +1,4 @@ -# README multi-language.angular +# README Node.js angular.multi-language This multi-language sample is an Angular application to demonstrate the use of localization files in ctrlX apps. diff --git a/samples-angular/multi-language/angular.json b/samples-node/angular.multi-language/angular.json similarity index 98% rename from samples-angular/multi-language/angular.json rename to samples-node/angular.multi-language/angular.json index 029d9a546..6ec1bbcd5 100644 --- a/samples-angular/multi-language/angular.json +++ b/samples-node/angular.multi-language/angular.json @@ -30,7 +30,7 @@ "src/styles.scss" ], "scripts": [], - "baseHref": "/sdk-multi-language/" + "baseHref": "/sdk-angular-multi-language/" }, "configurations": { "production": { diff --git a/samples-angular/multi-language/build-snap-amd64.sh b/samples-node/angular.multi-language/build-snap-amd64.sh similarity index 100% rename from samples-angular/multi-language/build-snap-amd64.sh rename to samples-node/angular.multi-language/build-snap-amd64.sh diff --git a/samples-angular/multi-language/build-snap-arm64.sh b/samples-node/angular.multi-language/build-snap-arm64.sh similarity index 100% rename from samples-angular/multi-language/build-snap-arm64.sh rename to samples-node/angular.multi-language/build-snap-arm64.sh diff --git a/samples-node/angular.multi-language/configs/package-assets/sdk-angular-multi-language.package-manifest.json b/samples-node/angular.multi-language/configs/package-assets/sdk-angular-multi-language.package-manifest.json new file mode 100644 index 000000000..333b07bca --- /dev/null +++ b/samples-node/angular.multi-language/configs/package-assets/sdk-angular-multi-language.package-manifest.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.boschrexroth.com/ctrlx-automation/ctrlx-core/apps/package-manifest/package-manifest.v1.3.schema.json", + "version": "1.0.0", + "id": "sdk-angular-multi-language", + "menus": { + "sidebar": [ + { + "id": "sdk-angular-multi-language", + "title": "SDK Angular Multi-Language", + "icon": "bosch-ic-translate", + "link": "/sdk-angular-multi-language", + "target": "_blank" + } + ] + }, + "services": { + "proxyMapping": [ + { + "binding": "unix://{$PACKAGE_WWW_SOCKET}", + "name": "sdk-angular-multi-language", + "url": "/sdk-angular-multi-language" + } + ] + } +} \ No newline at end of file diff --git a/samples-angular/multi-language/karma.conf.js b/samples-node/angular.multi-language/karma.conf.js similarity index 100% rename from samples-angular/multi-language/karma.conf.js rename to samples-node/angular.multi-language/karma.conf.js diff --git a/samples-node/angular.multi-language/package-lock.json b/samples-node/angular.multi-language/package-lock.json new file mode 100644 index 000000000..b2845c904 --- /dev/null +++ b/samples-node/angular.multi-language/package-lock.json @@ -0,0 +1,13300 @@ +{ + "name": "sdk-angular-multi-language", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sdk-angular-multi-language", + "version": "1.0.0", + "dependencies": { + "@angular/animations": "^17.1.0", + "@angular/cdk": "^17.1.0", + "@angular/common": "^17.1.0", + "@angular/compiler": "^17.1.0", + "@angular/core": "^17.1.0", + "@angular/forms": "^17.3.2", + "@angular/material": "^17.3.2", + "@angular/platform-browser": "^17.1.0", + "@angular/platform-browser-dynamic": "^17.3.2", + "@ngx-translate/core": "^15.0.0", + "@ngx-translate/http-loader": "^8.0.0", + "ngx-translate-multi-http-loader": "^17.0.0", + "snap": "^1.1.0", + "tslib": "^2.6.2", + "zone.js": "^0.14.4" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.3.2", + "@angular/cli": "^17.3.2", + "@angular/compiler-cli": "^17.3.2", + "@types/node": "^20.12.2", + "ngx-translate-extract": "^1.0.0", + "typescript": "^5.4.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1703.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.2.tgz", + "integrity": "sha512-fT5gSzwDHOyGv8zF97t8rjeoYSGSxXjWWstl3rN1nXdO0qgJ5m6Sv0fupON+HltdXDCBLRH+2khNpqx/Fh0Qww==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.2", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.2.tgz", + "integrity": "sha512-muPCUyL0uHvRkLH4NLWiccER6P2vCm/Q5DDvqyN4XOzzY3tAHHLrKrpvY87sgd2oNJ6Ci8x7GPNcfzR5KELCnw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1703.2", + "@angular-devkit/build-webpack": "0.1703.2", + "@angular-devkit/core": "17.3.2", + "@babel/core": "7.24.0", + "@babel/generator": "7.23.6", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-transform-async-generator-functions": "7.23.9", + "@babel/plugin-transform-async-to-generator": "7.23.3", + "@babel/plugin-transform-runtime": "7.24.0", + "@babel/preset-env": "7.24.0", + "@babel/runtime": "7.24.0", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "17.3.2", + "@vitejs/plugin-basic-ssl": "1.1.0", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.18", + "babel-loader": "9.1.3", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.21.5", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.22", + "css-loader": "6.10.0", + "esbuild-wasm": "0.20.1", + "fast-glob": "3.3.2", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "7.0.4", + "inquirer": "9.2.15", + "jsonc-parser": "3.2.1", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.8", + "mini-css-extract-plugin": "2.8.1", + "mrmime": "2.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.1", + "piscina": "4.4.0", + "postcss": "8.4.35", + "postcss-loader": "8.1.1", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.71.1", + "sass-loader": "14.1.1", + "semver": "7.6.0", + "source-map-loader": "5.0.0", + "source-map-support": "0.5.21", + "terser": "5.29.1", + "tree-kill": "1.2.2", + "tslib": "2.6.2", + "undici": "6.7.1", + "vite": "5.1.5", + "watchpack": "2.4.0", + "webpack": "5.90.3", + "webpack-dev-middleware": "6.1.2", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.10.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.20.1" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "@angular/localize": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/service-worker": "^17.0.0", + "@web/test-runner": "^0.18.0", + "browser-sync": "^3.0.2", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^17.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.2 <5.5" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1703.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.2.tgz", + "integrity": "sha512-w7rVFQcZK4iTCd/MLfQWIkDkwBOfAs++txNQyS9qYID8KvLs1V+oWYd2qDBRelRv1u3YtaCIS1pQx3GFKBC3OA==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1703.2", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.2.tgz", + "integrity": "sha512-1vxKo9+pdSwTOwqPDSYQh84gZYmCJo6OgR5+AZoGLGMZSeqvi9RG5RiUcOMLQYOnuYv0arlhlWxz0ZjyR8ApKw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.2.tgz", + "integrity": "sha512-AYO6oc6QpFGigc1KiDzEVT1CeLnwvnIedU5Q/U3JDZ/Yqmvgc09D64g9XXER2kg6tV7iEgLxiYnonIAQOHq7eA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.2", + "jsonc-parser": "3.2.1", + "magic-string": "0.30.8", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/animations": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.2.tgz", + "integrity": "sha512-9RplCRS3dS7I8UeMmnwVCAxEaixQCj98UkSqjErO+GX5KJwMsFPydh7HKWH0/yclidJe5my41psEiQkyEyGKww==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.3.2" + } + }, + "node_modules/@angular/cdk": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.3.2.tgz", + "integrity": "sha512-mC2U7aoIf7RSpGgIwVyfQEbaPDDX59plQt88KeTz15wjF8vosLt2DG0rZEoV8Mq14YS47J+jI76q/LJfd6/GCw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.2.tgz", + "integrity": "sha512-g6r4XZyGnh9P6GmWgaFh8RmR4L6UdQ408e3SpG3rjncuPRD57Ur8806GfCLPt6HIA9TARiKmaJ0EJ3RsIjag0g==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1703.2", + "@angular-devkit/core": "17.3.2", + "@angular-devkit/schematics": "17.3.2", + "@schematics/angular": "17.3.2", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.2", + "inquirer": "9.2.15", + "jsonc-parser": "3.2.1", + "npm-package-arg": "11.0.1", + "npm-pick-manifest": "9.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "17.0.6", + "resolve": "1.22.8", + "semver": "7.6.0", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.3.2.tgz", + "integrity": "sha512-7fo+hrQEzo+VX0fJAKK+P4YNeiEnpdMOAkyIdwweyAeUZYeFIs6TKtax3CiJAubnkIkhQ/52uxiusDhK3Wg/WQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.3.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.3.2.tgz", + "integrity": "sha512-+/l/FQpVsOPbxZzSKyqEra+yxoI/r8LlTRqshVACv10+DKMWJMHnDkVUrNxvWHutfn4RszpGMtbtHp3yM9rxcA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.3.2" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.3.2.tgz", + "integrity": "sha512-PG81BrJjeF679tkafjt+t9VEBE1rPq39cdLoBTnPY7Q+E/thVoem5JTRG6hmnLmwEc0xxY6sfYpvx2BB5ywUSA==", + "dev": true, + "dependencies": { + "@babel/core": "7.23.9", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/compiler": "17.3.2", + "typescript": ">=5.2 <5.5" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/core": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.3.2.tgz", + "integrity": "sha512-eylatBGaN8uihKomEcXkaSHmAea5bEqu1OXifEoVOJiJpJA9Dbt/VcLXkIRFnRGH2NWUT5W79vSoU9GRvPMk5w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.0" + } + }, + "node_modules/@angular/forms": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.3.2.tgz", + "integrity": "sha512-sbHYjAEeEWW+02YDEKuuuTEUukm6AayQuHiAu37vACj/2q/2RWQar49IoRcSJfAwP2ckqRSK4mmLoDX4IG/KSg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.3.2", + "@angular/core": "17.3.2", + "@angular/platform-browser": "17.3.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/material": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.3.2.tgz", + "integrity": "sha512-FuQnzmVZQUqPYxn2AbRNKY/7LTldhazK+PCN+Y9vbTZ6L1INJLANip1r4iXfZnhAUE+dmFAPN6GzfLLh1Dg7vA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/auto-init": "15.0.0-canary.7f224ddd4.0", + "@material/banner": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/card": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/chips": "15.0.0-canary.7f224ddd4.0", + "@material/circular-progress": "15.0.0-canary.7f224ddd4.0", + "@material/data-table": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dialog": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/drawer": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/fab": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/form-field": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/image-list": "15.0.0-canary.7f224ddd4.0", + "@material/layout-grid": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/radio": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/segmented-button": "15.0.0-canary.7f224ddd4.0", + "@material/select": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/slider": "15.0.0-canary.7f224ddd4.0", + "@material/snackbar": "15.0.0-canary.7f224ddd4.0", + "@material/switch": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", + "@material/textfield": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tooltip": "15.0.0-canary.7f224ddd4.0", + "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^17.0.0 || ^18.0.0", + "@angular/cdk": "17.3.2", + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "@angular/forms": "^17.0.0 || ^18.0.0", + "@angular/platform-browser": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.3.2.tgz", + "integrity": "sha512-rBVmpJ/uh+CTjYef3Nib1K+31GFbM4mZaw2R2PowKZLgWOT3MWXKy41i44NEyM8qY1dxESmzMzy4NuGfZol42Q==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/animations": "17.3.2", + "@angular/common": "17.3.2", + "@angular/core": "17.3.2" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.3.2.tgz", + "integrity": "sha512-fcGo9yQ+t9VaG9zPgjQW5HIizbYOKj+9kVk9FPru+uJbYyvJUwEDgpD3aI0DUrQy/OvSf4NMzY/Ucgw1AUknQw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.3.2", + "@angular/compiler": "17.3.2", + "@angular/core": "17.3.2", + "@angular/platform-browser": "17.3.2" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", + "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.1.tgz", + "integrity": "sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", + "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.1.tgz", + "integrity": "sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.1.tgz", + "integrity": "sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", + "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", + "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", + "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", + "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", + "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", + "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", + "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", + "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", + "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", + "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", + "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", + "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", + "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", + "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", + "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", + "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", + "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", + "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", + "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", + "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", + "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", + "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", + "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", + "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", + "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", + "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", + "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", + "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", + "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", + "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", + "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", + "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true + }, + "node_modules/@ljharb/through": { + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", + "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@material/animation": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/auto-init": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/banner": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/base": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA==", + "dependencies": { + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/card": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw==", + "dependencies": { + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/checkbox": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/chips": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/circular-progress": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/data-table": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/select": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/density": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dialog": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dom": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/drawer": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/elevation": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/fab": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/feature-targeting": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/floating-label": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/focus-ring": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg==", + "dependencies": { + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0" + } + }, + "node_modules/@material/form-field": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/icon-button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/image-list": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/layout-grid": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/line-ripple": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/linear-progress": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/list": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu-surface": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/notched-outline": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/progress-indicator": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/radio": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/ripple": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/rtl": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA==", + "dependencies": { + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/segmented-button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/select": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/shape": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/slider": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/snackbar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/switch": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-bar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-indicator": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-scroller": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/textfield": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/theme": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tokens": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw==", + "dependencies": { + "@material/elevation": "15.0.0-canary.7f224ddd4.0" + } + }, + "node_modules/@material/tooltip": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/top-app-bar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/touch-target": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/typography": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.2.tgz", + "integrity": "sha512-E8zejFF4aJ8l2XcF+GgnE/1IqsZepnPT1xzulLB4LXtjVuXLFLoF9xkHQwxs7cJWWZsxd/SlNsCIcn/ezrYBcQ==", + "dev": true, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "typescript": ">=5.2 <5.5", + "webpack": "^5.54.0" + } + }, + "node_modules/@ngx-translate/core": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-15.0.0.tgz", + "integrity": "sha512-Am5uiuR0bOOxyoercDnAA3rJVizo4RRqJHo8N3RqJ+XfzVP/I845yEnMADykOHvM6HkVm4SZSnJBOiz0Anx5BA==", + "engines": { + "node": "^16.13.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/common": ">=16.0.0", + "@angular/core": ">=16.0.0", + "rxjs": "^6.5.5 || ^7.4.0" + } + }, + "node_modules/@ngx-translate/http-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-8.0.0.tgz", + "integrity": "sha512-SFMsdUcmHF5OdZkL1CHEoSAwbP5EbAOPTLLboOCRRoOg21P4GJx+51jxGdJeGve6LSKLf4Pay7BkTwmE6vxYlg==", + "engines": { + "node": "^16.13.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/common": ">=16.0.0", + "@angular/core": ">=16.0.0", + "@ngx-translate/core": ">=15.0.0", + "rxjs": "^6.5.5 || ^7.4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz", + "integrity": "sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "dev": true, + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.0.tgz", + "integrity": "sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", + "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "dev": true, + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", + "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.2.tgz", + "integrity": "sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.2.tgz", + "integrity": "sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.2.tgz", + "integrity": "sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.2.tgz", + "integrity": "sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.2.tgz", + "integrity": "sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.2.tgz", + "integrity": "sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.2.tgz", + "integrity": "sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.13.2.tgz", + "integrity": "sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==", + "cpu": [ + "ppc64le" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.2.tgz", + "integrity": "sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.13.2.tgz", + "integrity": "sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.2.tgz", + "integrity": "sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.2.tgz", + "integrity": "sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.2.tgz", + "integrity": "sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.2.tgz", + "integrity": "sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.2.tgz", + "integrity": "sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@schematics/angular": { + "version": "17.3.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.2.tgz", + "integrity": "sha512-zPINvow0Qo6ionnDl25ZzSSLDyDxBjqRPEJWGHU70expbjXK4A2caQT9P/8ImhapbJAXJCfxg4GF9z1d/sWe4w==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.3.2", + "@angular-devkit/schematics": "17.3.2", + "jsonc-parser": "3.2.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", + "integrity": "sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz", + "integrity": "sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.3.tgz", + "integrity": "sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.2.tgz", + "integrity": "sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.1.1.tgz", + "integrity": "sha512-BNANJms49rw9Q5J+fJjrDqOQSzjXDcOq/pgKDaVdDoIvQwqIfaoUriy+fQfh8sBX04hr4bkkrwu3EbhQqoQH7A==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.7.tgz", + "integrity": "sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", + "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", + "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.1", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", + "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001605", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", + "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==", + "dev": true, + "dependencies": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cheerio/node_modules/css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/cheerio/node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cheerio/node_modules/dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/cheerio/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/cheerio/node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/cheerio/node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/cheerio/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "node_modules/cheerio/node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/cheerio/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", + "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/critters": { + "version": "0.0.22", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.22.tgz", + "integrity": "sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "postcss-media-query-parser": "^0.2.3" + } + }, + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/critters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/critters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", + "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deepmerge-ts": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-5.1.0.tgz", + "integrity": "sha512-eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw==", + "peer": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.723", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.723.tgz", + "integrity": "sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha512-bl1LAgiQc4ZWr++pNYUdRe/alecaHFeHxIJ/pNciqGdKXghaTCOwKkbKp6ye7pKZGu/GcaSXFk8PBVhgs+dJdA==", + "dev": true, + "dependencies": { + "iconv-lite": "~0.4.13" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", + "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", + "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.1", + "@esbuild/android-arm": "0.20.1", + "@esbuild/android-arm64": "0.20.1", + "@esbuild/android-x64": "0.20.1", + "@esbuild/darwin-arm64": "0.20.1", + "@esbuild/darwin-x64": "0.20.1", + "@esbuild/freebsd-arm64": "0.20.1", + "@esbuild/freebsd-x64": "0.20.1", + "@esbuild/linux-arm": "0.20.1", + "@esbuild/linux-arm64": "0.20.1", + "@esbuild/linux-ia32": "0.20.1", + "@esbuild/linux-loong64": "0.20.1", + "@esbuild/linux-mips64el": "0.20.1", + "@esbuild/linux-ppc64": "0.20.1", + "@esbuild/linux-riscv64": "0.20.1", + "@esbuild/linux-s390x": "0.20.1", + "@esbuild/linux-x64": "0.20.1", + "@esbuild/netbsd-x64": "0.20.1", + "@esbuild/openbsd-x64": "0.20.1", + "@esbuild/sunos-x64": "0.20.1", + "@esbuild/win32-arm64": "0.20.1", + "@esbuild/win32-ia32": "0.20.1", + "@esbuild/win32-x64": "0.20.1" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.1.tgz", + "integrity": "sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-2.0.1.tgz", + "integrity": "sha512-DKzRAnUBJ3lGOM3qbaw1HQ36sDw4e8sDb/fwjC+PWBNz02H0sM3bnGNWSZWnyrXYvfehCzMniwsTpvKy8sWSrg==", + "deprecated": "Fixed a prototype pollution security issue in 2.0.1, please upgrade to ^2.0.2 or ^5.0.1.", + "dev": true, + "dependencies": { + "is-buffer": "~1.1.2" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gettext-parser": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.2.2.tgz", + "integrity": "sha512-UEpX11Y8Rlie29A698bQ7qqEcirwcWC1MO4bZLQCgChGb9d14IQQcamlE5iEp9eVZ93OinKi0uZxc6HGdVWCeg==", + "dev": true, + "dependencies": { + "encoding": "0.1.12" + } + }, + "node_modules/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-mRyN/EsN2SyNhKWykF3eEGhDpeNplMWaW18Bmh76tnOqk5TbELAVwFAYOCmKVssOYFrYvvLMguiA+NXO3ZTuVA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", + "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "dev": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "9.2.15", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", + "integrity": "sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==", + "dev": true, + "dependencies": { + "@ljharb/through": "^2.3.12", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^3.2.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==", + "dev": true + }, + "node_modules/lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "node_modules/lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", + "dev": true + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, + "node_modules/lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==", + "dev": true + }, + "node_modules/lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==", + "dev": true + }, + "node_modules/lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dev": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", + "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", + "dev": true + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-fetch/node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/minipass-fetch/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/ngx-translate-extract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ngx-translate-extract/-/ngx-translate-extract-1.0.0.tgz", + "integrity": "sha512-IQRq/ZlBcowGPK3q2YK8OQGtqyPV7dD+yEqMcYmOjBK+TYiBmsvp9iiYt69O8wJ+eDCJFypg77/OYYFB50JXNg==", + "dev": true, + "dependencies": { + "chalk": "1.1.3", + "cheerio": "0.22.0", + "flat": "2.0.1", + "fs": "0.0.1-security", + "gettext-parser": "1.2.2", + "glob": "7.1.1", + "mkdirp": "0.5.1", + "path": "0.12.7", + "yargs": "7.0.2" + }, + "bin": { + "ngx-translate-extract": "bin/cli.js" + }, + "engines": { + "node": ">=4.3.2" + } + }, + "node_modules/ngx-translate-extract/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/ngx-translate-extract/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/ngx-translate-extract/node_modules/yargs": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.0.2.tgz", + "integrity": "sha512-TPLie0SG7fctzFYiOYQ5BqTryKMHJwjtfxwYkt8QbcNptdrZi4dVCUD3YKpYhq+9o3AN1nArOkbfA2gJV/m4mQ==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "node_modules/ngx-translate-extract/node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/ngx-translate-multi-http-loader": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/ngx-translate-multi-http-loader/-/ngx-translate-multi-http-loader-17.0.0.tgz", + "integrity": "sha512-YCq2xEwGiGwuhWHXDoNHVR9TvKEhrVnGFt4WqJjYU220W8yXYKJsoX9f+BOj+sR8ryjOax4wvHy7eCZnIxuIyg==", + "dependencies": { + "tslib": "^2.6.2" + }, + "peerDependencies": { + "@angular/common": ">=13.0.0", + "@angular/core": ">=13.0.0", + "@ngx-translate/core": ">=15.0.0", + "deepmerge-ts": "^5.1.0", + "rxjs": "^7.8.1" + } + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", + "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "dev": true, + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", + "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "devOptional": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "dev": true, + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", + "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/piscina": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", + "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==", + "dev": true, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", + "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", + "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "dev": true, + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.2.tgz", + "integrity": "sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.13.2", + "@rollup/rollup-android-arm64": "4.13.2", + "@rollup/rollup-darwin-arm64": "4.13.2", + "@rollup/rollup-darwin-x64": "4.13.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.13.2", + "@rollup/rollup-linux-arm64-gnu": "4.13.2", + "@rollup/rollup-linux-arm64-musl": "4.13.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.13.2", + "@rollup/rollup-linux-riscv64-gnu": "4.13.2", + "@rollup/rollup-linux-s390x-gnu": "4.13.2", + "@rollup/rollup-linux-x64-gnu": "4.13.2", + "@rollup/rollup-linux-x64-musl": "4.13.2", + "@rollup/rollup-win32-arm64-msvc": "4.13.2", + "@rollup/rollup-win32-ia32-msvc": "4.13.2", + "@rollup/rollup-win32-x64-msvc": "4.13.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/safevalues": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" + }, + "node_modules/sass": { + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.1.tgz", + "integrity": "sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.2.tgz", + "integrity": "sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/sign": "^2.2.3", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/snap/-/snap-1.1.0.tgz", + "integrity": "sha512-FmMlo7lc0DevCAxSq5k5yOWMTYxQp5JZX38zHsHyaZkUL632qlrmN28d3o7tHwNGZWj3Fj1Mmmy0hzQeNjE20g==", + "hasInstallScript": true, + "dependencies": { + "chalk": "^2.4.1", + "commander": "^2.18.0", + "fs-extra": "^7.0.0", + "shelljs": "^0.8.2" + }, + "bin": { + "snap": "snap.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "dev": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.29.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", + "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", + "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "dev": true, + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", + "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.7.1.tgz", + "integrity": "sha512-+Wtb9bAQw6HYWzCnxrPTMVEV3Q1QjYanI0E4q02ehReMuquQdLTEFEYbfs7hcImVYKcQkWSwT6buEmSVIiDDtQ==", + "dev": true, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.5.tgz", + "integrity": "sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz", + "integrity": "sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-merge/node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.4.tgz", + "integrity": "sha512-NtTUvIlNELez7Q1DzKVIFZBzNb646boQMgpATo9z3Ftuu/gWvzxCW7jdjcUDoRGxRikrhVHB/zLXh1hxeJawvw==", + "dependencies": { + "tslib": "^2.3.0" + } + } + } +} diff --git a/samples-node/angular.multi-language/package.json b/samples-node/angular.multi-language/package.json new file mode 100644 index 000000000..b53792b27 --- /dev/null +++ b/samples-node/angular.multi-language/package.json @@ -0,0 +1,38 @@ +{ + "name": "sdk-angular-multi-language", + "version": "1.0.0", + "private": true, + "devDependencies": { + "@angular-devkit/build-angular": "^17.3.2", + "@angular/cli": "^17.3.2", + "@angular/compiler-cli": "^17.3.2", + "@types/node": "^20.12.2", + "ngx-translate-extract": "^1.0.0", + "typescript": "^5.4.3" + }, + "dependencies": { + "@angular/animations": "^17.1.0", + "@angular/cdk": "^17.1.0", + "@angular/common": "^17.1.0", + "@angular/compiler": "^17.1.0", + "@angular/core": "^17.1.0", + "@angular/forms": "^17.3.2", + "@angular/material": "^17.3.2", + "@angular/platform-browser": "^17.1.0", + "@angular/platform-browser-dynamic": "^17.3.2", + "@ngx-translate/core": "^15.0.0", + "@ngx-translate/http-loader": "^8.0.0", + "ngx-translate-multi-http-loader": "^17.0.0", + "snap": "^1.1.0", + "tslib": "^2.6.2", + "zone.js": "^0.14.4" + }, + "scripts": { + "ng": "ng", + "start": "ng serve -o", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test", + "getName": "echo $npm_package_name" + } +} diff --git a/samples-node/angular.multi-language/snap/snapcraft.yaml b/samples-node/angular.multi-language/snap/snapcraft.yaml new file mode 100644 index 000000000..e191b946c --- /dev/null +++ b/samples-node/angular.multi-language/snap/snapcraft.yaml @@ -0,0 +1,83 @@ +# Getting started +# See https://snapcraft.io/docs/getting-started +# Snapcraft references +# See https://snapcraft.io/docs/snapcraft-yaml-reference +name: sdk-angular-multi-language +title: SDK Node.js Angular Multi-Language +version: 1.0.0 +summary: Angular multi-language sample written in Node.js for ctrlX CORE. +description: | + This sample shows how to set different languages in Angular apps. +confinement: strict +#confinement: devmode +#icon: assets/icons/ICONHERE.png +grade: stable # must be 'stable' to release into candidate/stable channels +base: core22 +type: app + +parts: + configs: + source: ./configs + plugin: dump + organize: + 'package-assets/*': package-assets/${SNAPCRAFT_PROJECT_NAME}/ + + www: + source: . + build-environment: + # Set the node version here. We recommend to use the latest LTS version. + - NODE_VERSION: '20.12.0' + organize: + '${SNAPCRAFT_PART_BUILD}/dist/app': package-www/${SNAPCRAFT_PROJECT_NAME}/ + + # We don't use the npm plugin here, because it has no X-build capability (can't build arm64 target snaps on amd64). + # plugin: npm + # npm-node-version: "20.12.0" + plugin: nil + override-build: | + + # detect build arch + SNAPCRAFT_BUILD_ARCH=$(dpkg --print-architecture) + if [ $SNAPCRAFT_BUILD_ARCH == "arm64" ]; then + build_arch="arm64" + else + build_arch="x64" + fi + + # fetch node used for build + if [ ! -f "${SNAPCRAFT_PART_INSTALL}/bin/node" ]; then + node_path=$SNAPCRAFT_PART_BUILD/bin + node_uri="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${build_arch}.tar.gz" + echo fetching node for build: $node_uri + curl $node_uri | tar xzf - -C $SNAPCRAFT_PART_BUILD --no-same-owner --strip-components=1 + fi + + # set the path to build target node to be used for build + echo node path: $node_path + export PATH=$node_path:$PATH + node --version + npm --version + + # install and compile (-> ./dist) + npm install --ignore-scripts --no-fund --unsafe-perm + + # run angular build script + npm run build + + # remove node + rm -rf ${SNAPCRAFT_PART_INSTALL} + +slots: + package-assets: + interface: content + content: package-assets + source: + read: + - $SNAP/package-assets/${SNAPCRAFT_PROJECT_NAME} + + package-www: + interface: content + content: package-www + source: + read: + - $SNAP/package-www/${SNAPCRAFT_PROJECT_NAME} diff --git a/samples-angular/multi-language/src/app/app.component.html b/samples-node/angular.multi-language/src/app/app.component.html similarity index 100% rename from samples-angular/multi-language/src/app/app.component.html rename to samples-node/angular.multi-language/src/app/app.component.html diff --git a/samples-angular/multi-language/src/app/app.component.scss b/samples-node/angular.multi-language/src/app/app.component.scss similarity index 100% rename from samples-angular/multi-language/src/app/app.component.scss rename to samples-node/angular.multi-language/src/app/app.component.scss diff --git a/samples-angular/multi-language/src/app/app.component.spec.ts b/samples-node/angular.multi-language/src/app/app.component.spec.ts similarity index 86% rename from samples-angular/multi-language/src/app/app.component.spec.ts rename to samples-node/angular.multi-language/src/app/app.component.spec.ts index c7a1e1db6..0d3943932 100644 --- a/samples-angular/multi-language/src/app/app.component.spec.ts +++ b/samples-node/angular.multi-language/src/app/app.component.spec.ts @@ -25,16 +25,16 @@ describe('AppComponent', () => { expect(app).toBeTruthy(); }); - it(`should have as title 'Angular: SDK Multi-language'`, () => { + it(`should have as title 'Angular: SDK Multi-Language'`, () => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.componentInstance; - expect(app.title).toEqual('Angular: SDK Multi-language'); + expect(app.title).toEqual('Angular: SDK Multi-Language'); }); it('should render title', () => { const fixture = TestBed.createComponent(AppComponent); fixture.detectChanges(); const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('h1').textContent).toContain('Welcome to Angular: SDK Multi-language!'); + expect(compiled.querySelector('h1').textContent).toContain('Welcome to Angular: SDK Multi-Language!'); }); }); diff --git a/samples-angular/multi-language/src/app/app.component.ts b/samples-node/angular.multi-language/src/app/app.component.ts similarity index 100% rename from samples-angular/multi-language/src/app/app.component.ts rename to samples-node/angular.multi-language/src/app/app.component.ts diff --git a/samples-angular/multi-language/src/app/app.module.ts b/samples-node/angular.multi-language/src/app/app.module.ts similarity index 100% rename from samples-angular/multi-language/src/app/app.module.ts rename to samples-node/angular.multi-language/src/app/app.module.ts diff --git a/samples-angular/multi-language/src/app/books/book-list.component.html b/samples-node/angular.multi-language/src/app/books/book-list.component.html similarity index 100% rename from samples-angular/multi-language/src/app/books/book-list.component.html rename to samples-node/angular.multi-language/src/app/books/book-list.component.html diff --git a/samples-angular/multi-language/src/app/books/book-list.component.scss b/samples-node/angular.multi-language/src/app/books/book-list.component.scss similarity index 100% rename from samples-angular/multi-language/src/app/books/book-list.component.scss rename to samples-node/angular.multi-language/src/app/books/book-list.component.scss diff --git a/samples-angular/multi-language/src/app/books/book-list.component.spec.ts b/samples-node/angular.multi-language/src/app/books/book-list.component.spec.ts similarity index 100% rename from samples-angular/multi-language/src/app/books/book-list.component.spec.ts rename to samples-node/angular.multi-language/src/app/books/book-list.component.spec.ts diff --git a/samples-angular/multi-language/src/app/books/book-list.component.ts b/samples-node/angular.multi-language/src/app/books/book-list.component.ts similarity index 100% rename from samples-angular/multi-language/src/app/books/book-list.component.ts rename to samples-node/angular.multi-language/src/app/books/book-list.component.ts diff --git a/samples-angular/multi-language/src/app/books/book.ts b/samples-node/angular.multi-language/src/app/books/book.ts similarity index 100% rename from samples-angular/multi-language/src/app/books/book.ts rename to samples-node/angular.multi-language/src/app/books/book.ts diff --git a/samples-angular/multi-language/src/assets/.gitkeep b/samples-node/angular.multi-language/src/assets/.gitkeep similarity index 100% rename from samples-angular/multi-language/src/assets/.gitkeep rename to samples-node/angular.multi-language/src/assets/.gitkeep diff --git a/samples-angular/multi-language/src/assets/i18n/multi-language.de.json b/samples-node/angular.multi-language/src/assets/i18n/multi-language.de.json similarity index 93% rename from samples-angular/multi-language/src/assets/i18n/multi-language.de.json rename to samples-node/angular.multi-language/src/assets/i18n/multi-language.de.json index 01083bc9b..0bdda5330 100644 --- a/samples-angular/multi-language/src/assets/i18n/multi-language.de.json +++ b/samples-node/angular.multi-language/src/assets/i18n/multi-language.de.json @@ -1,6 +1,6 @@ { "doc": { - "pageTitle": "Multi-language in ctrlX", + "pageTitle": "Multi-Language in ctrlX", "title": "Das ist eine Beispielanwendung für die Nutzung von ngx-translate", "table": { "id": "Nummer", diff --git a/samples-angular/multi-language/src/assets/i18n/multi-language.en.json b/samples-node/angular.multi-language/src/assets/i18n/multi-language.en.json similarity index 93% rename from samples-angular/multi-language/src/assets/i18n/multi-language.en.json rename to samples-node/angular.multi-language/src/assets/i18n/multi-language.en.json index 335ec1aca..440464d40 100644 --- a/samples-angular/multi-language/src/assets/i18n/multi-language.en.json +++ b/samples-node/angular.multi-language/src/assets/i18n/multi-language.en.json @@ -1,6 +1,6 @@ { "doc": { - "pageTitle": "Multi-language in ctrlX", + "pageTitle": "Multi-Language in ctrlX", "title": "This is an example application for the usage of ngx-translate", "table": { "id": "Id", diff --git a/samples-angular/multi-language/src/environments/environment.prod.ts b/samples-node/angular.multi-language/src/environments/environment.prod.ts similarity index 100% rename from samples-angular/multi-language/src/environments/environment.prod.ts rename to samples-node/angular.multi-language/src/environments/environment.prod.ts diff --git a/samples-angular/multi-language/src/environments/environment.ts b/samples-node/angular.multi-language/src/environments/environment.ts similarity index 100% rename from samples-angular/multi-language/src/environments/environment.ts rename to samples-node/angular.multi-language/src/environments/environment.ts diff --git a/samples-angular/multi-language/src/favicon.ico b/samples-node/angular.multi-language/src/favicon.ico similarity index 100% rename from samples-angular/multi-language/src/favicon.ico rename to samples-node/angular.multi-language/src/favicon.ico diff --git a/samples-angular/multi-language/src/index.html b/samples-node/angular.multi-language/src/index.html similarity index 94% rename from samples-angular/multi-language/src/index.html rename to samples-node/angular.multi-language/src/index.html index 032d78239..8ea53e25f 100644 --- a/samples-angular/multi-language/src/index.html +++ b/samples-node/angular.multi-language/src/index.html @@ -5,7 +5,7 @@ - Multi-language Sample + Multi-Language Sample Run Task... --> make bfbs mddb + Main menu -> Terminal --> Run Task... --> Make bfbs ## Implementation Description @@ -38,11 +37,6 @@ It can also be called from Visual Studio Code: * sampleSchema.fbs: Defines a flatbuffers value (structed value). If changed compile it - see above. -#### Metadata - -* metadata.csv: Defines metadata for the provided ctrlX Data Layer nodes. If changed compile it - see above. -* metadata.mddb: Compiled information of metadata.csv. - ### Modules * The module __main.py__ manages the ctrlX Data Layer connection and the creation of the ctrlX Data Layer nodes. diff --git a/samples-python/datalayer.provider/app/my_provider_node.py b/samples-python/datalayer.provider/app/my_provider_node.py index abc3c3af1..440f7e73b 100644 --- a/samples-python/datalayer.provider/app/my_provider_node.py +++ b/samples-python/datalayer.provider/app/my_provider_node.py @@ -3,7 +3,7 @@ # SPDX-License-Identifier: MIT import ctrlxdatalayer -from comm.datalayer import DisplayFormat, Metadata, NodeClass +from comm.datalayer import NodeClass from ctrlxdatalayer.provider import Provider from ctrlxdatalayer.provider_node import ( ProviderNode, @@ -21,7 +21,8 @@ class MyProviderNode: """MyProviderNode""" - def __init__(self, provider: Provider, address: str, initialValue: Variant): + def __init__(self, provider: Provider, nodeAddress: str, typeAddress: str, + initialValue: Variant): """__init__""" self._cbs = ProviderNodeCallbacks( self.__on_create, @@ -33,31 +34,29 @@ def __init__(self, provider: Provider, address: str, initialValue: Variant): ) self._providerNode = ProviderNode(self._cbs) - self._provider = provider - self._address = address + self._nodeAddress = nodeAddress + self._typeAddress = typeAddress self._data = initialValue - self._metadata = MyProviderNode.__get_metadata(address) + self._metadata = self.create_metadata() - @staticmethod - def __get_metadata(address: str) -> Variant: - builder = MetadataBuilder( - allowed=AllowedOperation.READ | AllowedOperation.WRITE - ) - builder = builder.set_display_name(address) + def create_metadata(self) -> Variant: + builder = MetadataBuilder(allowed=AllowedOperation.READ + | AllowedOperation.WRITE) + builder = builder.set_display_name(self._nodeAddress) builder = builder.set_node_class(NodeClass.NodeClass.Variable) - if address.rfind("string") != -1: - builder.add_reference(ReferenceType.read(), "types/datalayer/string") - builder.add_reference(ReferenceType.write(), "types/datalayer/string") + builder.add_reference(ReferenceType.read(), self._typeAddress) + builder.add_reference(ReferenceType.write(), self._typeAddress) return builder.build() def register_node(self): """register_node""" - return self._provider.register_node(self._address, self._providerNode) + return self._provider.register_node(self._nodeAddress, + self._providerNode) def unregister_node(self): """unregister_node""" - self._provider.unregister_node(self._address) + self._provider.unregister_node(self._nodeAddress) self._metadata.close() self._data.close() @@ -73,7 +72,12 @@ def __on_create( cb: NodeCallback, ): """__on_create""" - print("__on_create()", "address:", address, "userdata:", userdata, flush=True) + print("__on_create()", + "address:", + address, + "userdata:", + userdata, + flush=True) cb(Result.OK, data) def __on_remove( @@ -83,7 +87,12 @@ def __on_remove( cb: NodeCallback, ): """__on_remove""" - print("__on_remove()", "address:", address, "userdata:", userdata, flush=True) + print("__on_remove()", + "address:", + address, + "userdata:", + userdata, + flush=True) cb(Result.UNSUPPORTED, None) def __on_browse( @@ -93,7 +102,12 @@ def __on_browse( cb: NodeCallback, ): """__on_browse""" - print("__on_browse()", "address:", address, "userdata:", userdata, flush=True) + print("__on_browse()", + "address:", + address, + "userdata:", + userdata, + flush=True) with Variant() as new_data: new_data.set_array_string([]) cb(Result.OK, new_data) @@ -153,4 +167,4 @@ def __on_metadata( ): """__on_metadata""" print("__on_metadata()", "address:", address, flush=True) - cb(Result.OK, self._metadata) # Take metadata from metadata.mddb + cb(Result.OK, self._metadata) diff --git a/samples-python/datalayer.provider/main.py b/samples-python/datalayer.provider/main.py index 0c6c073f3..787a8392c 100644 --- a/samples-python/datalayer.provider/main.py +++ b/samples-python/datalayer.provider/main.py @@ -26,12 +26,6 @@ # Binary sampleSchema file bfbs_file = "sampleSchema.bfbs" -# Binary metadata file -mddb_file = "metadata.mddb" - -# addresses of provided values -address_base = "sdk/py/provider/" - __close_app = False @@ -52,15 +46,15 @@ def main(): datalayer_system.start(False) # ip="10.0.2.2", ssl_port=8443: ctrlX COREvirtual with port forwarding and default port mapping - provider, connection_string = get_provider( - datalayer_system, ip="10.0.2.2", ssl_port=8443 - ) + provider, connection_string = get_provider(datalayer_system, + ip="10.0.2.2", + ssl_port=8443) if provider is None: print("ERROR Connecting", connection_string, "failed.", flush=True) sys.exit(1) with ( - provider + provider ): # provider.close() is called automatically when leaving with... block result = provider.start() if result != Result.OK: @@ -76,17 +70,14 @@ def main(): if snap_path is None: # Debug environment bfbs_path = os.path.join("./bfbs/", bfbs_file) - mddb_path = os.path.join("./mddb/", mddb_file) - else: # snap environment bfbs_path = os.path.join(snap_path, bfbs_file) - mddb_path = os.path.join(snap_path, mddb_file) # Register Flatbuffer type - # ATTENTION: Use same type as in csv file - type_sampleSchema_inertialValue = "types/sampleSchema/inertialValue" - result = provider.register_type(type_sampleSchema_inertialValue, bfbs_path) + type_sampleSchema_inertialValue = "types/sdk/py/provider/inertial-value" + result = provider.register_type(type_sampleSchema_inertialValue, + bfbs_path) if result != Result.OK: print( "WARNING Registering", @@ -96,22 +87,21 @@ def main(): flush=True, ) - # Register Metadata Database - result = provider.register_type("datalayer", mddb_path) - if result != Result.OK: - print( - "WARNING Registering", mddb_path, "failed with:", result, flush=True - ) - # Create nodes - provider_node_fbs = provide_fbs(provider, "inertial-value") - provider_node_str = provide_string(provider, "string-value") + provider_node_fbs = provide_fbs(provider, + "sdk/py/provider/inertial-value", + type_sampleSchema_inertialValue) + + provider_node_str = provide_string(provider, + "sdk/py/provider/string-value", + "types/datalayer/string") print("INFO Running endless loop...", flush=True) while provider.is_connected() and not __close_app: time.sleep(1.0) # Seconds - print("ERROR ctrlX Data Layer Provider is disconnected", flush=True) + print("ERROR ctrlX Data Layer Provider is disconnected", + flush=True) provider_node_fbs.unregister_node() del provider_node_fbs @@ -119,7 +109,10 @@ def main(): provider_node_str.unregister_node() del provider_node_str - print("Unregistering", type_sampleSchema_inertialValue, end=" ", flush=True) + print("Unregistering", + type_sampleSchema_inertialValue, + end=" ", + flush=True) result = provider.unregister_type(type_sampleSchema_inertialValue) print(result, flush=True) @@ -132,7 +125,8 @@ def main(): print("System Stop", stop_ok, flush=True) -def provide_fbs(provider: ctrlxdatalayer.provider, name: str): +def provide_fbs(provider: ctrlxdatalayer.provider, nodeAddress: str, + typeAddress: str): """provide_fbs""" # Create `FlatBufferBuilder`instance. Initial Size 1024 bytes (grows automatically if needed) builder = flatbuffers.Builder(1024) @@ -149,41 +143,39 @@ def provide_fbs(provider: ctrlxdatalayer.provider, name: str): variantFlatbuffers = Variant() result = variantFlatbuffers.set_flatbuffers(builder.Output()) if result != ctrlxdatalayer.variant.Result.OK: - print("ERROR creating variant flatbuffers failed with:", result, flush=True) + print("ERROR creating variant flatbuffers failed with:", + result, + flush=True) return # Create and register flatbuffers provider node - print("Creating flatbuffers provider node " + address_base + name, flush=True) - provider_node_fbs = MyProviderNode( - provider, address_base + name, variantFlatbuffers - ) - result = provider_node_fbs.register_node() - if result != ctrlxdatalayer.variant.Result.OK: - print( - "ERROR Registering node " + address_base + name + " failed with:", - result, - flush=True, - ) - - return provider_node_fbs + print("Creating flatbuffers provider node " + nodeAddress, flush=True) + return provide_node(provider, nodeAddress, typeAddress, variantFlatbuffers) -def provide_string(provider: ctrlxdatalayer.provider, name: str): +def provide_string(provider: ctrlxdatalayer.provider, nodeAddress: str, + typeAddress: str): """provide_string""" # Create and register simple string provider node - print("Creating string provider node " + address_base + name, flush=True) + print("Creating string provider node " + nodeAddress, flush=True) variantString = Variant() variantString.set_string("myString") - provider_node_str = MyProviderNode(provider, address_base + name, variantString) - result = provider_node_str.register_node() + return provide_node(provider, nodeAddress, typeAddress, variantString) + + +def provide_node(provider: ctrlxdatalayer.provider, nodeAddress: str, + typeAddress: str, value: Variant): + node = MyProviderNode(provider, nodeAddress, typeAddress, + value) + result = node.register_node() if result != ctrlxdatalayer.variant.Result.OK: print( - "ERROR Registering node " + address_base + name + " failed with:", + "ERROR Registering node " + nodeAddress + " failed with:", result, flush=True, ) - return provider_node_str + return node if __name__ == "__main__": diff --git a/samples-python/datalayer.provider/make-bfbs-mddb.sh b/samples-python/datalayer.provider/make-bfbs-mddb.sh deleted file mode 100644 index 552e7ce70..000000000 --- a/samples-python/datalayer.provider/make-bfbs-mddb.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -# Current directory must by project root directory - - -# Create compiled/sampleSchema.bfbs - -UNAME=$(uname -a) -UDIR=ubuntu22-gcc-x64 -if grep -q "aarch64" <<<${UNAME} -then - UDIR=ubuntu22-gcc-aarch64 -fi - -mkdir -p bfbs -../../bin/oss.flatbuffers/${UDIR}/release/flatc -o bfbs/ -b --schema sampleSchema.fbs - -../../bin/oss.flatbuffers/${UDIR}/release/flatc --python --gen-object-api --gen-mutable sampleSchema.fbs - -# Create compiled/metadata.mddb -mkdir -p mddb -mddb_compiler -in metadata.csv -out ./mddb/metadata.mddb \ No newline at end of file diff --git a/samples-python/datalayer.provider/make-bfbs.sh b/samples-python/datalayer.provider/make-bfbs.sh new file mode 100644 index 000000000..28b322577 --- /dev/null +++ b/samples-python/datalayer.provider/make-bfbs.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# Current directory must by project root directory + + +# Create compiled/sampleSchema.bfbs + +UNAME=$(uname -a) +UDIR=ubuntu22-gcc-x64 +if grep -q "aarch64" <<<${UNAME} +then + UDIR=ubuntu22-gcc-aarch64 +fi + +mkdir -p bfbs +../../bin/oss.flatbuffers/${UDIR}/flatc -o bfbs/ -b --schema sampleSchema.fbs +../../bin/oss.flatbuffers/${UDIR}/flatc --python --gen-object-api --gen-mutable sampleSchema.fbs \ No newline at end of file diff --git a/samples-python/datalayer.provider/mddb/metadata.mddb b/samples-python/datalayer.provider/mddb/metadata.mddb deleted file mode 100644 index 4ecf71e919bad14dd125f151c4abb25f90a42be1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmX|;!A` zn=N&de`n^O+1Y<*LlL24bN({5i`aKu&P0M z)%ZwF2d;%5<9G3uk3g}`Y(B`%JWK6pGP83tsIPsfHC|A6lbYgrIh|S;^=@~%B45!X zdoCS0;l7rC0|YC8tu$a7A8hwv22@)YsD>?izOWsj6A0LK23oIq?NMorO<_{Awr)_( xu$t${&ola;r=C8LL*Ikn;ic6I=%)RS!Ngfp*fB2`IU;^{Ngeugq~j_p@(02mVXy!I diff --git a/samples-python/datalayer.provider/metadata.csv b/samples-python/datalayer.provider/metadata.csv deleted file mode 100644 index 82017dbd3..000000000 --- a/samples-python/datalayer.provider/metadata.csv +++ /dev/null @@ -1,3 +0,0 @@ -address;nodeClass;operations.read;operations.write;operations.create;operations.remove;operations.browse;description;descriptionURL;displayName;displayFormat;unit;references.readType;references.writeType;references.createType;comment -sdk-py-provider/string-value;Variable;true;true;false;false;true;String value;;;;;types/datalayer/string;types/datalayer/string;; -sdk-py-provider/inertial-value;Variable;true;true;false;false;true;Flatbuffer 'Inertial Value';;;;;types/sampleSchema/inertialValue;types/sampleSchema/inertialValue;; \ No newline at end of file diff --git a/samples-python/datalayer.provider/requirements.txt b/samples-python/datalayer.provider/requirements.txt index 8ea419f44..dc5a12c11 100644 --- a/samples-python/datalayer.provider/requirements.txt +++ b/samples-python/datalayer.provider/requirements.txt @@ -1,4 +1,4 @@ autopep8 isort ctrlx-datalayer -ctrlx_fbs \ No newline at end of file +ctrlx-fbs \ No newline at end of file diff --git a/samples-python/datalayer.provider/sample/schema/InertialValue.py b/samples-python/datalayer.provider/sample/schema/InertialValue.py index 9a8908e40..0ed6b055a 100644 --- a/samples-python/datalayer.provider/sample/schema/InertialValue.py +++ b/samples-python/datalayer.provider/sample/schema/InertialValue.py @@ -75,6 +75,11 @@ def InitFromBuf(cls, buf, pos): inertialValue.Init(buf, pos) return cls.InitFromObj(inertialValue) + @classmethod + def InitFromPackedBuf(cls, buf, pos=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos) + return cls.InitFromBuf(buf, pos+n) + @classmethod def InitFromObj(cls, inertialValue): x = InertialValueT() diff --git a/samples-python/datalayer.provider/snap/snapcraft.yaml b/samples-python/datalayer.provider/snap/snapcraft.yaml index 7d82baf49..d6a5d6549 100644 --- a/samples-python/datalayer.provider/snap/snapcraft.yaml +++ b/samples-python/datalayer.provider/snap/snapcraft.yaml @@ -31,10 +31,6 @@ parts: plugin: dump source: ./bfbs - mddb: - plugin: dump - source: ./mddb - plugs: datalayer: interface: content diff --git a/samples-python/logbook/README.md b/samples-python/logbook/README.md index c91ef1390..7607ddcfb 100644 --- a/samples-python/logbook/README.md +++ b/samples-python/logbook/README.md @@ -6,7 +6,8 @@ This python app showes how to log with different log levels into the logbook of ## Function Description -The app writes log messages using the Python package JournaldLogHandler. +The app writes log messages using the Python package [cysystemd](https://github.com/mosquito/cysystemd) version 1.5.4 +and Python version 3.10. ## Implementation Description @@ -14,6 +15,13 @@ __main.py__ just calls the function in logbook/app.py. The methon run() in __logbook/app.py__ sends the messages. +## Hint to Cross Build + +This example is based on python library 'cysystemd'. 'cysystemd' used within 'shared libraries'. +Version 1.5 provides wheel packet for the different architectures (arm64, amd64). +With version 1.6 these shared libraries are created for installation and there are problems with the cross build, +because these are created on the basis of the build system and not on the basis of the target system. + ___ ## License diff --git a/samples-python/logbook/requirements.txt b/samples-python/logbook/requirements.txt index e2d643157..782b0a0d4 100644 --- a/samples-python/logbook/requirements.txt +++ b/samples-python/logbook/requirements.txt @@ -1 +1 @@ -cysystemd \ No newline at end of file +cysystemd==1.5.4 \ No newline at end of file diff --git a/samples-python/logbook/setup.py b/samples-python/logbook/setup.py index bbfc951ce..895a86d38 100644 --- a/samples-python/logbook/setup.py +++ b/samples-python/logbook/setup.py @@ -9,7 +9,7 @@ description = 'Logbook sample written in Python for ctrlX', author = 'SDK Team', packages = ['logbook'], - install_requires=['cysystemd'], +# install_requires=['cysystemd==1.5.4'], scripts = ['main.py'], license = 'MIT License' ) diff --git a/samples-python/logbook/snap/snapcraft.yaml b/samples-python/logbook/snap/snapcraft.yaml index cbbdea350..dc5d3feb3 100644 --- a/samples-python/logbook/snap/snapcraft.yaml +++ b/samples-python/logbook/snap/snapcraft.yaml @@ -23,9 +23,24 @@ parts: logbook: plugin: python source: . + build-environment: + - SNAPCRAFT_PYTHON_INTERPRETER: python3.10 + - GITHUB_CYSYSTEMD: https://github.com/mosquito/cysystemd/releases/download/1.5.4 + - PLATFORM_CYSYSTEMD: manylinux_2_28_x86_64 + - TARGET_PATH: ${SNAPCRAFT_PART_INSTALL}/lib/${SNAPCRAFT_PYTHON_INTERPRETER}/site-packages stage-packages: - libsystemd-dev - + override-build: | + snapcraftctl build + case $SNAPCRAFT_ARCH_TRIPLET in + aarch64-linux-gnu) + export PLATFORM_CYSYSTEMD=manylinux_2_28_aarch64 + ;; + amd64) + ;; + esac + pip3 install --platform=${PLATFORM_CYSYSTEMD} --only-binary=:all: --target ${TARGET_PATH} $GITHUB_CYSYSTEMD/cysystemd-1.5.4-cp310-cp310-${PLATFORM_CYSYSTEMD}.whl + plugs: datalayer: interface: content diff --git a/samples-python/webserver/app/datalayer.py b/samples-python/webserver/app/datalayer.py index 3c701e66a..fd1501477 100644 --- a/samples-python/webserver/app/datalayer.py +++ b/samples-python/webserver/app/datalayer.py @@ -185,10 +185,10 @@ def get_value(self, address): return Result.OK, data.get_string() if variant_type == VariantType.UINT16: - return Result.Ok, data.get_uint16() + return Result.OK, data.get_uint16() if variant_type == VariantType.UINT32: - return Result.Ok, data.get_uint32() + return Result.OK, data.get_uint32() if variant_type == VariantType.UINT64: return Result.OK, data.get_uint64() diff --git a/samples-python/webserver/configs/package-assets/sdk-py-webserver.package-manifest.json b/samples-python/webserver/configs/package-assets/sdk-py-webserver.package-manifest.json index 7e1d27062..e14de02f1 100644 --- a/samples-python/webserver/configs/package-assets/sdk-py-webserver.package-manifest.json +++ b/samples-python/webserver/configs/package-assets/sdk-py-webserver.package-manifest.json @@ -20,15 +20,14 @@ } ] } - ], + ], "services": { "proxyMapping": [ { "name": "sdk-py-webserver", "url": "/python-webserver", "binding": "unix://{$SNAP_DATA}/package-run/sdk-py-webserver/web.sock", - "restricted": [ - ] + "restricted": [] } ] }, @@ -42,8 +41,7 @@ "link": "/python-webserver?token=${bearertoken}" } ], - "settings": [ - ], + "settings": [], "overview": [ { "id": "sdk-py-webserver", @@ -51,6 +49,6 @@ "icon": "bosch-ic-worldwideweb", "link": "/python-webserver?token=${bearertoken}" } - ] + ] } } \ No newline at end of file diff --git a/samples-python/webserver/docs/images/python_webserver.png b/samples-python/webserver/docs/images/python_webserver.png index c11802d16525706936bbc5671025bec06ca1471a..e1a5e3be2a39f0aea7d2a7f763a487047d57667f 100644 GIT binary patch literal 33230 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

F)_xQ0Ex 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 TohKgr!5@n9s&{klJof(|cSJig diff --git a/samples-python/webserver/web/request_handler.py b/samples-python/webserver/web/request_handler.py index 8e39a960a..dadbf553c 100644 --- a/samples-python/webserver/web/request_handler.py +++ b/samples-python/webserver/web/request_handler.py @@ -31,7 +31,7 @@ class RequestHandler(http.server.BaseHTTPRequestHandler): readPath = "datalayer/subscriptions/settings" readValue = "" readResult = "" - writePath = "sdk-py-provider-alldata/dynamic/int64" + writePath = "sdk/py/provider/alldata/dynamic/int64" writeValue = "123456789" writeResult = "" diff --git a/samples-sh/README.md b/samples-sh/README.md deleted file mode 100644 index 2fed5d2d2..000000000 --- a/samples-sh/README.md +++ /dev/null @@ -1,4 +0,0 @@ -## Find out the supported samples - -* [TPM2 Consumer](tpm2.consumer/README.md) How to use the TPM inside your application. -* [ulimit Snap](ulimit-snap/README.md) How to increase the maximal number of opened files. \ No newline at end of file diff --git a/samples-sh/tpm2.consumer/.vscode/tasks.json b/samples-sh/tpm2.consumer/.vscode/tasks.json deleted file mode 100644 index c206002cd..000000000 --- a/samples-sh/tpm2.consumer/.vscode/tasks.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "label": "Snapcraft", - "group": { - "kind": "build", - "isDefault": true - }, - "type": "shell", - "command": "snapcraft --target-arch='${input:arch}';snapcraft clean" - } - ], - "inputs": [ - { - "id": "arch", - "type": "pickString", - "description": "Architecture", - "options": [ - "amd64", - "arm64" - ], - "default": "amd64" - } - ] -} \ No newline at end of file diff --git a/samples-sh/ulimit-snap/snap/snapcraft.yaml b/samples-sh/ulimit-snap/snap/snapcraft.yaml deleted file mode 100644 index 49df0c1c5..000000000 --- a/samples-sh/ulimit-snap/snap/snapcraft.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: ulimit-n-16384 -base: core22 -version: '1.0.0' -summary: Ulimit demo snap -description: | - Increases the maximum number of open files with the command 'ulimit -n 16384' called by a command-chain wrapper. -architectures: - - arm64 - - amd64 - -grade: stable -confinement: strict - -parts: - ulimit-script: - plugin: dump - source: ./ulimit-script - -apps: - ulimit: - daemon: simple - command: increase-ulimit.sh \ No newline at end of file diff --git a/samples-snap/README.md b/samples-snap/README.md index 7b19dbd55..0aa40b5fa 100644 --- a/samples-snap/README.md +++ b/samples-snap/README.md @@ -4,4 +4,6 @@ * [Generate Manifest](generate-manifest/README.md) * [Monitor Health](monitor-health/README.md) -* [Storage extension](storage-extension/README.md) \ No newline at end of file +* [Storage extension](storage-extension/README.md) +* [TPM2](tpm2/README.md) How to use the TPM inside your application. +* [ulimit](ulimit/README.md) How to increase the maximal number of opened files. \ No newline at end of file diff --git a/samples-snap/generate-manifest/.editorconfig b/samples-snap/generate-manifest/.editorconfig new file mode 100644 index 000000000..a9ca04dea --- /dev/null +++ b/samples-snap/generate-manifest/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +insert_final_newline = false +trim_trailing_whitespace = false + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/samples-snap/generate-manifest/.vscode/tasks.json b/samples-snap/generate-manifest/.vscode/tasks.json new file mode 100644 index 000000000..7d98b131d --- /dev/null +++ b/samples-snap/generate-manifest/.vscode/tasks.json @@ -0,0 +1,225 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "npm clean", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "rm -rf node_modules", + "options": { + "cwd": "${workspaceFolder}" + } + }, + { + "label": "npm install", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "npm install", + "options": { + "cwd": "${workspaceFolder}" + }, + "dependsOn": [ + "npm clean" + ] + }, + { + "label": "Build snap amd64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-amd64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build snap arm64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-arm64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Network Adapter", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-NA" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Port Forwarding", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-PF" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE 192.168.1.1", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-addr", + "192.168.1.1" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-build", + "${input:Build}", + "-upload", + "${input:Upload}", + "-logs", + "${input:Logs}", + "-svc", + "${input:Service}", + "-addr", + "${input:IPAddress}", + "-ssl-port", + "${input:SSLPort}", + "-ssl-usr", + "${input:SSLUser}", + "-ssl-pwd", + "${input:SSLPwd}", + "-arch", + "${input:Arch}", + "-ssh-port", + "${input:SSHPort}", + "-ssh-usr", + "${input:SSHUser}", + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + ], + "inputs": [ + { + "id": "Build", + "type": "pickString", + "description": "Build snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "Upload", + "type": "pickString", + "description": "Upload snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "IPAddress", + "type": "promptString", + "description": "IP address", + "default": "192.168.1.1" + }, + { + "id": "SSLPort", + "type": "promptString", + "description": "HTTPS (SSL) port number", + "default": "443" + }, + { + "id": "Service", + "type": "pickString", + "description": "Switch to state SERVICE before installing the snap: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSLUser", + "type": "promptString", + "description": "HTTPS (SSL) user name", + "default": "boschrexroth" + }, + { + "id": "SSLPwd", + "type": "promptString", + "password": true, + "description": "HTTPS (SSL) password", + "default": "boschrexroth" + }, + { + "id": "Arch", + "type": "pickString", + "description": "CPU architecture?", + "options": [ + "arm64", + "amd64" + ], + "default": "arm64" + }, + { + "id": "Logs", + "type": "pickString", + "description": "Show logs - SSH must be enabled on ctrlX: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSHPort", + "type": "promptString", + "description": "SSH port number", + "default": "22" + }, + { + "id": "SSHUser", + "type": "promptString", + "description": "SSH user name", + "default": "rexroot" + } + ] +} \ No newline at end of file diff --git a/samples-snap/generate-manifest/snap/snapcraft.yaml b/samples-snap/generate-manifest/snap/snapcraft.yaml index dad17969c..d0fef959f 100644 --- a/samples-snap/generate-manifest/snap/snapcraft.yaml +++ b/samples-snap/generate-manifest/snap/snapcraft.yaml @@ -1,9 +1,10 @@ -name: changing-world +name: sdk-generate-manifest +title: SDK Generate Manifest base: core22 -version: '1.0.0' -summary: Simple snap with random menu entry +version: 1.0.0 +summary: Simple snap with random menu entry. description: | - This is a sample snap that generates a random menu entry when getting installed or updated + This is a sample snap that generates a random menu entry when getting installed or updated. grade: stable confinement: strict diff --git a/samples-snap/monitor-health/.vscode/tasks.json b/samples-snap/monitor-health/.vscode/tasks.json new file mode 100644 index 000000000..7d98b131d --- /dev/null +++ b/samples-snap/monitor-health/.vscode/tasks.json @@ -0,0 +1,225 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "npm clean", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "rm -rf node_modules", + "options": { + "cwd": "${workspaceFolder}" + } + }, + { + "label": "npm install", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "npm install", + "options": { + "cwd": "${workspaceFolder}" + }, + "dependsOn": [ + "npm clean" + ] + }, + { + "label": "Build snap amd64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-amd64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build snap arm64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-arm64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Network Adapter", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-NA" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Port Forwarding", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-PF" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE 192.168.1.1", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-addr", + "192.168.1.1" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-build", + "${input:Build}", + "-upload", + "${input:Upload}", + "-logs", + "${input:Logs}", + "-svc", + "${input:Service}", + "-addr", + "${input:IPAddress}", + "-ssl-port", + "${input:SSLPort}", + "-ssl-usr", + "${input:SSLUser}", + "-ssl-pwd", + "${input:SSLPwd}", + "-arch", + "${input:Arch}", + "-ssh-port", + "${input:SSHPort}", + "-ssh-usr", + "${input:SSHUser}", + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + ], + "inputs": [ + { + "id": "Build", + "type": "pickString", + "description": "Build snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "Upload", + "type": "pickString", + "description": "Upload snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "IPAddress", + "type": "promptString", + "description": "IP address", + "default": "192.168.1.1" + }, + { + "id": "SSLPort", + "type": "promptString", + "description": "HTTPS (SSL) port number", + "default": "443" + }, + { + "id": "Service", + "type": "pickString", + "description": "Switch to state SERVICE before installing the snap: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSLUser", + "type": "promptString", + "description": "HTTPS (SSL) user name", + "default": "boschrexroth" + }, + { + "id": "SSLPwd", + "type": "promptString", + "password": true, + "description": "HTTPS (SSL) password", + "default": "boschrexroth" + }, + { + "id": "Arch", + "type": "pickString", + "description": "CPU architecture?", + "options": [ + "arm64", + "amd64" + ], + "default": "arm64" + }, + { + "id": "Logs", + "type": "pickString", + "description": "Show logs - SSH must be enabled on ctrlX: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSHPort", + "type": "promptString", + "description": "SSH port number", + "default": "22" + }, + { + "id": "SSHUser", + "type": "promptString", + "description": "SSH user name", + "default": "rexroot" + } + ] +} \ No newline at end of file diff --git a/samples-snap/monitor-health/snap/snapcraft.yaml b/samples-snap/monitor-health/snap/snapcraft.yaml index 7ef5d77fc..02441367c 100644 --- a/samples-snap/monitor-health/snap/snapcraft.yaml +++ b/samples-snap/monitor-health/snap/snapcraft.yaml @@ -2,9 +2,10 @@ # See https://snapcraft.io/docs/getting-started # Snapcraft references # See https://snapcraft.io/docs/snapcraft-yaml-reference -version: '1.0.0' -name: ctrlx-monitor-health -summary: App health monitoring demo app +version: 1.0.0 +name: sdk-monitor-health +title: SDK Monitor Health +summary: App health monitoring demo app for ctrlX CORE. description: | This app demonstrates how you can add health monitoring capability to your app. confinement: strict diff --git a/samples-snap/storage-extension/.editorconfig b/samples-snap/storage-extension/.editorconfig new file mode 100644 index 000000000..a9ca04dea --- /dev/null +++ b/samples-snap/storage-extension/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +insert_final_newline = false +trim_trailing_whitespace = false + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/samples-snap/storage-extension/.vscode/tasks.json b/samples-snap/storage-extension/.vscode/tasks.json new file mode 100644 index 000000000..7d98b131d --- /dev/null +++ b/samples-snap/storage-extension/.vscode/tasks.json @@ -0,0 +1,225 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "npm clean", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "rm -rf node_modules", + "options": { + "cwd": "${workspaceFolder}" + } + }, + { + "label": "npm install", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "npm install", + "options": { + "cwd": "${workspaceFolder}" + }, + "dependsOn": [ + "npm clean" + ] + }, + { + "label": "Build snap amd64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-amd64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build snap arm64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-arm64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Network Adapter", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-NA" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Port Forwarding", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-PF" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE 192.168.1.1", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-addr", + "192.168.1.1" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-build", + "${input:Build}", + "-upload", + "${input:Upload}", + "-logs", + "${input:Logs}", + "-svc", + "${input:Service}", + "-addr", + "${input:IPAddress}", + "-ssl-port", + "${input:SSLPort}", + "-ssl-usr", + "${input:SSLUser}", + "-ssl-pwd", + "${input:SSLPwd}", + "-arch", + "${input:Arch}", + "-ssh-port", + "${input:SSHPort}", + "-ssh-usr", + "${input:SSHUser}", + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + ], + "inputs": [ + { + "id": "Build", + "type": "pickString", + "description": "Build snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "Upload", + "type": "pickString", + "description": "Upload snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "IPAddress", + "type": "promptString", + "description": "IP address", + "default": "192.168.1.1" + }, + { + "id": "SSLPort", + "type": "promptString", + "description": "HTTPS (SSL) port number", + "default": "443" + }, + { + "id": "Service", + "type": "pickString", + "description": "Switch to state SERVICE before installing the snap: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSLUser", + "type": "promptString", + "description": "HTTPS (SSL) user name", + "default": "boschrexroth" + }, + { + "id": "SSLPwd", + "type": "promptString", + "password": true, + "description": "HTTPS (SSL) password", + "default": "boschrexroth" + }, + { + "id": "Arch", + "type": "pickString", + "description": "CPU architecture?", + "options": [ + "arm64", + "amd64" + ], + "default": "arm64" + }, + { + "id": "Logs", + "type": "pickString", + "description": "Show logs - SSH must be enabled on ctrlX: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSHPort", + "type": "promptString", + "description": "SSH port number", + "default": "22" + }, + { + "id": "SSHUser", + "type": "promptString", + "description": "SSH user name", + "default": "rexroot" + } + ] +} \ No newline at end of file diff --git a/samples-snap/storage-extension/build-snap-amd64.sh b/samples-snap/storage-extension/build-snap-amd64.sh new file mode 100644 index 000000000..92f432dad --- /dev/null +++ b/samples-snap/storage-extension/build-snap-amd64.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e +snapcraft clean --destructive-mode +snapcraft --destructive-mode --target-arch=amd64 --enable-experimental-target-arch \ No newline at end of file diff --git a/samples-snap/storage-extension/build-snap-arm64.sh b/samples-snap/storage-extension/build-snap-arm64.sh new file mode 100644 index 000000000..8cd17b41a --- /dev/null +++ b/samples-snap/storage-extension/build-snap-arm64.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e +snapcraft clean --destructive-mode +snapcraft --destructive-mode --target-arch=arm64 --enable-experimental-target-arch \ No newline at end of file diff --git a/samples-snap/storage-extension/snap/snapcraft.yaml b/samples-snap/storage-extension/snap/snapcraft.yaml index 9527f1620..e23656ec7 100644 --- a/samples-snap/storage-extension/snap/snapcraft.yaml +++ b/samples-snap/storage-extension/snap/snapcraft.yaml @@ -1,10 +1,10 @@ -name: storage-extension-sample -title: Storage extenstion sample app +name: sdk-storage-extension-sample +title: SDK Storage extension sample base: core22 -version: 0.0.1 -summary: Storage extension sample +version: 1.0.0 +summary: Storage extension sample for ctrlX CORE. description: | - Storage extension sample + This app demonstrates how you can use the storage extension. grade: stable # must be 'stable' to release into candidate/stable channels confinement: strict # use 'strict' once you have the right plugs and slots architectures: diff --git a/samples-snap/tpm2-webserver/.editorconfig b/samples-snap/tpm2-webserver/.editorconfig new file mode 100644 index 000000000..a9ca04dea --- /dev/null +++ b/samples-snap/tpm2-webserver/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +insert_final_newline = false +trim_trailing_whitespace = false + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/samples-snap/tpm2-webserver/.vscode/tasks.json b/samples-snap/tpm2-webserver/.vscode/tasks.json new file mode 100644 index 000000000..9bc4558f8 --- /dev/null +++ b/samples-snap/tpm2-webserver/.vscode/tasks.json @@ -0,0 +1,225 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "npm clean", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "rm -rf node_modules", + "options": { + "cwd": "${workspaceFolder}" + } + }, + { + "label": "npm install", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "npm install", + "options": { + "cwd": "${workspaceFolder}" + }, + "dependsOn": [ + "npm clean" + ] + }, + { + "label": "Build snap amd64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-amd64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build snap arm64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-arm64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Network Adapter", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-NA" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Port Forwarding", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-PF" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE 192.168.1.1", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-addr", + "192.168.1.1" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-build", + "${input:Build}", + "-upload", + "${input:Upload}", + "-logs", + "${input:Logs}", + "-svc", + "${input:Service}", + "-addr", + "${input:IPAddress}", + "-ssl-port", + "${input:SSLPort}", + "-ssl-usr", + "${input:SSLUser}", + "-ssl-pwd", + "${input:SSLPwd}", + "-arch", + "${input:Arch}", + "-ssh-port", + "${input:SSHPort}", + "-ssh-usr", + "${input:SSHUser}", + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + ], + "inputs": [ + { + "id": "Build", + "type": "pickString", + "description": "Build snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "Upload", + "type": "pickString", + "description": "Upload snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "IPAddress", + "type": "promptString", + "description": "IP address", + "default": "192.168.1.1" + }, + { + "id": "SSLPort", + "type": "promptString", + "description": "HTTPS (SSL) port number", + "default": "443" + }, + { + "id": "Service", + "type": "pickString", + "description": "Switch to state SERVICE before installing the snap: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSLUser", + "type": "promptString", + "description": "HTTPS (SSL) user name", + "default": "boschrexroth" + }, + { + "id": "SSLPwd", + "type": "promptString", + "password": true, + "description": "HTTPS (SSL) password", + "default": "boschrexroth" + }, + { + "id": "Arch", + "type": "pickString", + "description": "CPU architecture?", + "options": [ + "arm64", + "amd64" + ], + "default": "arm64" + }, + { + "id": "Logs", + "type": "pickString", + "description": "Show logs - SSH must be enabled on ctrlX: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSHPort", + "type": "promptString", + "description": "SSH port number", + "default": "22" + }, + { + "id": "SSHUser", + "type": "promptString", + "description": "SSH user name", + "default": "rexroot" + } + ] + } \ No newline at end of file diff --git a/samples-sh/tpm2.consumer/README.md b/samples-snap/tpm2-webserver/README.md similarity index 94% rename from samples-sh/tpm2.consumer/README.md rename to samples-snap/tpm2-webserver/README.md index df7e52b0a..355819ec1 100644 --- a/samples-sh/tpm2.consumer/README.md +++ b/samples-snap/tpm2-webserver/README.md @@ -1,51 +1,51 @@ -# README tpm2.consumer - -The sample app __tpm2.consumer__ shows the basic usage of a TPM2 inside your application. - -Also see [TPM2](../../tpm2.md). - -## Introduction - -It demonstrates how you can use the TPM2.0 of the ctrlX CORE or the emulated TPM2.0 on the ctrlX COREvirtual. - -* Build the TPM2 Trusted Software Stack (TSS) including OpenSSL engine. -* Integrate your application into key and certificate management of the ctrlX CORE. -* Convert the TPM2 Key to a keyform usable with OpenSSL -* Use the TPM2 TSS OpenSSL engine with an example webserver - -## Pre-requisites - -* Recommended: ctrlX WORKS App Build Environment (QEMU Virtual Machine) - see Setup -* ctrlX AUTOMATION SDK Version 1. -* ctrlX COREvirtual or ctrlX CORE - -## Getting Started - -1. Launch Visual Studio Code -2. Open the sample directory `samples-sh/tpm2.consumer` -3. Build and install the snap as described in `Setup` section -4. Go to the webinterface -> Settings -> Certificate & Keys -> TPM2 Webserver -5. Create a key named "webserver" as RSA 2048 and "HSM protected" -6. Create a certificate signing request (CSR), download -7. Create a certificate (webserver.crt) with help of the CSR on your PC or CA - -```bash -# For example, create yourself a CA -mkdir ca -openssl genrsa -out ca/ca.key 2048 -openssl req -new -x509 -days 10000 -key ca/ca.key -out ca/ca.crt -openssl x509 -req -days 360 -in webserver_csr.pem -CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial -out webserver.crt -sha256 -``` -8. Upload the certificate webserver.crt the TPM2 Webserver application -9. Open webserver on Port 44330 of the ctrlX CORE or ctrlX COREvirtual (adapt port settings accordingly). - -## Support - -If you've any questions visit the [ctrlX AUTOMATION Community](https://developer.community.boschrexroth.com/) - -___ - -## License - -SPDX-FileCopyrightText: Bosch Rexroth AG -SPDX-License-Identifier: MIT +# README tpm2.consumer + +The sample app __tpm2.consumer__ shows the basic usage of a TPM2 inside your application. + +Also see [TPM2](../../tpm2.md). + +## Introduction + +It demonstrates how you can use the TPM2.0 of the ctrlX CORE or the emulated TPM2.0 on the ctrlX COREvirtual. + +* Build the TPM2 Trusted Software Stack (TSS) including OpenSSL engine. +* Integrate your application into key and certificate management of the ctrlX CORE. +* Convert the TPM2 Key to a keyform usable with OpenSSL +* Use the TPM2 TSS OpenSSL engine with an example webserver + +## Pre-requisites + +* Recommended: ctrlX WORKS App Build Environment (QEMU Virtual Machine) - see Setup +* ctrlX AUTOMATION SDK Version 1. +* ctrlX COREvirtual or ctrlX CORE + +## Getting Started + +1. Launch Visual Studio Code +2. Open the sample directory `samples-snap/tpm2-webserver` +3. Build and install the snap as described in `Setup` section +4. Go to the webinterface -> Settings -> Certificate & Keys -> TPM2 Webserver +5. Create a key named "webserver" as RSA 2048 and "HSM protected" +6. Create a certificate signing request (CSR), download +7. Create a certificate (webserver.crt) with help of the CSR on your PC or CA + +```bash +# For example, create yourself a CA +mkdir ca +openssl genrsa -out ca/ca.key 2048 +openssl req -new -x509 -days 10000 -key ca/ca.key -out ca/ca.crt +openssl x509 -req -days 360 -in webserver_csr.pem -CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial -out webserver.crt -sha256 +``` +8. Upload the certificate webserver.crt the TPM2 Webserver application +9. Open webserver on Port 44330 of the ctrlX CORE or ctrlX COREvirtual (adapt port settings accordingly). + +## Support + +If you've any questions visit the [ctrlX AUTOMATION Community](https://developer.community.boschrexroth.com/) + +___ + +## License + +SPDX-FileCopyrightText: Bosch Rexroth AG +SPDX-License-Identifier: MIT diff --git a/samples-snap/tpm2-webserver/build-snap-amd64.sh b/samples-snap/tpm2-webserver/build-snap-amd64.sh new file mode 100644 index 000000000..92f432dad --- /dev/null +++ b/samples-snap/tpm2-webserver/build-snap-amd64.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e +snapcraft clean --destructive-mode +snapcraft --destructive-mode --target-arch=amd64 --enable-experimental-target-arch \ No newline at end of file diff --git a/samples-snap/tpm2-webserver/build-snap-arm64.sh b/samples-snap/tpm2-webserver/build-snap-arm64.sh new file mode 100644 index 000000000..8cd17b41a --- /dev/null +++ b/samples-snap/tpm2-webserver/build-snap-arm64.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e +snapcraft clean --destructive-mode +snapcraft --destructive-mode --target-arch=arm64 --enable-experimental-target-arch \ No newline at end of file diff --git a/samples-sh/tpm2.consumer/configs/package-assets/rexroth-tpm2-webserver.package-manifest.json b/samples-snap/tpm2-webserver/configs/package-assets/tpm2-webserver.package-manifest.json similarity index 66% rename from samples-sh/tpm2.consumer/configs/package-assets/rexroth-tpm2-webserver.package-manifest.json rename to samples-snap/tpm2-webserver/configs/package-assets/tpm2-webserver.package-manifest.json index 9e4132912..9149db1ed 100644 --- a/samples-sh/tpm2.consumer/configs/package-assets/rexroth-tpm2-webserver.package-manifest.json +++ b/samples-snap/tpm2-webserver/configs/package-assets/tpm2-webserver.package-manifest.json @@ -1,8 +1,8 @@ { - "id": "rexroth-tpm2-webserver", + "id": "tpm2-webserver", "certificatestores": [ { - "id": "rexroth-tpm2-webserver", + "id": "tpm2-webserver", "title": "TPM2 Webserver", "description": "Testing some TPM functions by a webserver" } diff --git a/samples-sh/tpm2.consumer/snap/snapcraft.yaml b/samples-snap/tpm2-webserver/snap/snapcraft.yaml similarity index 94% rename from samples-sh/tpm2.consumer/snap/snapcraft.yaml rename to samples-snap/tpm2-webserver/snap/snapcraft.yaml index 8e5166386..082702781 100644 --- a/samples-sh/tpm2.consumer/snap/snapcraft.yaml +++ b/samples-snap/tpm2-webserver/snap/snapcraft.yaml @@ -1,9 +1,10 @@ -name: rexroth-tpm2-webserver +name: sdk-tpm2-webserver +title: SDK TPM2 Webserver base: core22 -version: '0.0.1' -summary: A snap containing a tpm2 based openssl server +version: 1.0.0 +summary: A snap containing a tpm2 based openssl server for ctrlX CORE. description: | - Providing an example for TPM2 usage. + This app demonstrates how you can access the TPM2. grade: devel confinement: strict @@ -148,7 +149,7 @@ parts: tpm2-webserver.sh: usr/bin/tpm2-webserver.sh apps: - rexroth-tpm2-webserver: + tpm2-webserver: command: usr/bin/tpm2-webserver.sh daemon: simple restart-condition: always diff --git a/samples-sh/tpm2.consumer/webserver/tpm2-webserver.sh b/samples-snap/tpm2-webserver/webserver/tpm2-webserver.sh similarity index 90% rename from samples-sh/tpm2.consumer/webserver/tpm2-webserver.sh rename to samples-snap/tpm2-webserver/webserver/tpm2-webserver.sh index d3fa45d32..65ee9fd8c 100644 --- a/samples-sh/tpm2.consumer/webserver/tpm2-webserver.sh +++ b/samples-snap/tpm2-webserver/webserver/tpm2-webserver.sh @@ -2,7 +2,7 @@ . $SNAP_DATA/system-configuration/certificate-manager/tpm2/envvars -CERTSTORE=$SNAP_COMMON/package-certificates/rexroth-tpm2-webserver/rexroth-tpm2-webserver +CERTSTORE=$SNAP_COMMON/package-certificates/tpm2-webserver/tpm2-webserver mkdir -p $CERTSTORE/ca/ mkdir -p $CERTSTORE/own/private/ diff --git a/samples-snap/ulimit/.editorconfig b/samples-snap/ulimit/.editorconfig new file mode 100644 index 000000000..a9ca04dea --- /dev/null +++ b/samples-snap/ulimit/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +insert_final_newline = false +trim_trailing_whitespace = false + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/samples-sh/ulimit-snap/.gitignore b/samples-snap/ulimit/.gitignore similarity index 100% rename from samples-sh/ulimit-snap/.gitignore rename to samples-snap/ulimit/.gitignore diff --git a/samples-snap/ulimit/.vscode/tasks.json b/samples-snap/ulimit/.vscode/tasks.json new file mode 100644 index 000000000..7d98b131d --- /dev/null +++ b/samples-snap/ulimit/.vscode/tasks.json @@ -0,0 +1,225 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "npm clean", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "rm -rf node_modules", + "options": { + "cwd": "${workspaceFolder}" + } + }, + { + "label": "npm install", + "group": { + "kind": "build", + "isDefault": true + }, + "type": "shell", + "problemMatcher": [], + "command": "npm install", + "options": { + "cwd": "${workspaceFolder}" + }, + "dependsOn": [ + "npm clean" + ] + }, + { + "label": "Build snap amd64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-amd64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build snap arm64", + "type": "shell", + "command": "bash", + "args": [ + "build-snap-arm64.sh" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Network Adapter", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-NA" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX COREvirtual Port Forwarding", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-ctrlx-virt-PF" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE 192.168.1.1", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-addr", + "192.168.1.1" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build upload snap - ctrlX CORE", + "type": "shell", + "command": "../../scripts/build-upload-log-snap.sh", + "args": [ + "-build", + "${input:Build}", + "-upload", + "${input:Upload}", + "-logs", + "${input:Logs}", + "-svc", + "${input:Service}", + "-addr", + "${input:IPAddress}", + "-ssl-port", + "${input:SSLPort}", + "-ssl-usr", + "${input:SSLUser}", + "-ssl-pwd", + "${input:SSLPwd}", + "-arch", + "${input:Arch}", + "-ssh-port", + "${input:SSHPort}", + "-ssh-usr", + "${input:SSHUser}", + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + ], + "inputs": [ + { + "id": "Build", + "type": "pickString", + "description": "Build snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "Upload", + "type": "pickString", + "description": "Upload snap?", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "IPAddress", + "type": "promptString", + "description": "IP address", + "default": "192.168.1.1" + }, + { + "id": "SSLPort", + "type": "promptString", + "description": "HTTPS (SSL) port number", + "default": "443" + }, + { + "id": "Service", + "type": "pickString", + "description": "Switch to state SERVICE before installing the snap: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSLUser", + "type": "promptString", + "description": "HTTPS (SSL) user name", + "default": "boschrexroth" + }, + { + "id": "SSLPwd", + "type": "promptString", + "password": true, + "description": "HTTPS (SSL) password", + "default": "boschrexroth" + }, + { + "id": "Arch", + "type": "pickString", + "description": "CPU architecture?", + "options": [ + "arm64", + "amd64" + ], + "default": "arm64" + }, + { + "id": "Logs", + "type": "pickString", + "description": "Show logs - SSH must be enabled on ctrlX: y/n", + "options": [ + "y", + "n" + ], + "default": "y" + }, + { + "id": "SSHPort", + "type": "promptString", + "description": "SSH port number", + "default": "22" + }, + { + "id": "SSHUser", + "type": "promptString", + "description": "SSH user name", + "default": "rexroot" + } + ] +} \ No newline at end of file diff --git a/samples-sh/ulimit-snap/README.md b/samples-snap/ulimit/README.md similarity index 100% rename from samples-sh/ulimit-snap/README.md rename to samples-snap/ulimit/README.md diff --git a/samples-snap/ulimit/build-snap-amd64.sh b/samples-snap/ulimit/build-snap-amd64.sh new file mode 100644 index 000000000..92f432dad --- /dev/null +++ b/samples-snap/ulimit/build-snap-amd64.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e +snapcraft clean --destructive-mode +snapcraft --destructive-mode --target-arch=amd64 --enable-experimental-target-arch \ No newline at end of file diff --git a/samples-snap/ulimit/build-snap-arm64.sh b/samples-snap/ulimit/build-snap-arm64.sh new file mode 100644 index 000000000..8cd17b41a --- /dev/null +++ b/samples-snap/ulimit/build-snap-arm64.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e +snapcraft clean --destructive-mode +snapcraft --destructive-mode --target-arch=arm64 --enable-experimental-target-arch \ No newline at end of file diff --git a/samples-snap/ulimit/build-snap.sh b/samples-snap/ulimit/build-snap.sh new file mode 100644 index 000000000..a9d4aec2b --- /dev/null +++ b/samples-snap/ulimit/build-snap.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e +snapcraft clean --destructive-mode +snapcraft --destructive-mode --target-arch=arm64 --enable-experimental-target-arch diff --git a/samples-snap/ulimit/snap/snapcraft.yaml b/samples-snap/ulimit/snap/snapcraft.yaml new file mode 100644 index 000000000..0d980b10d --- /dev/null +++ b/samples-snap/ulimit/snap/snapcraft.yaml @@ -0,0 +1,23 @@ +name: sdk-ulimit-n-16384 +title: SDK Ulimit +base: core22 +version: 1.0.0 +summary: Ulimit demo snap for ctrlX CORE. +description: | + This app demonstrates how you can increase the maximum number of open files with the command 'ulimit -n 16384' called by a command-chain wrapper. +architectures: + - arm64 + - amd64 + +grade: stable +confinement: strict + +parts: + ulimit-script: + plugin: dump + source: ./ulimit-script + +apps: + ulimit: + daemon: simple + command: increase-ulimit.sh \ No newline at end of file diff --git a/samples-sh/ulimit-snap/ulimit-script/increase-ulimit.sh b/samples-snap/ulimit/ulimit-script/increase-ulimit.sh similarity index 100% rename from samples-sh/ulimit-snap/ulimit-script/increase-ulimit.sh rename to samples-snap/ulimit/ulimit-script/increase-ulimit.sh diff --git a/samples.md b/samples.md index 47a5a7682..bc2ec8e9f 100644 --- a/samples.md +++ b/samples.md @@ -17,9 +17,7 @@ Here an overview of the sample project types and their subfolders. | __Go__ | [samples-go/README.md](samples-go/README.md) | ~/scripts/install-go.sh | __Python__ | [samples-python/README.md](samples-python/README.md) | | __.NET__ | [samples-net/README.md](samples-net/README.md) | ~/scripts/install-dotnet-sdk.sh -| __ANGULAR__ | [samples-angular/README.md](samples-angular/README.md) | -| __Node.js__ | [samples-node/README.md](samples-node/README.md) | ~/scripts/install-nodejs-npm.sh -| __Shell scripting__ | [samples-sh/README.md](samples-sh/README.md) | +| __Node.js__ | [samples-node/README.md](samples-node/README.md) | ~/scripts/install-nodejs-npm.sh | | __Snap__ | [samples-snap/README.md](samples-snap/README.md) | | __IEC 61131-3__ | [samples-iec61131/README.md](samples-iec61131/README.md)| diff --git a/scripts/README.md b/scripts/README.md index 65f486743..c7e0cd392 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -1,19 +1,21 @@ # Sub folder 'scripts' -This folder contains several helper scripts to install the ctrlX AUTOMATION SDK, programming language dependend packages and to build sample projects. +This folder contains several helper scripts to install the ctrlX AUTOMATION SDK, required Debian packages and to build sample projects. + +## Installation of Required Packages + +* __install-required-packages.sh__ installs required packages to develop apps with the ctrlX AUTOMATION SDK +* __install-snapcraft.sh__ installs snapcraft to build snaps ## SDK Installation Script Files * __clone-install-sdk.sh__ clones the ctrlX AUTOMATION SDK git repository from github, downloads the according zip archiv and installs the required files into the cloned github repository. -* __install-snapcraft.sh__ installs snapcraft to build snaps - ## Installation Scripts for Programming Languages * __install-go.sh__ downloads and installs required packages to develop snaps with go * __install-dotnet-sdk.sh__ downloads and installs required packages to develop snaps with dotnet * __install-nodejs-npm.sh__ downloads and installs required packages to develop snaps with Node.js -* __install-cpp-aarch64-libs.sh__ downloads and installs required aarch64 libraries for cross build - __for C++ projects only.__ ## ctrlX OS Development Tools diff --git a/scripts/build_flatbuffers.bat b/scripts/build_flatbuffers.bat deleted file mode 100644 index 0e3a138c2..000000000 --- a/scripts/build_flatbuffers.bat +++ /dev/null @@ -1,14 +0,0 @@ -@echo off -set scriptdir=%~dp0 -set flatc=%scriptdir%..\bin\oss.flatbuffers\win-msvc-x64\release\flatc.exe -set lang=%1 -set fbs=%~f2 -set out=%~dp2 - -echo flatc: %flatc% -echo fbs: %fbs% -echo out: %out% -echo lang: %lang% - - -%flatc% -b --schema --%lang% -o %out% %fbs% \ No newline at end of file diff --git a/scripts/build_flatbuffers.sh b/scripts/build_flatbuffers.sh deleted file mode 100644 index 22a54e927..000000000 --- a/scripts/build_flatbuffers.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -flatc=$(dirname $0)/../bin/oss.flatbuffers/ubuntu22-gcc-x64/release/flatc -# flatc=$0/../bin/oss.flatbuffers/win-msvc-x64/release/flatc.exe -lang=$1 -fbs=$2 -out=$(dirname $2) -echo flatc: $flatc -echo fbs: $fbs -echo out: $out -echo lang: $lang -$flatc -b --schema --$lang -o $out $fbs \ No newline at end of file diff --git a/scripts/clone-install-sdk.sh b/scripts/clone-install-sdk.sh index 1bc562877..a3a95a2ca 100644 --- a/scripts/clone-install-sdk.sh +++ b/scripts/clone-install-sdk.sh @@ -133,32 +133,3 @@ sudo apt-get update # Install newest ctrlx-datalayer package sudo apt-get install -y ctrlx-datalayer -cd "${SDK_DIR}"/scripts || exit - -echo "" -echo $SEPARATION_LINE_1 -echo "Installing aarch64 libs required for C++ cross compiling ..." -echo $SEPARATION_LINE_2 - -INSTALL_AARCH64LIBS_SCRIPT=$(find . -name 'install-cpp-aarch64-libs.sh') -if [ -n "$INSTALL_AARCH64LIBS_SCRIPT" ]; then - source "$INSTALL_AARCH64LIBS_SCRIPT" -else - sudo apt-get -y install libsystemd-dev:arm64 - sudo apt-get -y install libssl-dev:arm64 - sudo apt-get -y install libzmq3-dev:arm64 - sudo apt-get -y install libzip-dev:arm64 - sudo apt-get -y install uuid-dev:arm64 - sudo apt-get -y install libssl-dev:arm64 - sudo apt-get -y install libcurl4-openssl-dev:arm64 - sudo apt-get -y install libjansson-dev:arm64 - sudo apt-get -y install libffi-dev:arm64 -fi - -INSTALL_SNAPCRAFT_SCRIPT=$(find . -name 'install-snapcraft.sh') -if [ -n "$INSTALL_SNAPCRAFT_SCRIPT" ]; then - source "$INSTALL_SNAPCRAFT_SCRIPT" -else - echo "WARNING snapcraft could not be installed!" - echo "INFO Search install-snapcraft.sh and start manually." -fi diff --git a/scripts/install-cpp-aarch64-libs.sh b/scripts/install-cpp-aarch64-libs.sh deleted file mode 100644 index a8b405c93..000000000 --- a/scripts/install-cpp-aarch64-libs.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -# AMD64 only: If not installed the required arm64 libraries are installed. - -ARCH=$(uname -m) -if grep -q "aarch64" <<<${ARCH} -then - return -fi - -sudo apt-get -y update - -sudo apt-get -y install libsystemd-dev:arm64 -sudo apt-get -y install libssl-dev:arm64 -sudo apt-get -y install libzmq3-dev:arm64 -sudo apt-get -y install libzip-dev:arm64 -sudo apt-get -y install uuid-dev:arm64 -sudo apt-get -y install libssl-dev:arm64 -sudo apt-get -y install libcurl4-openssl-dev:arm64 -sudo apt-get -y install libjansson-dev:arm64 -sudo apt-get -y install libffi-dev:arm64 \ No newline at end of file diff --git a/scripts/install-ctrlx-os-dev-tools.sh b/scripts/install-ctrlx-os-dev-tools.sh index 38df94886..c172c2854 100644 --- a/scripts/install-ctrlx-os-dev-tools.sh +++ b/scripts/install-ctrlx-os-dev-tools.sh @@ -17,3 +17,16 @@ echo "============================================" echo " " sudo snap install ubuntu-image --classic + +echo " " +echo "============================================" +echo Installing required debian packages +echo "============================================" +echo " " + +sudo apt-get install -y ncurses-dev +sudo apt-get install -y flex +sudo apt-get install -y bison + + + diff --git a/scripts/install-dotnet-sdk.sh b/scripts/install-dotnet-sdk.sh index e8295a145..882da6a5f 100644 --- a/scripts/install-dotnet-sdk.sh +++ b/scripts/install-dotnet-sdk.sh @@ -6,18 +6,16 @@ echo Installing dotnet-sdk echo "============================================" echo " " -# Remove these packages -sudo apt remove -y 'dotnet*' 'aspnet*' 'netstandard*' -# Remove sources list -sudo rm /etc/apt/sources.list.d/microsoft-prod.list 2>/dev/null - +# Install Microsoft Package source +sudo wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb +sudo dpkg -i packages-microsoft-prod.deb +sudo rm packages-microsoft-prod.deb # Install Debian Package -sudo apt update -sudo apt install -y dotnet-sdk-6.0 +sudo GNUTLS_CPUID_OVERRIDE=0x1 apt update +sudo GNUTLS_CPUID_OVERRIDE=0x1 apt install -y dotnet-sdk-8.0 # Test installation dotnet --version - source ~/scripts/install-snapcraft.sh \ No newline at end of file diff --git a/scripts/install-required-packages.sh b/scripts/install-required-packages.sh new file mode 100644 index 000000000..a1d4cd9f4 --- /dev/null +++ b/scripts/install-required-packages.sh @@ -0,0 +1,80 @@ +#!/usr/bin/env bash + +# +# This script installs debian packages required to build apps +# with the ctrlX AUTOMATION SDK. +# +# https://wiki.ubuntu.com/MultiarchSpec + +sudo dpkg --add-architecture arm64 + +DIST="$(lsb_release -sc)" +sudo echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ ${DIST} main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/multiarch-libs.list +sudo echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ ${DIST}-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/multiarch-libs.list +sudo echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ ${DIST}-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/multiarch-libs.list +sudo echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ ${DIST}-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/multiarch-libs.list + +# Qualify architecture +sudo sed -i 's/deb http:/deb [arch=amd64] http:/g' /etc/apt/sources.list + +# Environment variable to enable/disable the use of certain CPU capabilities. +# 0x1: Disable all run-time detected optimizations +# see https://gnutls.org/manual/html_node/Debugging-and-auditing.html +# Fixes issue: "Method https has died unexpectedly! Sub-process https received signal 4" +# see https://askubuntu.com/questions/1420966/method-https-has-died-unexpectedly-sub-process-https-received-signal-4-after +export GNUTLS_CPUID_OVERRIDE=0x1 + +# Prevent prompt that ask to restart services +export DEBIAN_FRONTEND=noninteractive + +sudo -E apt update +sudo -E apt upgrade + +# install base packages ... +sudo -E apt install -y \ + zip \ + unzip \ + p7zip-full \ + git \ + apt-transport-https \ + whois \ + net-tools \ + pkg-config \ + jq \ + sshpass \ + dpkg-dev + +# install python tools ... +sudo -E apt install -y \ + python3-pip \ + virtualenv + +# install amd64 build tools ... +sudo -E apt install -y \ + build-essential \ + gdb \ + cmake + +# install arm64 cross build tools ... +sudo -E apt install -y \ + crossbuild-essential-arm64 \ + gdb-multiarch + +# install required amd64 packages ... +sudo -E apt install -y \ + libxml2-dev \ + uuid-dev \ + libbz2-1.0 \ + libzmq3-dev \ + libsystemd-dev \ + libssl-dev \ + +# install required arm64 packages ... +sudo -E apt install -y \ + libxml2-dev:arm64 \ + uuid-dev:arm64 \ + libbz2-1.0:arm64 \ + libzmq3-dev:arm64 \ + libsystemd-dev:arm64 \ + libssl-dev:arm64 \ + diff --git a/scripts/install-snapcraft.sh b/scripts/install-snapcraft.sh index 24731248a..4ae4d7631 100644 --- a/scripts/install-snapcraft.sh +++ b/scripts/install-snapcraft.sh @@ -1,10 +1,6 @@ #!/usr/bin/env bash -INFO=$(snap list snapcraft) -if [[ ${INFO} != *"6."* ]]; then - echo Removing: $INFO - sudo snap remove snapcraft -fi +set -e echo " " echo "============================================"