diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5778d32d1..6c19ca6cb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,14 +39,14 @@ jobs: STABLE_TAG=${BASE}:stable PULL_TAG=${BASE}:${BUILD_TAG} docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG} docker://${VERSION_TAG} - for variant in standard-arm64 tensorrt tensorrt-jp5 tensorrt-jp6 rk h8l rocm; do + for variant in standard-arm64 tensorrt tensorrt-jp6 rk rocm; do docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG}-${variant} docker://${VERSION_TAG}-${variant} done # stable tag if [[ "${BUILD_TYPE}" == "stable" ]]; then docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG} docker://${STABLE_TAG} - for variant in standard-arm64 tensorrt tensorrt-jp5 tensorrt-jp6 rk h8l rocm; do + for variant in standard-arm64 tensorrt tensorrt-jp6 rk rocm; do docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG}-${variant} docker://${STABLE_TAG}-${variant} done fi diff --git a/docker/main/requirements-wheels.txt b/docker/main/requirements-wheels.txt index 4ab7e03e6..6f905be4a 100644 --- a/docker/main/requirements-wheels.txt +++ b/docker/main/requirements-wheels.txt @@ -37,9 +37,9 @@ opencv-python-headless == 4.11.0.* opencv-contrib-python == 4.11.0.* scipy == 1.14.* # OpenVino & ONNX -openvino == 2024.4.* -onnxruntime-openvino == 1.20.* ; platform_machine == 'x86_64' -onnxruntime == 1.20.* ; platform_machine == 'aarch64' +openvino == 2025.0.* +onnxruntime-openvino == 1.21.0 ; platform_machine == 'x86_64' +onnxruntime == 1.21.0 ; platform_machine == 'aarch64' # Embeddings transformers == 4.45.* # Generative AI diff --git a/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run index a3a34e4f6..a3ecb4668 100755 --- a/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run +++ b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run @@ -4,6 +4,11 @@ set -o errexit -o nounset -o pipefail +# opt out of openvino telemetry +if [ -e /usr/local/bin/opt_in_out ]; then + /usr/local/bin/opt_in_out --opt_out +fi + # Logs should be sent to stdout so that s6 can collect them # Tell S6-Overlay not to restart this service diff --git a/docker/main/rootfs/usr/local/go2rtc/create_config.py b/docker/main/rootfs/usr/local/go2rtc/create_config.py index dc136b611..21da66f3e 100644 --- a/docker/main/rootfs/usr/local/go2rtc/create_config.py +++ b/docker/main/rootfs/usr/local/go2rtc/create_config.py @@ -53,7 +53,7 @@ elif go2rtc_config["api"].get("origin") is None: # Need to set default location for HA config if go2rtc_config.get("hass") is None: - go2rtc_config["hass"] = {"config": "/config"} + go2rtc_config["hass"] = {"config": "/homeassistant"} # we want to ensure that logs are easy to read if go2rtc_config.get("log") is None: diff --git a/docker/rockchip/Dockerfile b/docker/rockchip/Dockerfile index 59c8ad791..c38b2d49e 100644 --- a/docker/rockchip/Dockerfile +++ b/docker/rockchip/Dockerfile @@ -26,7 +26,7 @@ COPY --from=rootfs / / COPY docker/rockchip/COCO /COCO COPY docker/rockchip/conv2rknn.py /opt/conv2rknn.py -ADD https://github.com/MarcA711/rknn-toolkit2/releases/download/v2.3.0/librknnrt.so /usr/lib/ +ADD https://github.com/MarcA711/rknn-toolkit2/releases/download/v2.3.2/librknnrt.so /usr/lib/ ADD --chmod=111 https://github.com/MarcA711/Rockchip-FFmpeg-Builds/releases/download/6.1-7/ffmpeg /usr/lib/ffmpeg/6.0/bin/ ADD --chmod=111 https://github.com/MarcA711/Rockchip-FFmpeg-Builds/releases/download/6.1-7/ffprobe /usr/lib/ffmpeg/6.0/bin/ diff --git a/docker/rockchip/requirements-wheels-rk.txt b/docker/rockchip/requirements-wheels-rk.txt index 8d5b5efe0..f841f26db 100644 --- a/docker/rockchip/requirements-wheels-rk.txt +++ b/docker/rockchip/requirements-wheels-rk.txt @@ -1,2 +1,2 @@ -rknn-toolkit2 == 2.3.0 -rknn-toolkit-lite2 == 2.3.0 \ No newline at end of file +rknn-toolkit2 == 2.3.2 +rknn-toolkit-lite2 == 2.3.2 \ No newline at end of file diff --git a/docker/tensorrt/requirements-amd64.txt b/docker/tensorrt/requirements-amd64.txt index 0e003ca3d..795953359 100644 --- a/docker/tensorrt/requirements-amd64.txt +++ b/docker/tensorrt/requirements-amd64.txt @@ -13,5 +13,5 @@ nvidia-cudnn-cu12 == 9.5.0.*; platform_machine == 'x86_64' nvidia-cufft-cu11==10.*; platform_machine == 'x86_64' nvidia-cufft-cu12==11.*; platform_machine == 'x86_64' onnx==1.16.*; platform_machine == 'x86_64' -onnxruntime-gpu==1.20.*; platform_machine == 'x86_64' +onnxruntime-gpu==1.21.0; platform_machine == 'x86_64' protobuf==3.20.3; platform_machine == 'x86_64' diff --git a/docs/docs/configuration/authentication.md b/docs/docs/configuration/authentication.md index 129547d1b..f83659c52 100644 --- a/docs/docs/configuration/authentication.md +++ b/docs/docs/configuration/authentication.md @@ -77,7 +77,7 @@ Changing the secret will invalidate current tokens. Frigate can be configured to leverage features of common upstream authentication proxies such as Authelia, Authentik, oauth2_proxy, or traefik-forward-auth. -If you are leveraging the authentication of an upstream proxy, you likely want to disable Frigate's authentication. Optionally, if communication between the reverse proxy and Frigate is over an untrusted network, you should set an `auth_secret` in the `proxy` config and configure the proxy to send the secret value as a header named `X-Proxy-Secret`. Assuming this is an untrusted network, you will also want to [configure a real TLS certificate](tls.md) to ensure the traffic can't simply be sniffed to steal the secret. +If you are leveraging the authentication of an upstream proxy, you likely want to disable Frigate's authentication as there is no correspondence between users in Frigate's database and users authenticated via the proxy. Optionally, if communication between the reverse proxy and Frigate is over an untrusted network, you should set an `auth_secret` in the `proxy` config and configure the proxy to send the secret value as a header named `X-Proxy-Secret`. Assuming this is an untrusted network, you will also want to [configure a real TLS certificate](tls.md) to ensure the traffic can't simply be sniffed to steal the secret. Here is an example of how to disable Frigate's authentication and also ensure the requests come only from your known proxy. @@ -109,6 +109,14 @@ proxy: Frigate supports both `admin` and `viewer` roles (see below). When using port `8971`, Frigate validates these headers and subsequent requests use the headers `remote-user` and `remote-role` for authorization. +A default role can be provided. Any value in the mapped `role` header will override the default. + +```yaml +proxy: + ... + default_role: viewer +``` + #### Port Considerations **Authenticated Port (8971)** diff --git a/docs/docs/configuration/camera_specific.md b/docs/docs/configuration/camera_specific.md index 0cd1efd47..36d9e9256 100644 --- a/docs/docs/configuration/camera_specific.md +++ b/docs/docs/configuration/camera_specific.md @@ -15,6 +15,17 @@ Many cameras support encoding options which greatly affect the live view experie ::: +## H.265 Cameras via Safari + +Some cameras support h265 with different formats, but Safari only supports the annexb format. When using h265 camera streams for recording with devices that use the Safari browser, the `apple_compatibility` option should be used. + +```yaml +cameras: + h265_cam: # <------ Doesn't matter what the camera is called + ffmpeg: + apple_compatibility: true # <- Adds compatibility with MacOS and iPhone +``` + ## MJPEG Cameras Note that mjpeg cameras require encoding the video into h264 for recording, and restream roles. This will use significantly more CPU than if the cameras supported h264 feeds directly. It is recommended to use the restream role to create an h264 restream and then use that as the source for ffmpeg. diff --git a/docs/docs/configuration/face_recognition.md b/docs/docs/configuration/face_recognition.md index 4ca57f9e1..b78995cd2 100644 --- a/docs/docs/configuration/face_recognition.md +++ b/docs/docs/configuration/face_recognition.md @@ -3,7 +3,7 @@ id: face_recognition title: Face Recognition --- -Face recognition identifies known individuals by matching detected faces with previously learned facial data. When a known person is recognized, their name will be added as a `sub_label`. This information is included in the UI, filters, as well as in notifications. +Face recognition identifies known individuals by matching detected faces with previously learned facial data. When a known `person` is recognized, their name will be added as a `sub_label`. This information is included in the UI, filters, as well as in notifications. ## Model Requirements @@ -13,6 +13,12 @@ When running a Frigate+ model (or any custom model that natively detects faces) When running a default COCO model or another model that does not include `face` as a detectable label, face detection will run via CV2 using a lightweight DNN model that runs on the CPU. In this case, you should _not_ define `face` in your list of objects to track. +:::note + +Frigate needs to first detect a `person` before it can detect and recognize a face. + +::: + ### Face Recognition Frigate has support for two face recognition model types: @@ -22,11 +28,13 @@ Frigate has support for two face recognition model types: In both cases, a lightweight face landmark detection model is also used to align faces before running recognition. +All of these features run locally on your system. + ## Minimum System Requirements The `small` model is optimized for efficiency and runs on the CPU, most CPUs should run the model efficiently. -The `large` model is optimized for accuracy, an integrated or discrete GPU is highly recommended. +The `large` model is optimized for accuracy, an integrated or discrete GPU is highly recommended. See the [Hardware Accelerated Enrichments](/configuration/hardware_acceleration_enrichments.md) documentation. ## Configuration @@ -39,7 +47,7 @@ face_recognition: ## Advanced Configuration -Fine-tune face recognition with these optional parameters: +Fine-tune face recognition with these optional parameters at the global level of your config. The only optional parameters that can be set at the camera level are `enabled` and `min_area`. ### Detection @@ -62,6 +70,13 @@ Fine-tune face recognition with these optional parameters: - `blur_confidence_filter`: Enables a filter that calculates how blurry the face is and adjusts the confidence based on this. - Default: `True`. +## Usage + +1. **Enable face recognition** in your configuration file and restart Frigate. +2. **Upload your face** using the **Add Face** button's wizard in the Face Library section of the Frigate UI. +3. When Frigate detects and attempts to recognize a face, it will appear in the **Train** tab of the Face Library, along with its associated recognition confidence. +4. From the **Train** tab, you can **assign the face** to a new or existing person to improve recognition accuracy for the future. + ## Creating a Robust Training Set The number of images needed for a sufficient training set for face recognition varies depending on several factors: @@ -133,6 +148,7 @@ No, using another face recognition service will interfere with Frigate's built i ### Does face recognition run on the recording stream? Face recognition does not run on the recording stream, this would be suboptimal for many reasons: + 1. The latency of accessing the recordings means the notifications would not include the names of recognized people because recognition would not complete until after. 2. The embedding models used run on a set image size, so larger images will be scaled down to match this anyway. 3. Motion clarity is much more important than extra pixels, over-compression and motion blur are much more detrimental to results than resolution. diff --git a/docs/docs/configuration/ffmpeg_presets.md b/docs/docs/configuration/ffmpeg_presets.md index 0dc8cdedd..e8c6e6eee 100644 --- a/docs/docs/configuration/ffmpeg_presets.md +++ b/docs/docs/configuration/ffmpeg_presets.md @@ -9,7 +9,7 @@ Some presets of FFmpeg args are provided by default to make the configuration ea It is highly recommended to use hwaccel presets in the config. These presets not only replace the longer args, but they also give Frigate hints of what hardware is available and allows Frigate to make other optimizations using the GPU such as when encoding the birdseye restream or when scaling a stream that has a size different than the native stream size. -See [the hwaccel docs](/configuration/hardware_acceleration.md) for more info on how to setup hwaccel for your GPU / iGPU. +See [the hwaccel docs](/configuration/hardware_acceleration_video.md) for more info on how to setup hwaccel for your GPU / iGPU. | Preset | Usage | Other Notes | | --------------------- | ------------------------------ | ----------------------------------------------------- | diff --git a/docs/docs/configuration/hardware_acceleration_enrichments.md b/docs/docs/configuration/hardware_acceleration_enrichments.md new file mode 100644 index 000000000..6bd731bd2 --- /dev/null +++ b/docs/docs/configuration/hardware_acceleration_enrichments.md @@ -0,0 +1,32 @@ +--- +id: hardware_acceleration_enrichments +title: Enrichments +--- + +# Enrichments + +Some of Frigate's enrichments can use a discrete GPU for accelerated processing. + +## Requirements + +Object detection and enrichments (like Semantic Search, Face Recognition, and License Plate Recognition) are independent features. To use a GPU for object detection, see the [Object Detectors](/configuration/object_detectors.md) documentation. If you want to use your GPU for any supported enrichments, you must choose the appropriate Frigate Docker image for your GPU and configure the enrichment according to its specific documentation. + +- **AMD** + + - ROCm will automatically be detected and used for enrichments in the `-rocm` Frigate image. + +- **Intel** + + - OpenVINO will automatically be detected and used for enrichments in the default Frigate image. + +- **Nvidia** + - Nvidia GPUs will automatically be detected and used for enrichments in the `-tensorrt` Frigate image. + - Jetson devices will automatically be detected and used for enrichments in the `-tensorrt-jp6` Frigate image. + +Utilizing a GPU for enrichments does not require you to use the same GPU for object detection. For example, you can run the `tensorrt` Docker image for enrichments and still use other dedicated hardware for object detection. + +:::note + +A Google Coral is a TPU (Tensor Processing Unit), not a dedicated GPU (Graphics Processing Unit) and therefore does not provide any kind of acceleration for Frigate's enrichments. + +::: diff --git a/docs/docs/configuration/hardware_acceleration.md b/docs/docs/configuration/hardware_acceleration_video.md similarity index 93% rename from docs/docs/configuration/hardware_acceleration.md rename to docs/docs/configuration/hardware_acceleration_video.md index c6e97c09f..58651dc2d 100644 --- a/docs/docs/configuration/hardware_acceleration.md +++ b/docs/docs/configuration/hardware_acceleration_video.md @@ -1,15 +1,15 @@ --- -id: hardware_acceleration -title: Hardware Acceleration +id: hardware_acceleration_video +title: Video Decoding --- -# Hardware Acceleration +# Video Decoding -It is highly recommended to use a GPU for hardware acceleration in Frigate. Some types of hardware acceleration are detected and used automatically, but you may need to update your configuration to enable hardware accelerated decoding in ffmpeg. +It is highly recommended to use a GPU for hardware acceleration video decoding in Frigate. Some types of hardware acceleration are detected and used automatically, but you may need to update your configuration to enable hardware accelerated decoding in ffmpeg. Depending on your system, these parameters may not be compatible. More information on hardware accelerated decoding for ffmpeg can be found here: https://trac.ffmpeg.org/wiki/HWAccelIntro -# Officially Supported +# Object Detection ## Raspberry Pi 3/4 @@ -69,12 +69,12 @@ Or map in all the `/dev/video*` devices. **Recommended hwaccel Preset** -| CPU Generation | Intel Driver | Recommended Preset | Notes | -| -------------- | ------------ | ------------------ | ----------------------------------- | -| gen1 - gen7 | i965 | preset-vaapi | qsv is not supported | -| gen8 - gen12 | iHD | preset-vaapi | preset-intel-qsv-* can also be used | -| gen13+ | iHD / Xe | preset-intel-qsv-* | | -| Intel Arc GPU | iHD / Xe | preset-intel-qsv-* | | +| CPU Generation | Intel Driver | Recommended Preset | Notes | +| -------------- | ------------ | ------------------- | ------------------------------------ | +| gen1 - gen7 | i965 | preset-vaapi | qsv is not supported | +| gen8 - gen12 | iHD | preset-vaapi | preset-intel-qsv-\* can also be used | +| gen13+ | iHD / Xe | preset-intel-qsv-\* | | +| Intel Arc GPU | iHD / Xe | preset-intel-qsv-\* | | ::: diff --git a/docs/docs/configuration/license_plate_recognition.md b/docs/docs/configuration/license_plate_recognition.md index e75d0ce1d..d7bc37ace 100644 --- a/docs/docs/configuration/license_plate_recognition.md +++ b/docs/docs/configuration/license_plate_recognition.md @@ -3,17 +3,18 @@ id: license_plate_recognition title: License Plate Recognition (LPR) --- -Frigate can recognize license plates on vehicles and automatically add the detected characters to the `recognized_license_plate` field or a known name as a `sub_label` to tracked objects of type `car`. A common use case may be to read the license plates of cars pulling into a driveway or cars passing by on a street. +Frigate can recognize license plates on vehicles and automatically add the detected characters to the `recognized_license_plate` field or a known name as a `sub_label` to tracked objects of type `car` or `motorcycle`. A common use case may be to read the license plates of cars pulling into a driveway or cars passing by on a street. LPR works best when the license plate is clearly visible to the camera. For moving vehicles, Frigate continuously refines the recognition process, keeping the most confident result. However, LPR does not run on stationary vehicles. -When a plate is recognized, the recognized name is: +When a plate is recognized, the details are: - Added as a `sub_label` (if known) or the `recognized_license_plate` field (if unknown) to a tracked object. - Viewable in the Review Item Details pane in Review (sub labels). - Viewable in the Tracked Object Details pane in Explore (sub labels and recognized license plates). - Filterable through the More Filters menu in Explore. -- Published via the `frigate/events` MQTT topic as a `sub_label` (known) or `recognized_license_plate` (unknown) for the `car` tracked object. +- Published via the `frigate/events` MQTT topic as a `sub_label` (known) or `recognized_license_plate` (unknown) for the `car` or `motorcycle` tracked object. +- Published via the `frigate/tracked_object_update` MQTT topic with `name` (if known) and `plate`. ## Model Requirements @@ -23,7 +24,7 @@ Users without a model that detects license plates can still run LPR. Frigate use :::note -In the default mode, Frigate's LPR needs to first detect a `car` before it can recognize a license plate. If you're using a dedicated LPR camera and have a zoomed-in view where a `car` will not be detected, you can still run LPR, but the configuration parameters will differ from the default mode. See the [Dedicated LPR Cameras](#dedicated-lpr-cameras) section below. +In the default mode, Frigate's LPR needs to first detect a `car` or `motorcycle` before it can recognize a license plate. If you're using a dedicated LPR camera and have a zoomed-in view where a `car` or `motorcycle` will not be detected, you can still run LPR, but the configuration parameters will differ from the default mode. See the [Dedicated LPR Cameras](#dedicated-lpr-cameras) section below. ::: @@ -50,13 +51,13 @@ cameras: enabled: False ``` -For non-dedicated LPR cameras, ensure that your camera is configured to detect objects of type `car`, and that a car is actually being detected by Frigate. Otherwise, LPR will not run. +For non-dedicated LPR cameras, ensure that your camera is configured to detect objects of type `car` or `motorcycle`, and that a car or motorcycle is actually being detected by Frigate. Otherwise, LPR will not run. Like the other real-time processors in Frigate, license plate recognition runs on the camera stream defined by the `detect` role in your config. To ensure optimal performance, select a suitable resolution for this stream in your camera's firmware that fits your specific scene and requirements. ## Advanced Configuration -Fine-tune the LPR feature using these optional parameters at the global level of your config. The only optional parameters that should be set at the camera level are `enabled`, `min_area`, and `enhancement`. +Fine-tune the LPR feature using these optional parameters at the global level of your config. The only optional parameters that can be set at the camera level are `enabled`, `min_area`, and `enhancement`. ### Detection @@ -68,10 +69,10 @@ Fine-tune the LPR feature using these optional parameters at the global level of - Depending on the resolution of your camera's `detect` stream, you can increase this value to ignore small or distant plates. - **`device`**: Device to use to run license plate recognition models. - Default: `CPU` - - This can be `CPU` or `GPU`. For users without a model that detects license plates natively, using a GPU may increase performance of the models, especially the YOLOv9 license plate detector model. + - This can be `CPU` or `GPU`. For users without a model that detects license plates natively, using a GPU may increase performance of the models, especially the YOLOv9 license plate detector model. See the [Hardware Accelerated Enrichments](/configuration/hardware_acceleration_enrichments.md) documentation. - **`model_size`**: The size of the model used to detect text on plates. - Default: `small` - - This can be `small` or `large`. The `large` model uses an enhanced text detector and is more accurate at finding text on plates but slower than the `small` model. For most users, the small model is recommended. For users in countries with multiple lines of text on plates, the large model is recommended. Note that using the large does not improve _text recognition_, but it may improve _text detection_. + - This can be `small` or `large`. The `large` model uses an enhanced text detector and is more accurate at finding text on plates but slower than the `small` model. For most users, the small model is recommended. For users in countries with multiple lines of text on plates, the large model is recommended. Note that using the large model does not improve _text recognition_, but it may improve _text detection_. ### Recognition @@ -86,7 +87,7 @@ Fine-tune the LPR feature using these optional parameters at the global level of ### Matching -- **`known_plates`**: List of strings or regular expressions that assign custom a `sub_label` to `car` objects when a recognized plate matches a known value. +- **`known_plates`**: List of strings or regular expressions that assign custom a `sub_label` to `car` and `motorcycle` objects when a recognized plate matches a known value. - These labels appear in the UI, filters, and notifications. - Unknown plates are still saved but are added to the `recognized_license_plate` field rather than the `sub_label`. - **`match_distance`**: Allows for minor variations (missing/incorrect characters) when matching a detected plate to a known plate. @@ -184,7 +185,7 @@ cameras: ffmpeg: ... # add your streams detect: enabled: True - fps: 5 # increase to 10 if vehicles move quickly across your frame. Higher than 15 is unnecessary and is not recommended. + fps: 5 # increase to 10 if vehicles move quickly across your frame. Higher than 10 is unnecessary and is not recommended. min_initialized: 2 width: 1920 height: 1080 @@ -216,7 +217,7 @@ With this setup: - Snapshots will have license plate bounding boxes on them. - The `frigate/events` MQTT topic will publish tracked object updates. - Debug view will display `license_plate` bounding boxes. -- If you are using a Frigate+ model and want to submit images from your dedicated LPR camera for model training and fine-tuning, annotate both the `car` and the `license_plate` in the snapshots on the Frigate+ website, even if the car is barely visible. +- If you are using a Frigate+ model and want to submit images from your dedicated LPR camera for model training and fine-tuning, annotate both the `car` / `motorcycle` and the `license_plate` in the snapshots on the Frigate+ website, even if the car is barely visible. ### Using the Secondary LPR Pipeline (Without Frigate+) @@ -228,7 +229,7 @@ An example configuration for a dedicated LPR camera using the secondary pipeline # LPR global configuration lpr: enabled: True - device: CPU # can also be GPU if available + device: CPU # can also be GPU if available and correct Docker image is used detection_threshold: 0.7 # change if necessary # Dedicated LPR camera configuration @@ -310,9 +311,9 @@ Recognized plates will show as object labels in the debug view and will appear i If you are still having issues detecting plates, start with a basic configuration and see the debugging tips below. -### Can I run LPR without detecting `car` objects? +### Can I run LPR without detecting `car` or `motorcycle` objects? -In normal LPR mode, Frigate requires a `car` to be detected first before recognizing a license plate. If you have a dedicated LPR camera, you can change the camera `type` to `"lpr"` to use the Dedicated LPR Camera algorithm. This comes with important caveats, though. See the [Dedicated LPR Cameras](#dedicated-lpr-cameras) section above. +In normal LPR mode, Frigate requires a `car` or `motorcycle` to be detected first before recognizing a license plate. If you have a dedicated LPR camera, you can change the camera `type` to `"lpr"` to use the Dedicated LPR Camera algorithm. This comes with important caveats, though. See the [Dedicated LPR Cameras](#dedicated-lpr-cameras) section above. ### How can I improve detection accuracy? @@ -335,8 +336,8 @@ Use `match_distance` to allow small character mismatches. Alternatively, define ### How do I debug LPR issues? - View MQTT messages for `frigate/events` to verify detected plates. -- If you are using a Frigate+ model or a model that detects license plates, watch the debug view (Settings --> Debug) to ensure that `license_plate` is being detected with a `car`. -- Watch the debug view to see plates recognized in real-time. For non-dedicated LPR cameras, the `car` label will change to the recognized plate when LPR is enabled and working. +- If you are using a Frigate+ model or a model that detects license plates, watch the debug view (Settings --> Debug) to ensure that `license_plate` is being detected with a `car` or `motorcycle`. +- Watch the debug view to see plates recognized in real-time. For non-dedicated LPR cameras, the `car` or `motorcycle` label will change to the recognized plate when LPR is enabled and working. - Adjust `detection_threshold` and `recognition_threshold` settings per the suggestions [above](#advanced-configuration). - Enable `debug_save_plates` to save images of detected text on plates to the clips directory (`/media/frigate/clips/lpr`). Ensure these images are readable and the text is clear. - Enable debug logs for LPR by adding `frigate.data_processing.common.license_plate: debug` to your `logger` configuration. These logs are _very_ verbose, so only enable this when necessary. @@ -356,4 +357,12 @@ LPR's performance impact depends on your hardware. Ensure you have at least 4GB The YOLOv9 license plate detector model will run (and the metric will appear) if you've enabled LPR but haven't defined `license_plate` as an object to track, either at the global or camera level. -If you are detecting `car` on cameras where you don't want to run LPR, make sure you disable LPR it at the camera level. And if you do want to run LPR on those cameras, make sure you define `license_plate` as an object to track. +If you are detecting `car` or `motorcycle` on cameras where you don't want to run LPR, make sure you disable LPR it at the camera level. And if you do want to run LPR on those cameras, make sure you define `license_plate` as an object to track. + +### It looks like Frigate picked up my camera's timestamp as the license plate. How can I prevent this? + +This could happen if cars or motorcycles travel close to your camera's timestamp. You could either move the timestamp through your camera's firmware, or apply a mask to it in Frigate. + +If you are using a model that natively detects `license_plate`, add an _object mask_ of type `license_plate` and a _motion mask_ over your timestamp. + +If you are using dedicated LPR camera mode, only a _motion mask_ over your timestamp is required. diff --git a/docs/docs/configuration/object_detectors.md b/docs/docs/configuration/object_detectors.md index fa6132dc8..60c1e512d 100644 --- a/docs/docs/configuration/object_detectors.md +++ b/docs/docs/configuration/object_detectors.md @@ -152,7 +152,7 @@ Use this configuration for YOLO-based models. When no custom model path or URL i ```yaml detectors: - hailo8l: + hailo: type: hailo8l device: PCIe @@ -185,7 +185,7 @@ For SSD-based models, provide either a model path or URL to your compiled SSD mo ```yaml detectors: - hailo8l: + hailo: type: hailo8l device: PCIe @@ -209,7 +209,7 @@ The Hailo detector supports all YOLO models compiled for Hailo hardware that inc ```yaml detectors: - hailo8l: + hailo: type: hailo8l device: PCIe @@ -484,7 +484,7 @@ frigate: ### Configuration Parameters -The TensorRT detector can be selected by specifying `tensorrt` as the model type. The GPU will need to be passed through to the docker container using the same methods described in the [Hardware Acceleration](hardware_acceleration.md#nvidia-gpus) section. If you pass through multiple GPUs, you can select which GPU is used for a detector with the `device` configuration parameter. The `device` parameter is an integer value of the GPU index, as shown by `nvidia-smi` within the container. +The TensorRT detector can be selected by specifying `tensorrt` as the model type. The GPU will need to be passed through to the docker container using the same methods described in the [Hardware Acceleration](hardware_acceleration_video.md#nvidia-gpus) section. If you pass through multiple GPUs, you can select which GPU is used for a detector with the `device` configuration parameter. The `device` parameter is an integer value of the GPU index, as shown by `nvidia-smi` within the container. The TensorRT detector uses `.trt` model files that are located in `/config/model_cache/tensorrt` by default. These model path and dimensions used will depend on which model you have generated. @@ -610,7 +610,7 @@ If the correct build is used for your GPU then the GPU will be detected and used - **Nvidia** - Nvidia GPUs will automatically be detected and used with the ONNX detector in the `-tensorrt` Frigate image. - - Jetson devices will automatically be detected and used with the ONNX detector in the `-tensorrt-jp(4/5)` Frigate image. + - Jetson devices will automatically be detected and used with the ONNX detector in the `-tensorrt-jp6` Frigate image. ::: @@ -659,7 +659,7 @@ YOLOv3, YOLOv4, YOLOv7, and [YOLOv9](https://github.com/WongKinYiu/yolov9) model :::tip -The YOLO detector has been designed to support YOLOv3, YOLOv4, YOLOv7, and YOLOv9 models, but may support other YOLO model architectures as well. See [the models section](#downloading-yolo-models) for more information on downloading YOLO models for use in Frigate. +The YOLO detector has been designed to support YOLOv3, YOLOv4, YOLOv7, and YOLOv9 models, but may support other YOLO model architectures as well. See [the models section](#downloading-yolo-models) for more information on downloading YOLO models for use in Frigate. ::: @@ -811,7 +811,23 @@ Hardware accelerated object detection is supported on the following SoCs: - RK3576 - RK3588 -This implementation uses the [Rockchip's RKNN-Toolkit2](https://github.com/airockchip/rknn-toolkit2/), version v2.3.0. Currently, only [Yolo-NAS](https://github.com/Deci-AI/super-gradients/blob/master/YOLONAS.md) is supported as object detection model. +This implementation uses the [Rockchip's RKNN-Toolkit2](https://github.com/airockchip/rknn-toolkit2/), version v2.3.2. + +:::tip + +When using many cameras one detector may not be enough to keep up. Multiple detectors can be defined assuming NPU resources are available. An example configuration would be: + +```yaml +detectors: + rknn_0: + type: rknn + num_cores: 0 + rknn_1: + type: rknn + num_cores: 0 +``` + +::: ### Prerequisites @@ -844,14 +860,14 @@ detectors: # required The inference time was determined on a rk3588 with 3 NPU cores. -| Model | Size in mb | Inference time in ms | -| ------------------- | ---------- | -------------------- | -| deci-fp16-yolonas_s | 24 | 25 | -| deci-fp16-yolonas_m | 62 | 35 | -| deci-fp16-yolonas_l | 81 | 45 | -| yolov9_tiny | 8 | 35 | -| yolox_nano | 3 | 16 | -| yolox_tiny | 6 | 20 | +| Model | Size in mb | Inference time in ms | +| --------------------- | ---------- | -------------------- | +| deci-fp16-yolonas_s | 24 | 25 | +| deci-fp16-yolonas_m | 62 | 35 | +| deci-fp16-yolonas_l | 81 | 45 | +| frigate-fp16-yolov9-t | 6 | 35 | +| rock-i8-yolox_nano | 3 | 14 | +| rock-i8_yolox_tiny | 6 | 18 | - All models are automatically downloaded and stored in the folder `config/model_cache/rknn_cache`. After upgrading Frigate, you should remove older models to free up space. - You can also provide your own `.rknn` model. You should not save your own models in the `rknn_cache` folder, store them directly in the `model_cache` folder or another subfolder. To convert a model to `.rknn` format see the `rknn-toolkit2` (requires a x86 machine). Note, that there is only post-processing for the supported models. @@ -887,10 +903,13 @@ The pre-trained YOLO-NAS weights from DeciAI are subject to their license and ca model: # required # name of model (will be automatically downloaded) or path to your own .rknn model file # possible values are: - # - yolov9-t - # - yolov9-s + # - frigate-fp16-yolov9-t + # - frigate-fp16-yolov9-s + # - frigate-fp16-yolov9-m + # - frigate-fp16-yolov9-c + # - frigate-fp16-yolov9-e # your yolo_model.rknn - path: /config/model_cache/rknn_cache/yolov9-t.rknn + path: frigate-fp16-yolov9-t model_type: yolo-generic width: 320 height: 320 @@ -905,10 +924,12 @@ model: # required model: # required # name of model (will be automatically downloaded) or path to your own .rknn model file # possible values are: - # - yolox_nano - # - yolox_tiny + # - rock-i8-yolox_nano + # - rock-i8-yolox_tiny + # - rock-fp16-yolox_nano + # - rock-fp16-yolox_tiny # your yolox_model.rknn - path: yolox_tiny + path: rock-i8-yolox_nano model_type: yolox width: 416 height: 416 @@ -948,7 +969,7 @@ Explanation of the paramters: - `soc`: the SoC this model was build for (e.g. "rk3588") - `tk_version`: Version of `rknn-toolkit2` (e.g. "2.3.0") - **example**: Specifying `output_name = "frigate-{quant}-{input_basename}-{soc}-v{tk_version}"` could result in a model called `frigate-i8-my_model-rk3588-v2.3.0.rknn`. -- `config`: Configuration passed to `rknn-toolkit2` for model conversion. For an explanation of all available parameters have a look at section "2.2. Model configuration" of [this manual](https://github.com/MarcA711/rknn-toolkit2/releases/download/v2.3.0/03_Rockchip_RKNPU_API_Reference_RKNN_Toolkit2_V2.3.0_EN.pdf). +- `config`: Configuration passed to `rknn-toolkit2` for model conversion. For an explanation of all available parameters have a look at section "2.2. Model configuration" of [this manual](https://github.com/MarcA711/rknn-toolkit2/releases/download/v2.3.2/03_Rockchip_RKNPU_API_Reference_RKNN_Toolkit2_V2.3.2_EN.pdf). # Models diff --git a/docs/docs/configuration/record.md b/docs/docs/configuration/record.md index 28065f0b0..52c0f0c88 100644 --- a/docs/docs/configuration/record.md +++ b/docs/docs/configuration/record.md @@ -174,6 +174,10 @@ To reduce the output file size the ffmpeg parameter `-qp n` can be utilized (whe ::: +## Apple Compatibility with H.265 Streams + +Apple devices running the Safari browser may fail to playback h.265 recordings. The [apple compatibility option](../configuration/camera_specific.md#h265-cameras-via-safari) should be used to ensure seamless playback on Apple devices. + ## Syncing Recordings With Disk In some cases the recordings files may be deleted but Frigate will not know this has happened. Recordings sync can be enabled which will tell Frigate to check the file system and delete any db entries for files which don't exist. diff --git a/docs/docs/configuration/reference.md b/docs/docs/configuration/reference.md index a5ef0204e..dbea03678 100644 --- a/docs/docs/configuration/reference.md +++ b/docs/docs/configuration/reference.md @@ -78,16 +78,19 @@ proxy: # Optional: Mapping for headers from upstream proxies. Only used if Frigate's auth # is disabled. # NOTE: Many authentication proxies pass a header downstream with the authenticated - # user name. Not all values are supported. It must be a whitelisted header. + # user name and role. Not all values are supported. It must be a whitelisted header. # See the docs for more info. header_map: user: x-forwarded-user + role: x-forwarded-role # Optional: Url for logging out a user. This sets the location of the logout url in # the UI. logout_url: /api/logout # Optional: Auth secret that is checked against the X-Proxy-Secret header sent from # the proxy. If not set, all requests are trusted regardless of origin. auth_secret: None + # Optional: The default role to use for proxy auth. Must be "admin" or "viewer" + default_role: viewer # Optional: Authentication configuration auth: @@ -543,9 +546,9 @@ semantic_search: model_size: "small" # Optional: Configuration for face recognition capability -# NOTE: Can (enabled, min_area) be overridden at the camera level +# NOTE: enabled, min_area can be overridden at the camera level face_recognition: - # Optional: Enable semantic search (default: shown below) + # Optional: Enable face recognition (default: shown below) enabled: False # Optional: Minimum face distance score required to mark as a potential match (default: shown below) unknown_score: 0.8 @@ -560,6 +563,8 @@ face_recognition: save_attempts: 100 # Optional: Apply a blur quality filter to adjust confidence based on the blur level of the image (default: shown below) blur_confidence_filter: True + # Optional: Set the model size used face recognition. (default: shown below) + model_size: small # Optional: Configuration for license plate recognition capability # NOTE: enabled, min_area, and enhancement can be overridden at the camera level diff --git a/docs/docs/configuration/semantic_search.md b/docs/docs/configuration/semantic_search.md index 07e2cbfb2..bf7a49ca8 100644 --- a/docs/docs/configuration/semantic_search.md +++ b/docs/docs/configuration/semantic_search.md @@ -90,19 +90,7 @@ semantic_search: If the correct build is used for your GPU and the `large` model is configured, then the GPU will be detected and used automatically. -**NOTE:** Object detection and Semantic Search are independent features. If you want to use your GPU with Semantic Search, you must choose the appropriate Frigate Docker image for your GPU. - -- **AMD** - - - ROCm will automatically be detected and used for Semantic Search in the `-rocm` Frigate image. - -- **Intel** - - - OpenVINO will automatically be detected and used for Semantic Search in the default Frigate image. - -- **Nvidia** - - Nvidia GPUs will automatically be detected and used for Semantic Search in the `-tensorrt` Frigate image. - - Jetson devices will automatically be detected and used for Semantic Search in the `-tensorrt-jp(4/5)` Frigate image. +See the [Hardware Accelerated Enrichments](/configuration/hardware_acceleration_enrichments.md) documentation. ::: diff --git a/docs/docs/configuration/zones.md b/docs/docs/configuration/zones.md index 0c6793d58..a23a3a617 100644 --- a/docs/docs/configuration/zones.md +++ b/docs/docs/configuration/zones.md @@ -84,7 +84,13 @@ Only car objects can trigger the `front_yard_street` zone and only person can tr ### Zone Loitering -Sometimes objects are expected to be passing through a zone, but an object loitering in an area is unexpected. Zones can be configured to have a minimum loitering time before the object will be considered in the zone. +Sometimes objects are expected to be passing through a zone, but an object loitering in an area is unexpected. Zones can be configured to have a minimum loitering time after which the object will be considered in the zone. + +:::note + +When using loitering zones, a review item will remain active until the object leaves. Loitering zones are only meant to be used in areas where loitering is not expected behavior. + +::: ```yaml cameras: diff --git a/docs/docs/development/contributing-boards.md b/docs/docs/development/contributing-boards.md index bbc435888..930c99dec 100644 --- a/docs/docs/development/contributing-boards.md +++ b/docs/docs/development/contributing-boards.md @@ -91,4 +91,4 @@ The `CODEOWNERS` file should be updated to include the `docker/board` along with # Docs -At a minimum the `installation`, `object_detectors`, `hardware_acceleration`, and `ffmpeg-presets` docs should be updated (if applicable) to reflect the configuration of this community board. +At a minimum the `installation`, `object_detectors`, `hardware_acceleration_video`, and `ffmpeg-presets` docs should be updated (if applicable) to reflect the configuration of this community board. diff --git a/docs/docs/frigate/hardware.md b/docs/docs/frigate/hardware.md index f3612e327..0d3780782 100644 --- a/docs/docs/frigate/hardware.md +++ b/docs/docs/frigate/hardware.md @@ -38,6 +38,7 @@ Frigate supports multiple different detectors that work on different types of ha **Most Hardware** - [Hailo](#hailo-8): The Hailo8 and Hailo8L AI Acceleration module is available in m.2 format with a HAT for RPi devices offering a wide range of compatibility with devices. + - [Supports many model architectures](../../configuration/object_detectors#configuration) - Runs best with tiny or small size models @@ -73,10 +74,10 @@ Frigate supports multiple different detectors that work on different types of ha ### Hailo-8 - Frigate supports both the Hailo-8 and Hailo-8L AI Acceleration Modules on compatible hardware platforms—including the Raspberry Pi 5 with the PCIe hat from the AI kit. The Hailo detector integration in Frigate automatically identifies your hardware type and selects the appropriate default model when a custom model isn’t provided. **Default Model Configuration:** + - **Hailo-8L:** Default model is **YOLOv6n**. - **Hailo-8:** Default model is **YOLOv6n**. @@ -90,6 +91,7 @@ In real-world deployments, even with multiple cameras running concurrently, Frig ### Google Coral TPU Frigate supports both the USB and M.2 versions of the Google Coral. + - The USB version is compatible with the widest variety of hardware and does not require a driver on the host machine. However, it does lack the automatic throttling features of the other versions. - The PCIe and M.2 versions require installation of a driver on the host. Follow the instructions for your version from https://coral.ai @@ -107,20 +109,17 @@ More information is available [in the detector docs](/configuration/object_detec Inference speeds vary greatly depending on the CPU or GPU used, some known examples of GPU inference times are below: -| Name | MobileNetV2 Inference Time | YOLO-NAS Inference Time | RF-DETR Inference Time | Notes | -| -------------------- | -------------------------- | ------------------------- | ------------------------- | -------------------------------------- | -| Intel i3 6100T | 15 - 35 ms | | | Can only run one detector instance | -| Intel i5 6500 | ~ 15 ms | | | | -| Intel i5 7200u | 15 - 25 ms | | | | -| Intel i5 7500 | ~ 15 ms | | | | -| Intel i3 8100 | ~ 15 ms | | | | -| Intel i5 1135G7 | 10 - 15 ms | | | | -| Intel i3 12000 | | 320: ~ 19 ms 640: ~ 54 ms | | | -| Intel i5 12600K | ~ 15 ms | 320: ~ 20 ms 640: ~ 46 ms | | | -| Intel i7 12650H | ~ 15 ms | 320: ~ 20 ms 640: ~ 42 ms | 336: 50 ms | | -| Intel N100 | ~ 15 ms | 320: ~ 20 ms | | | -| Intel Arc A380 | ~ 6 ms | 320: ~ 10 ms 640: ~ 22 ms | 336: 20 ms 448: 27 ms | | -| Intel Arc A750 | ~ 4 ms | 320: ~ 8 ms | | | +| Name | MobileNetV2 Inference Time | YOLO-NAS Inference Time | RF-DETR Inference Time | Notes | +| -------------- | -------------------------- | ------------------------- | ---------------------- | ---------------------------------- | +| Intel HD 530 | 15 - 35 ms | | | Can only run one detector instance | +| Intel HD 620 | 15 - 25 ms | 320: ~ 35 ms | | | +| Intel HD 630 | ~ 15 ms | 320: ~ 30 ms | | | +| Intel UHD 730 | ~ 10 ms | 320: ~ 19 ms 640: ~ 54 ms | | | +| Intel UHD 770 | ~ 15 ms | 320: ~ 20 ms 640: ~ 46 ms | | | +| Intel N100 | ~ 15 ms | 320: ~ 20 ms | | | +| Intel Iris XE | ~ 10 ms | 320: ~ 18 ms 640: ~ 50 ms | | | +| Intel Arc A380 | ~ 6 ms | 320: ~ 10 ms 640: ~ 22 ms | 336: 20 ms 448: 27 ms | | +| Intel Arc A750 | ~ 4 ms | 320: ~ 8 ms | | | ### TensorRT - Nvidia GPU @@ -144,15 +143,15 @@ Inference speeds will vary greatly depending on the GPU and the model used. With the [rocm](../configuration/object_detectors.md#amdrocm-gpu-detector) detector Frigate can take advantage of many discrete AMD GPUs. -| Name | YOLOv9 Inference Time | YOLO-NAS Inference Time | -| --------------- | --------------------- | ------------------------- | -| AMD 780M | ~ 14 ms | 320: ~ 30 ms 640: ~ 60 ms | +| Name | YOLOv9 Inference Time | YOLO-NAS Inference Time | +| -------- | --------------------- | ------------------------- | +| AMD 780M | ~ 14 ms | 320: ~ 30 ms 640: ~ 60 ms | ## Community Supported Detectors ### Nvidia Jetson -Frigate supports all Jetson boards, from the inexpensive Jetson Nano to the powerful Jetson Orin AGX. It will [make use of the Jetson's hardware media engine](/configuration/hardware_acceleration#nvidia-jetson-orin-agx-orin-nx-orin-nano-xavier-agx-xavier-nx-tx2-tx1-nano) when configured with the [appropriate presets](/configuration/ffmpeg_presets#hwaccel-presets), and will make use of the Jetson's GPU and DLA for object detection when configured with the [TensorRT detector](/configuration/object_detectors#nvidia-tensorrt-detector). +Frigate supports all Jetson boards, from the inexpensive Jetson Nano to the powerful Jetson Orin AGX. It will [make use of the Jetson's hardware media engine](/configuration/hardware_acceleration_video#nvidia-jetson-orin-agx-orin-nx-orin-nano-xavier-agx-xavier-nx-tx2-tx1-nano) when configured with the [appropriate presets](/configuration/ffmpeg_presets#hwaccel-presets), and will make use of the Jetson's GPU and DLA for object detection when configured with the [TensorRT detector](/configuration/object_detectors#nvidia-tensorrt-detector). Inference speed will vary depending on the YOLO model, jetson platform and jetson nvpmodel (GPU/DLA/EMC clock speed). It is typically 20-40 ms for most models. The DLA is more efficient than the GPU, but not faster, so using the DLA will reduce power consumption but will slightly increase inference time. @@ -166,11 +165,10 @@ Frigate supports hardware video processing on all Rockchip boards. However, hard - RK3576 - RK3588 -| Name | YOLOv9 Inference Time | YOLO-NAS Inference Time | YOLOx Inference Time | -| --------------- | --------------------- | --------------------------- | ------------------------- | -| rk3588 3 cores | ~ 35 ms | small: ~ 20 ms med: ~ 30 ms | nano: 18 ms tiny: 20 ms | -| rk3566 1 core | | small: ~ 96 ms | | - +| Name | YOLOv9 Inference Time | YOLO-NAS Inference Time | YOLOx Inference Time | +| -------------- | --------------------- | --------------------------- | ----------------------- | +| rk3588 3 cores | tiny: ~ 35 ms | small: ~ 20 ms med: ~ 30 ms | nano: 14 ms tiny: 18 ms | +| rk3566 1 core | | small: ~ 96 ms | | The inference time of a rk3588 with all 3 cores enabled is typically 25-30 ms for yolo-nas s. diff --git a/docs/docs/frigate/installation.md b/docs/docs/frigate/installation.md index 4dd21291a..ced680171 100644 --- a/docs/docs/frigate/installation.md +++ b/docs/docs/frigate/installation.md @@ -183,7 +183,7 @@ or add these options to your `docker run` command: #### Configuration -Next, you should configure [hardware object detection](/configuration/object_detectors#rockchip-platform) and [hardware video processing](/configuration/hardware_acceleration#rockchip-platform). +Next, you should configure [hardware object detection](/configuration/object_detectors#rockchip-platform) and [hardware video processing](/configuration/hardware_acceleration_video#rockchip-platform). ## Docker @@ -316,7 +316,8 @@ If you choose to run Frigate via LXC in Proxmox the setup can be complex so be p ::: - Suggestions include: +Suggestions include: + - For Intel-based hardware acceleration, to allow access to the `/dev/dri/renderD128` device with major number 226 and minor number 128, add the following lines to the `/etc/pve/lxc/.conf` LXC configuration: - `lxc.cgroup2.devices.allow: c 226:128 rwm` - `lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file` @@ -407,7 +408,7 @@ mkdir -p /share/share_vol2/frigate/media # Also replace the time zone value for 'TZ' in the sample command. # Example command will create a docker container that uses at most 2 CPUs and 4G RAM. # You may need to add "--env=LIBVA_DRIVER_NAME=i965 \" to the following docker run command if you -# have certain CPU (e.g., J4125). See https://docs.frigate.video/configuration/hardware_acceleration. +# have certain CPU (e.g., J4125). See https://docs.frigate.video/configuration/hardware_acceleration_video. docker run \ --name=frigate \ --shm-size=256m \ diff --git a/docs/docs/guides/getting_started.md b/docs/docs/guides/getting_started.md index 5420fbb6d..89176ad4b 100644 --- a/docs/docs/guides/getting_started.md +++ b/docs/docs/guides/getting_started.md @@ -162,7 +162,7 @@ FFmpeg arguments for other types of cameras can be found [here](../configuration ### Step 3: Configure hardware acceleration (recommended) -Now that you have a working camera configuration, you want to setup hardware acceleration to minimize the CPU required to decode your video streams. See the [hardware acceleration](../configuration/hardware_acceleration.md) config reference for examples applicable to your hardware. +Now that you have a working camera configuration, you want to setup hardware acceleration to minimize the CPU required to decode your video streams. See the [hardware acceleration](../configuration/hardware_acceleration_video.md) config reference for examples applicable to your hardware. Here is an example configuration with hardware acceleration configured to work with most Intel processors with an integrated GPU using the [preset](../configuration/ffmpeg_presets.md): @@ -303,6 +303,7 @@ By default, Frigate will retain video of all tracked objects for 10 days. The fu ### Step 7: Complete config At this point you have a complete config with basic functionality. + - View [common configuration examples](../configuration/index.md#common-configuration-examples) for a list of common configuration examples. - View [full config reference](../configuration/reference.md) for a complete list of configuration options. diff --git a/docs/docs/integrations/mqtt.md b/docs/docs/integrations/mqtt.md index 4139efaf3..d6dcaa3fb 100644 --- a/docs/docs/integrations/mqtt.md +++ b/docs/docs/integrations/mqtt.md @@ -104,7 +104,9 @@ Message published for each changed tracked object. The first message is publishe ### `frigate/tracked_object_update` -Message published for updates to tracked object metadata, for example when GenAI runs and returns a tracked object description. +Message published for updates to tracked object metadata, for example: + +#### Generative AI Description Update ```json { @@ -114,6 +116,33 @@ Message published for updates to tracked object metadata, for example when GenAI } ``` +#### Face Recognition Update + +```json +{ + "type": "face", + "id": "1607123955.475377-mxklsc", + "name": "John", + "score": 0.95, + "camera": "front_door_cam", + "timestamp": 1607123958.748393, +} +``` + +#### License Plate Recognition Update + +```json +{ + "type": "lpr", + "id": "1607123955.475377-mxklsc", + "name": "John's Car", + "plate": "123ABC", + "score": 0.95, + "camera": "driveway_cam", + "timestamp": 1607123958.748393, +} +``` + ### `frigate/reviews` Message published for each changed review item. The first message is published when the `detection` or `alert` is initiated. When additional objects are detected or when a zone change occurs, it will publish a, `update` message with the same id. When the review activity has ended a final `end` message is published. diff --git a/docs/docs/troubleshooting/faqs.md b/docs/docs/troubleshooting/faqs.md index 1af1508e4..ff2379ea7 100644 --- a/docs/docs/troubleshooting/faqs.md +++ b/docs/docs/troubleshooting/faqs.md @@ -34,7 +34,7 @@ Frigate generally [recommends cameras with configurable sub streams](/frigate/ha To do this efficiently the following setup is required: 1. A GPU or iGPU must be available to do the scaling. -2. [ffmpeg presets for hwaccel](/configuration/hardware_acceleration.md) must be used +2. [ffmpeg presets for hwaccel](/configuration/hardware_acceleration_video.md) must be used 3. Set the desired detection resolution for `detect -> width` and `detect -> height`. When this is done correctly, the GPU will do the decoding and scaling which will result in a small increase in CPU usage but with better results. diff --git a/docs/package-lock.json b/docs/package-lock.json index ce3f0649e..6ddff08e5 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -8,9 +8,9 @@ "name": "docs", "version": "0.0.0", "dependencies": { - "@docusaurus/core": "^3.6.3", + "@docusaurus/core": "^3.7.0", "@docusaurus/plugin-content-docs": "^3.6.3", - "@docusaurus/preset-classic": "^3.6.3", + "@docusaurus/preset-classic": "^3.7.0", "@docusaurus/theme-mermaid": "^3.6.3", "@mdx-js/react": "^3.1.0", "clsx": "^2.1.1", @@ -31,34 +31,34 @@ } }, "node_modules/@algolia/autocomplete-core": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", - "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz", + "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", - "@algolia/autocomplete-shared": "1.17.7" + "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", + "@algolia/autocomplete-shared": "1.17.9" } }, "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", - "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz", + "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" + "@algolia/autocomplete-shared": "1.17.9" }, "peerDependencies": { "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", - "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz", + "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" + "@algolia/autocomplete-shared": "1.17.9" }, "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -66,189 +66,109 @@ } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", - "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", + "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", "license": "MIT", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz", - "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==", - "license": "MIT", - "dependencies": { - "@algolia/cache-common": "4.24.0" - } - }, - "node_modules/@algolia/cache-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz", - "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==", - "license": "MIT" - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz", - "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==", - "license": "MIT", - "dependencies": { - "@algolia/cache-common": "4.24.0" - } - }, "node_modules/@algolia/client-abtesting": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.18.0.tgz", - "integrity": "sha512-DLIrAukjsSrdMNNDx1ZTks72o4RH/1kOn8Wx5zZm8nnqFexG+JzY4SANnCNEjnFQPJTTvC+KpgiNW/CP2lumng==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.24.0.tgz", + "integrity": "sha512-pNTIB5YqVVwu6UogvdX8TqsRZENaflqMMjdY7/XIPMNGrBoNH9tewINLI7+qc9tIaOLcAp3ZldqoEwAihZZ3ig==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" + "@algolia/client-common": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-account": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", - "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-account/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-account/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, "node_modules/@algolia/client-analytics": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", - "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.24.0.tgz", + "integrity": "sha512-IF+r9RRQsIf0ylIBNFxo7c6hDxxuhIfIbffhBXEF1HD13rjhP5AVfiaea9RzbsAZoySkm318plDpH/nlGIjbRA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.18.0.tgz", - "integrity": "sha512-X1WMSC+1ve2qlMsemyTF5bIjwipOT+m99Ng1Tyl36ZjQKTa54oajBKE0BrmM8LD8jGdtukAgkUhFoYOaRbMcmQ==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.24.0.tgz", + "integrity": "sha512-p8K6tiXQTebRBxbrzWIfGCvfkT+Umml+2lzI92acZjHsvl6KYH6igOfVstKqXJRei9pvRzEEvVDNDLXDVleGTA==", "license": "MIT", "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-insights": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.18.0.tgz", - "integrity": "sha512-FAJRNANUOSs/FgYOJ/Njqp+YTe4TMz2GkeZtfsw1TMiA5mVNRS/nnMpxas9771aJz7KTEWvK9GwqPs0K6RMYWg==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.24.0.tgz", + "integrity": "sha512-jOHF0+tixR3IZJMhZPquFNdCVPzwzzXoiqVsbTvfKojeaY6ZXybgUiTSB8JNX+YpsUT8Ebhu3UvRy4mw2PbEzw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" + "@algolia/client-common": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", - "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.24.0.tgz", + "integrity": "sha512-Fx/Fp6d8UmDBHecTt0XYF8C9TAaA3qeCQortfGSZzWp4gVmtrUCFNZ1SUwb8ULREnO9DanVrM5hGE8R8C4zZTQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.18.0.tgz", - "integrity": "sha512-x6XKIQgKFTgK/bMasXhghoEjHhmgoP61pFPb9+TaUJ32aKOGc65b12usiGJ9A84yS73UDkXS452NjyP50Knh/g==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.24.0.tgz", + "integrity": "sha512-F8ypOedSMhz6W7zuT5O1SXXsdXSOVhY2U6GkRbYk/mzrhs3jWFR3uQIfeQVWmsJjUwIGZmPoAr9E+T/Zm2M4wA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" + "@algolia/client-common": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.18.0.tgz", - "integrity": "sha512-qI3LcFsVgtvpsBGR7aNSJYxhsR+Zl46+958ODzg8aCxIcdxiK7QEVLMJMZAR57jGqW0Lg/vrjtuLFDMfSE53qA==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.24.0.tgz", + "integrity": "sha512-k+nuciQuq7WERNNE+hsx3DX636zIy+9R4xdtvW3PANT2a2BDGOv3fv2mta8+QUMcVTVcGe/Mo3QCb4pc1HNoxA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" + "@algolia/client-common": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" }, "engines": { "node": ">= 14.0.0" @@ -261,177 +181,125 @@ "license": "MIT" }, "node_modules/@algolia/ingestion": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.18.0.tgz", - "integrity": "sha512-bGvJg7HnGGm+XWYMDruZXWgMDPVt4yCbBqq8DM6EoaMBK71SYC4WMfIdJaw+ABqttjBhe6aKNRkWf/bbvYOGyw==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.24.0.tgz", + "integrity": "sha512-/lqVxmrvwoA+OyVK4XLMdz/PJaCTW4qYchX1AZ+98fdnH3K6XM/kMydQLfP0bUNGBQbmVrF88MqhqZRnZEn/MA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" + "@algolia/client-common": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@algolia/logger-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", - "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==", - "license": "MIT" - }, - "node_modules/@algolia/logger-console": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz", - "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==", - "license": "MIT", - "dependencies": { - "@algolia/logger-common": "4.24.0" - } - }, "node_modules/@algolia/monitoring": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.18.0.tgz", - "integrity": "sha512-lBssglINIeGIR+8KyzH05NAgAmn1BCrm5D2T6pMtr/8kbTHvvrm1Zvcltc5dKUQEFyyx3J5+MhNc7kfi8LdjVw==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.24.0.tgz", + "integrity": "sha512-cRisDXQJhvfZCXL4hD22qca2CmW52TniOx6L7pvkaBDx0oQk1k9o+3w11fgfcCG+47OndMeNx5CMpu+K+COMzg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" + "@algolia/client-common": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", - "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.24.0.tgz", + "integrity": "sha512-JTMz0JqN2gidvKa2QCF/rMe8LNtdHaght03px2cluZaZfBRYy8TgHgkCeBspKKvV/abWJwl7J0FzWThCshqT3w==", "license": "MIT", "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.18.0.tgz", - "integrity": "sha512-1XFjW0C3pV0dS/9zXbV44cKI+QM4ZIz9cpatXpsjRlq6SUCpLID3DZHsXyE6sTb8IhyPaUjk78GEJT8/3hviqg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.18.0" + "@algolia/client-common": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@algolia/requester-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz", - "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==", - "license": "MIT" - }, - "node_modules/@algolia/requester-fetch": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.18.0.tgz", - "integrity": "sha512-0uodeNdAHz1YbzJh6C5xeQ4T6x5WGiUxUq3GOaT/R4njh5t78dq+Rb187elr7KtnjUmETVVuCvmEYaThfTHzNg==", + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.24.0.tgz", + "integrity": "sha512-B2Gc+iSxct1WSza5CF6AgfNgmLvVb61d5bqmIWUZixtJIhyAC6lSQZuF+nvt+lmKhQwuY2gYjGGClil8onQvKQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.18.0" + "@algolia/client-common": "5.24.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.24.0.tgz", + "integrity": "sha512-6E5+hliqGc5w8ZbyTAQ+C3IGLZ/GiX623Jl2bgHA974RPyFWzVSj4rKqkboUAxQmrFY7Z02ybJWVZS5OhPQocA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.24.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.18.0.tgz", - "integrity": "sha512-tZCqDrqJ2YE2I5ukCQrYN8oiF6u3JIdCxrtKq+eniuLkjkO78TKRnXrVcKZTmfFJyyDK8q47SfDcHzAA3nHi6w==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.24.0.tgz", + "integrity": "sha512-zM+nnqZpiQj20PyAh6uvgdSz+hD7Rj7UfAZwizqNP+bLvcbGXZwABERobuilkCQqyDBBH4uv0yqIcPRl8dSBEg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.18.0" + "@algolia/client-common": "5.24.0" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@algolia/transporter": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz", - "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==", - "license": "MIT", - "dependencies": { - "@algolia/cache-common": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/requester-common": "4.24.0" - } - }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, + "node_modules/@antfu/install-pkg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz", + "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^0.2.8", + "tinyexec": "^0.3.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz", - "integrity": "sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==", + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", + "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", @@ -446,44 +314,44 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.1.tgz", + "integrity": "sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", + "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helpers": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -502,18 +370,19 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -523,25 +392,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.1.tgz", + "integrity": "sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -560,17 +429,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", "semver": "^6.3.1" }, "engines": { @@ -590,12 +459,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, @@ -610,14 +479,15 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", + "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -631,40 +501,40 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -674,35 +544,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -712,14 +582,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -729,79 +599,79 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.1.tgz", + "integrity": "sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.27.1" }, "bin": { "parser": "bin/babel-parser.js" @@ -811,13 +681,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -827,12 +697,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -842,12 +712,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "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.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "version": "7.27.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.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -857,14 +727,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -874,13 +744,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -893,6 +763,7 @@ "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==", + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -904,6 +775,7 @@ "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==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -912,12 +784,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -927,12 +799,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -942,12 +814,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -957,12 +829,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -975,6 +847,7 @@ "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==", + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -987,12 +860,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1002,14 +875,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", + "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1019,14 +892,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1036,12 +909,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1051,12 +924,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz", + "integrity": "sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1066,13 +939,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1082,13 +955,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1098,16 +971,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", + "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.27.1", "globals": "^11.1.0" }, "engines": { @@ -1118,13 +991,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1134,12 +1007,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz", + "integrity": "sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1149,13 +1022,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1165,12 +1038,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1180,13 +1053,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1196,12 +1069,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1211,12 +1084,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1226,12 +1099,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1241,13 +1114,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1257,14 +1130,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1274,12 +1147,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1289,12 +1162,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1304,12 +1177,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1319,12 +1192,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1334,13 +1207,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1350,13 +1223,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1366,15 +1239,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1384,13 +1257,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1400,13 +1273,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1416,12 +1289,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1431,12 +1304,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1446,12 +1319,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1461,14 +1334,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.1.tgz", + "integrity": "sha512-/sSliVc9gHE20/7D5qsdGlq7RG5NCDTWsAhyqzGuq174EtWJoGzIu1BQ7G56eDsTcy1jseBZwv50olSdXOlGuA==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1478,13 +1351,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1494,12 +1367,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1509,13 +1382,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1525,12 +1398,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", + "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1540,13 +1413,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1556,14 +1429,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1573,12 +1446,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1588,12 +1461,12 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz", - "integrity": "sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1603,12 +1476,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", + "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1618,16 +1491,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1637,12 +1510,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" + "@babel/plugin-transform-react-jsx": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1652,13 +1525,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1668,13 +1541,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz", + "integrity": "sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1684,13 +1556,13 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1700,12 +1572,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1715,15 +1587,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.1.tgz", + "integrity": "sha512-TqGF3desVsTcp3WrJGj4HfKokfCXCLcHpt4PJF0D8/iT6LPd9RS82Upw3KPeyr6B22Lfd3DO8MVrmp0oRkUDdw==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -1744,12 +1616,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1759,13 +1631,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1775,12 +1647,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1790,12 +1662,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1805,12 +1677,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1820,16 +1692,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.3.tgz", - "integrity": "sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1839,12 +1711,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1854,13 +1726,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1870,13 +1742,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1886,13 +1758,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1902,79 +1774,79 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.1.tgz", + "integrity": "sha512-TZ5USxFpLgKDpdEt8YWBR7p6g+bZo6sHaXLqP2BY/U0acaoI8FTVflcYCr/v94twM1C5IWFdZ/hscq9WjUeLXA==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/compat-data": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.27.1", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.27.1", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.27.1", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.27.1", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.27.1", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", + "core-js-compat": "^3.40.0", "semver": "^6.3.1" }, "engines": { @@ -1988,6 +1860,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -1996,6 +1869,7 @@ "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==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -2006,17 +1880,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", - "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2026,16 +1900,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2045,55 +1919,51 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz", - "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.1.tgz", + "integrity": "sha512-909rVuj3phpjW6y0MCXAZ5iNeORePa6ldJvp2baWGcTjwqbBDDz6xoS5JHJ7lS88NlwLYj07ImL/8IUMtDZzTA==", "license": "MIT", "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" + "core-js-pure": "^3.30.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.1.tgz", + "integrity": "sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2102,27 +1972,68 @@ } }, "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@braintree/sanitize-url": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", - "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz", + "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==", + "license": "MIT" + }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", + "license": "Apache-2.0" }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -2152,9 +2063,9 @@ } }, "node_modules/@csstools/color-helpers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", - "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", + "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", "funding": [ { "type": "github", @@ -2171,9 +2082,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.0.tgz", - "integrity": "sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.3.tgz", + "integrity": "sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw==", "funding": [ { "type": "github", @@ -2194,9 +2105,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.6.tgz", - "integrity": "sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.9.tgz", + "integrity": "sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw==", "funding": [ { "type": "github", @@ -2209,8 +2120,8 @@ ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.0.1", - "@csstools/css-calc": "^2.1.0" + "@csstools/color-helpers": "^5.0.2", + "@csstools/css-calc": "^2.1.3" }, "engines": { "node": ">=18" @@ -2333,9 +2244,9 @@ } }, "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -2346,9 +2257,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.6.tgz", - "integrity": "sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.9.tgz", + "integrity": "sha512-2UeQCGMO5+EeQsPQK2DqXp0dad+P6nIz6G2dI06APpBuYBKxZEq7CTH+UiztFQ8cB1f89dnO9+D/Kfr+JfI2hw==", "funding": [ { "type": "github", @@ -2361,10 +2272,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2375,9 +2286,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.6.tgz", - "integrity": "sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.9.tgz", + "integrity": "sha512-Enj7ZIIkLD7zkGCN31SZFx4H1gKiCs2Y4taBo/v/cqaHN7p1qGrf5UTMNSjQFZ7MgClGufHx4pddwFTGL+ipug==", "funding": [ { "type": "github", @@ -2390,10 +2301,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2404,9 +2315,9 @@ } }, "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", - "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.5.tgz", + "integrity": "sha512-9BOS535v6YmyOYk32jAHXeddRV+iyd4vRcbrEekpwxmueAXX5J8WgbceFnE4E4Pmw/ysnB9v+n/vSWoFmcLMcA==", "funding": [ { "type": "github", @@ -2421,7 +2332,7 @@ "dependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2432,9 +2343,9 @@ } }, "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.5.tgz", - "integrity": "sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.8.tgz", + "integrity": "sha512-vHgDXtGIBPpFQnFNDftMQg4MOuXcWnK91L/7REjBNYzQ/p2Fa/6RcnehTqCRrNtQ46PNIolbRsiDdDuxiHolwQ==", "funding": [ { "type": "github", @@ -2447,7 +2358,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", + "@csstools/css-calc": "^2.1.3", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -2485,9 +2396,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.6.tgz", - "integrity": "sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.9.tgz", + "integrity": "sha512-quksIsFm3DGsf8Qbr9KiSGBF2w3RwxSfOfma5wbORDB1AFF15r4EVW7sUuWw3s5IAEGMqzel/dE2rQsI7Yb8mA==", "funding": [ { "type": "github", @@ -2500,7 +2411,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -2512,9 +2423,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.6.tgz", - "integrity": "sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.9.tgz", + "integrity": "sha512-duqTeUHF4ambUybAmhX9KonkicLM/WNp2JjMUbegRD4O8A/tb6fdZ7jUNdp/UUiO1FIdDkMwmNw6856bT0XF8Q==", "funding": [ { "type": "github", @@ -2527,10 +2438,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2541,9 +2452,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.6.tgz", - "integrity": "sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.9.tgz", + "integrity": "sha512-sDpdPsoGAhYl/PMSYfu5Ez82wXb2bVkg1Cb8vsRLhpXhAk4OSlsJN+GodAql6tqc1B2G/WToxsFU6G74vkhPvA==", "funding": [ { "type": "github", @@ -2556,10 +2467,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2570,9 +2481,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", - "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.1.tgz", + "integrity": "sha512-lECc38i1w3qU9nhrUhP6F8y4BfcQJkR1cb8N6tZNf2llM6zPkxnqt04jRCwsUgNcB3UGKDy+zLenhOYGHqCV+Q==", "funding": [ { "type": "github", @@ -2585,7 +2496,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -2597,9 +2508,9 @@ } }, "node_modules/@csstools/postcss-initial": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz", - "integrity": "sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", + "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", "funding": [ { "type": "github", @@ -2667,9 +2578,9 @@ } }, "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -2680,9 +2591,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", - "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.8.tgz", + "integrity": "sha512-v8VU5WtrZIyEtk88WB4fkG22TGd8HyAfSFfZZQ1uNN0+arMJdZc++H3KYTfbYDpJRGy8GwADYH8ySXiILn+OyA==", "funding": [ { "type": "github", @@ -2697,7 +2608,7 @@ "dependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2825,9 +2736,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.5.tgz", - "integrity": "sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.8.tgz", + "integrity": "sha512-Skum5wIXw2+NyCQWUyfstN3c1mfSh39DRAo+Uh2zzXOglBG8xB9hnArhYFScuMZkzeM+THVa//mrByKAfumc7w==", "funding": [ { "type": "github", @@ -2840,7 +2751,7 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.1.0", + "@csstools/css-calc": "^2.1.3", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/media-query-list-parser": "^4.0.2" @@ -2931,9 +2842,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.6.tgz", - "integrity": "sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.9.tgz", + "integrity": "sha512-UHrnujimwtdDw8BYDcWJtBXuJ13uc/BjAddPdfMc/RsWxhg8gG8UbvTF0tnMtHrZ4i7lwy85fPEzK1AiykMyRA==", "funding": [ { "type": "github", @@ -2946,10 +2857,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2960,9 +2871,9 @@ } }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", - "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.1.tgz", + "integrity": "sha512-Ofz81HaY8mmbP8/Qr3PZlUzjsyV5WuxWmvtYn+jhYGvvjFazTmN9R2io5W5znY1tyk2CA9uM0IPWyY4ygDytCw==", "funding": [ { "type": "github", @@ -2985,9 +2896,9 @@ } }, "node_modules/@csstools/postcss-random-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.1.tgz", - "integrity": "sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.0.tgz", + "integrity": "sha512-MYZKxSr4AKfjECL8vg49BbfNNzK+t3p2OWX+Xf7rXgMaTP44oy/e8VGWu4MLnJ3NUd9tFVkisLO/sg+5wMTNsg==", "funding": [ { "type": "github", @@ -3000,7 +2911,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", + "@csstools/css-calc": "^2.1.3", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -3012,9 +2923,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.6.tgz", - "integrity": "sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.9.tgz", + "integrity": "sha512-+AGOcLF5PmMnTRPnOdCvY7AwvD5veIOhTWbJV6vC3hB1tt0ii/k6QOwhWfsGGg1ZPQ0JY15u+wqLR4ZTtB0luA==", "funding": [ { "type": "github", @@ -3027,10 +2938,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -3066,9 +2977,9 @@ } }, "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -3079,9 +2990,9 @@ } }, "node_modules/@csstools/postcss-sign-functions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.0.tgz", - "integrity": "sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.3.tgz", + "integrity": "sha512-4F4GRhj8xNkBtLZ+3ycIhReaDfKJByXI+cQGIps3AzCO8/CJOeoDPxpMnL5vqZrWKOceSATHEQJUO/Q/r2y7OQ==", "funding": [ { "type": "github", @@ -3094,7 +3005,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", + "@csstools/css-calc": "^2.1.3", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -3106,9 +3017,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.5.tgz", - "integrity": "sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.8.tgz", + "integrity": "sha512-6Y4yhL4fNhgzbZ/wUMQ4EjFUfoNNMpEXZnDw1JrlcEBHUT15gplchtFsZGk7FNi8PhLHJfCUwVKrEHzhfhKK+g==", "funding": [ { "type": "github", @@ -3121,7 +3032,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", + "@csstools/css-calc": "^2.1.3", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -3133,9 +3044,9 @@ } }, "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz", - "integrity": "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.2.tgz", + "integrity": "sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==", "funding": [ { "type": "github", @@ -3148,7 +3059,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/color-helpers": "^5.0.1", + "@csstools/color-helpers": "^5.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -3159,9 +3070,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.5.tgz", - "integrity": "sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.8.tgz", + "integrity": "sha512-YcDvYTRu7f78/91B6bX+mE1WoAO91Su7/8KSRpuWbIGUB8hmaNSRu9wziaWSLJ1lOB1aQe+bvo9BIaLKqPOo/g==", "funding": [ { "type": "github", @@ -3174,7 +3085,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", + "@csstools/css-calc": "^2.1.3", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, @@ -3239,26 +3150,26 @@ } }, "node_modules/@docsearch/css": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz", - "integrity": "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", + "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==", "license": "MIT" }, "node_modules/@docsearch/react": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.2.tgz", - "integrity": "sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", + "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-core": "1.17.7", - "@algolia/autocomplete-preset-algolia": "1.17.7", - "@docsearch/css": "3.8.2", + "@algolia/autocomplete-core": "1.17.9", + "@algolia/autocomplete-preset-algolia": "1.17.9", + "@docsearch/css": "3.9.0", "algoliasearch": "^5.14.2" }, "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0", + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0", "search-insights": ">= 1 < 3" }, "peerDependenciesMeta": { @@ -3276,79 +3187,10 @@ } } }, - "node_modules/@docsearch/react/node_modules/@algolia/client-analytics": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.18.0.tgz", - "integrity": "sha512-0VpGG2uQW+h2aejxbG8VbnMCQ9ary9/ot7OASXi6OjE0SRkYQ/+pkW+q09+IScif3pmsVVYggmlMPtAsmYWHng==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/client-personalization": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.18.0.tgz", - "integrity": "sha512-I2dc94Oiwic3SEbrRp8kvTZtYpJjGtg5y5XnqubgnA15AgX59YIY8frKsFG8SOH1n2rIhUClcuDkxYQNXJLg+w==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/recommend": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.18.0.tgz", - "integrity": "sha512-uSnkm0cdAuFwdMp4pGT5vHVQ84T6AYpTZ3I0b3k/M3wg4zXDhl3aCiY8NzokEyRLezz/kHLEEcgb/tTTobOYVw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/algoliasearch": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.18.0.tgz", - "integrity": "sha512-/tfpK2A4FpS0o+S78o3YSdlqXr0MavJIDlFK3XZrlXLy7vaRXJvW5jYg3v5e/wCaF8y0IpMjkYLhoV6QqfpOgw==", - "license": "MIT", - "dependencies": { - "@algolia/client-abtesting": "5.18.0", - "@algolia/client-analytics": "5.18.0", - "@algolia/client-common": "5.18.0", - "@algolia/client-insights": "5.18.0", - "@algolia/client-personalization": "5.18.0", - "@algolia/client-query-suggestions": "5.18.0", - "@algolia/client-search": "5.18.0", - "@algolia/ingestion": "1.18.0", - "@algolia/monitoring": "1.18.0", - "@algolia/recommend": "5.18.0", - "@algolia/requester-browser-xhr": "5.18.0", - "@algolia/requester-fetch": "5.18.0", - "@algolia/requester-node-http": "5.18.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, "node_modules/@docusaurus/babel": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.6.3.tgz", - "integrity": "sha512-7dW9Hat9EHYCVicFXYA4hjxBY38+hPuCURL8oRF9fySRm7vzNWuEOghA1TXcykuXZp0HLG2td4RhDxCvGG7tNw==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.7.0.tgz", + "integrity": "sha512-0H5uoJLm14S/oKV3Keihxvh8RV+vrid+6Gv+2qhuzbqHanawga8tYnsdpjEyt36ucJjqlby2/Md2ObWjA02UXQ==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", @@ -3361,8 +3203,8 @@ "@babel/runtime": "^7.25.9", "@babel/runtime-corejs3": "^7.25.9", "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.6.3", - "@docusaurus/utils": "3.6.3", + "@docusaurus/logger": "3.7.0", + "@docusaurus/utils": "3.7.0", "babel-plugin-dynamic-import-node": "^2.3.3", "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -3372,17 +3214,17 @@ } }, "node_modules/@docusaurus/bundler": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.6.3.tgz", - "integrity": "sha512-47JLuc8D4wA+6VOvmMd5fUC9rFppBQpQOnxDYiVXffm/DeV/wmm3sbpNd5Y+O+G2+nevLTRnvCm/qyancv0Y3A==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.7.0.tgz", + "integrity": "sha512-CUUT9VlSGukrCU5ctZucykvgCISivct+cby28wJwCC/fkQFgAHRp/GKv2tx38ZmXb7nacrKzFTcp++f9txUYGg==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.6.3", - "@docusaurus/cssnano-preset": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", + "@docusaurus/babel": "3.7.0", + "@docusaurus/cssnano-preset": "3.7.0", + "@docusaurus/logger": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils": "3.7.0", "babel-loader": "^9.2.1", "clean-css": "^5.3.2", "copy-webpack-plugin": "^11.0.0", @@ -3416,18 +3258,18 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.3.tgz", - "integrity": "sha512-xL7FRY9Jr5DWqB6pEnqgKqcMPJOX5V0pgWXi5lCiih11sUBmcFKM7c3+GyxcVeeWFxyYSDP3grLTWqJoP4P9Vw==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.7.0.tgz", + "integrity": "sha512-b0fUmaL+JbzDIQaamzpAFpTviiaU4cX3Qz8cuo14+HGBCwa0evEK0UYCBFY3n4cLzL8Op1BueeroUD2LYAIHbQ==", "license": "MIT", "dependencies": { - "@docusaurus/babel": "3.6.3", - "@docusaurus/bundler": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/babel": "3.7.0", + "@docusaurus/bundler": "3.7.0", + "@docusaurus/logger": "3.7.0", + "@docusaurus/mdx-loader": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-common": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "boxen": "^6.2.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", @@ -3448,13 +3290,12 @@ "p-map": "^4.0.0", "prompts": "^2.4.2", "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", "react-loadable-ssr-addon-v5-slorber": "^1.0.1", "react-router": "^5.3.4", "react-router-config": "^5.1.1", "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", "semver": "^7.5.4", "serve-handler": "^6.1.6", "shelljs": "^0.8.5", @@ -3473,28 +3314,14 @@ }, "peerDependencies": { "@mdx-js/react": "^3.0.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/core/node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" - }, - "engines": { - "node": ">=18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.6.3.tgz", - "integrity": "sha512-qP7SXrwZ+23GFJdPN4aIHQrZW+oH/7tzwEuc/RNL0+BdZdmIjYQqUxdXsjE4lFxLNZjj0eUrSNYIS6xwfij+5Q==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.7.0.tgz", + "integrity": "sha512-X9GYgruZBSOozg4w4dzv9uOz8oK/EpPVQXkp0MM6Tsgp/nRIU9hJzJ0Pxg1aRa3xCeEQTOimZHcocQFlLwYajQ==", "license": "MIT", "dependencies": { "cssnano-preset-advanced": "^6.1.2", @@ -3507,9 +3334,9 @@ } }, "node_modules/@docusaurus/logger": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.3.tgz", - "integrity": "sha512-xSubJixcNyMV9wMV4q0s47CBz3Rlc5jbcCCuij8pfQP8qn/DIpt0ks8W6hQWzHAedg/J/EwxxUOUrnEoKzJo8g==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.7.0.tgz", + "integrity": "sha512-z7g62X7bYxCYmeNNuO9jmzxLQG95q9QxINCwpboVcNff3SJiHJbGrarxxOVMVmAh1MsrSfxWkVGv4P41ktnFsA==", "license": "MIT", "dependencies": { "chalk": "^4.1.2", @@ -3520,14 +3347,14 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.6.3.tgz", - "integrity": "sha512-3iJdiDz9540ppBseeI93tWTDtUGVkxzh59nMq4ignylxMuXBLK8dFqVeaEor23v1vx6TrGKZ2FuLaTB+U7C0QQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.7.0.tgz", + "integrity": "sha512-OFBG6oMjZzc78/U3WNPSHs2W9ZJ723ewAcvVJaqS0VgyeUfmzUV8f1sv+iUHA0DtwiR5T5FjOxj6nzEE8LY6VA==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/logger": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -3554,22 +3381,22 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.3.tgz", - "integrity": "sha512-MjaXX9PN/k5ugNvfRZdWyKWq4FsrhN4LEXaj0pEmMebJuBNlFeGyKQUa9DRhJHpadNaiMLrbo9m3U7Ig5YlsZg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.7.0.tgz", + "integrity": "sha512-g7WdPqDNaqA60CmBrr0cORTrsOit77hbsTj7xE2l71YhBn79sxdm7WMK7wfhcaafkbpIh7jv5ef5TOpf1Xv9Lg==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.6.3", + "@docusaurus/types": "3.7.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", "@types/react-router-dom": "*", - "react-helmet-async": "*", + "react-helmet-async": "npm:@slorber/react-helmet-async@*", "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" }, "peerDependencies": { @@ -3578,19 +3405,19 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.6.3.tgz", - "integrity": "sha512-k0ogWwwJU3pFRFfvW1kRVHxzf2DutLGaaLjAnHVEU6ju+aRP0Z5ap/13DHyPOfHeE4WKpn/M0TqjdwZAcY3kAw==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.7.0.tgz", + "integrity": "sha512-EFLgEz6tGHYWdPU0rK8tSscZwx+AsyuBW/r+tNig2kbccHYGUJmZtYN38GjAa3Fda4NU+6wqUO5kTXQSRBQD3g==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/logger": "3.7.0", + "@docusaurus/mdx-loader": "3.7.0", + "@docusaurus/theme-common": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-common": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "cheerio": "1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", @@ -3607,25 +3434,25 @@ }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.3.tgz", - "integrity": "sha512-r2wS8y/fsaDcxkm20W5bbYJFPzdWdEaTWVYjNxlHlcmX086eqQR1Fomlg9BHTJ0dLXPzAlbC8EN4XqMr3QzNCQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.7.0.tgz", + "integrity": "sha512-GXg5V7kC9FZE4FkUZA8oo/NrlRb06UwuICzI6tcbzj0+TVgjq/mpUXXzSgKzMS82YByi4dY2Q808njcBCyy6tQ==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/logger": "3.7.0", + "@docusaurus/mdx-loader": "3.7.0", + "@docusaurus/module-type-aliases": "3.7.0", + "@docusaurus/theme-common": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-common": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", @@ -3639,21 +3466,21 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.6.3.tgz", - "integrity": "sha512-eHrmTgjgLZsuqfsYr5X2xEwyIcck0wseSofWrjTwT9FLOWp+KDmMAuVK+wRo7sFImWXZk3oV/xX/g9aZrhD7OA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.7.0.tgz", + "integrity": "sha512-YJSU3tjIJf032/Aeao8SZjFOrXJbz/FACMveSMjLyMH4itQyZ2XgUIzt4y+1ISvvk5zrW4DABVT2awTCqBkx0Q==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/mdx-loader": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" @@ -3662,19 +3489,19 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.6.3.tgz", - "integrity": "sha512-zB9GXfIZNPRfzKnNjU6xGVrqn9bPXuGhpjgsuc/YtcTDjnjhasg38NdYd5LEqXex5G/zIorQgWB3n6x/Ut62vQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.7.0.tgz", + "integrity": "sha512-Qgg+IjG/z4svtbCNyTocjIwvNTNEwgRjSXXSJkKVG0oWoH0eX/HAPiu+TS1HBwRPQV+tTYPWLrUypYFepfujZA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils": "3.7.0", "fs-extra": "^11.1.1", "react-json-view-lite": "^1.2.0", "tslib": "^2.6.0" @@ -3683,38 +3510,38 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.6.3.tgz", - "integrity": "sha512-rCDNy1QW8Dag7nZq67pcum0bpFLrwvxJhYuVprhFh8BMBDxV0bY+bAkGHbSf68P3Bk9C3hNOAXX1srGLIDvcTA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.7.0.tgz", + "integrity": "sha512-otIqiRV/jka6Snjf+AqB360XCeSv7lQC+DKYW+EUZf6XbuE8utz5PeUQ8VuOcD8Bk5zvT1MC4JKcd5zPfDuMWA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "tslib": "^2.6.0" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.6.3.tgz", - "integrity": "sha512-+OyDvhM6rqVkQOmLVkQWVJAizEEfkPzVWtIHXlWPOCFGK9X4/AWeBSrU0WG4iMg9Z4zD4YDRrU+lvI4s6DSC+w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.7.0.tgz", + "integrity": "sha512-M3vrMct1tY65ModbyeDaMoA+fNJTSPe5qmchhAbtqhDD/iALri0g9LrEpIOwNaoLmm6lO88sfBUADQrSRSGSWA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, @@ -3722,41 +3549,41 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.6.3.tgz", - "integrity": "sha512-1M6UPB13gWUtN2UHX083/beTn85PlRI9ABItTl/JL1FJ5dJTWWFXXsHf9WW/6hrVwthwTeV/AGbGKvLKV+IlCA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.7.0.tgz", + "integrity": "sha512-X8U78nb8eiMiPNg3jb9zDIVuuo/rE1LjGDGu+5m5CX4UBZzjMy+klOY2fNya6x8ACyE/L3K2erO1ErheP55W/w==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "tslib": "^2.6.0" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.6.3.tgz", - "integrity": "sha512-94qOO4M9Fwv9KfVQJsgbe91k+fPJ4byf1L3Ez8TUa6TAFPo/BrLwQ80zclHkENlL1824TuxkcMKv33u6eydQCg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.7.0.tgz", + "integrity": "sha512-bTRT9YLZ/8I/wYWKMQke18+PF9MV8Qub34Sku6aw/vlZ/U+kuEuRpQ8bTcNOjaTSfYsWkK4tTwDMHK2p5S86cA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/logger": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-common": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" @@ -3765,57 +3592,81 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.6.3.tgz", - "integrity": "sha512-VHSYWROT3flvNNI1SrnMOtW1EsjeHNK9dhU6s9eY5hryZe79lUqnZJyze/ymDe2LXAqzyj6y5oYvyBoZZk6ErA==", + "node_modules/@docusaurus/plugin-svgr": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.7.0.tgz", + "integrity": "sha512-HByXIZTbc4GV5VAUkZ2DXtXv1Qdlnpk3IpuImwSnEzCDBkUMYcec5282hPjn6skZqB25M1TYCmWS91UbhBGxQg==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/plugin-content-blog": "3.6.3", - "@docusaurus/plugin-content-docs": "3.6.3", - "@docusaurus/plugin-content-pages": "3.6.3", - "@docusaurus/plugin-debug": "3.6.3", - "@docusaurus/plugin-google-analytics": "3.6.3", - "@docusaurus/plugin-google-gtag": "3.6.3", - "@docusaurus/plugin-google-tag-manager": "3.6.3", - "@docusaurus/plugin-sitemap": "3.6.3", - "@docusaurus/theme-classic": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/theme-search-algolia": "3.6.3", - "@docusaurus/types": "3.6.3" + "@docusaurus/core": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", + "@svgr/core": "8.1.0", + "@svgr/webpack": "^8.1.0", + "tslib": "^2.6.0", + "webpack": "^5.88.1" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.7.0.tgz", + "integrity": "sha512-nPHj8AxDLAaQXs+O6+BwILFuhiWbjfQWrdw2tifOClQoNfuXDjfjogee6zfx6NGHWqshR23LrcN115DmkHC91Q==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.7.0", + "@docusaurus/plugin-content-blog": "3.7.0", + "@docusaurus/plugin-content-docs": "3.7.0", + "@docusaurus/plugin-content-pages": "3.7.0", + "@docusaurus/plugin-debug": "3.7.0", + "@docusaurus/plugin-google-analytics": "3.7.0", + "@docusaurus/plugin-google-gtag": "3.7.0", + "@docusaurus/plugin-google-tag-manager": "3.7.0", + "@docusaurus/plugin-sitemap": "3.7.0", + "@docusaurus/plugin-svgr": "3.7.0", + "@docusaurus/theme-classic": "3.7.0", + "@docusaurus/theme-common": "3.7.0", + "@docusaurus/theme-search-algolia": "3.7.0", + "@docusaurus/types": "3.7.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-classic": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.6.3.tgz", - "integrity": "sha512-1RRLK1tSArI2c00qugWYO3jRocjOZwGF1mBzPPylDVRwWCS/rnWWR91ChdbbaxIupRJ+hX8ZBYrwr5bbU0oztQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.7.0.tgz", + "integrity": "sha512-MnLxG39WcvLCl4eUzHr0gNcpHQfWoGqzADCly54aqCofQX6UozOS9Th4RK3ARbM9m7zIRv3qbhggI53dQtx/hQ==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/plugin-content-blog": "3.6.3", - "@docusaurus/plugin-content-docs": "3.6.3", - "@docusaurus/plugin-content-pages": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/theme-translations": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/logger": "3.7.0", + "@docusaurus/mdx-loader": "3.7.0", + "@docusaurus/module-type-aliases": "3.7.0", + "@docusaurus/plugin-content-blog": "3.7.0", + "@docusaurus/plugin-content-docs": "3.7.0", + "@docusaurus/plugin-content-pages": "3.7.0", + "@docusaurus/theme-common": "3.7.0", + "@docusaurus/theme-translations": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-common": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", @@ -3834,20 +3685,20 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-common": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.6.3.tgz", - "integrity": "sha512-b8ZkhczXHDxWWyvz+YJy4t/PlPbEogTTbgnHoflYnH7rmRtyoodTsu8WVM12la5LmlMJBclBXFl29OH8kPE7gg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.7.0.tgz", + "integrity": "sha512-8eJ5X0y+gWDsURZnBfH0WabdNm8XMCXHv8ENy/3Z/oQKwaB/EHt5lP9VsTDTf36lKEp0V6DjzjFyFIB+CetL0A==", "license": "MIT", "dependencies": { - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", + "@docusaurus/mdx-loader": "3.7.0", + "@docusaurus/module-type-aliases": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-common": "3.7.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3862,21 +3713,21 @@ }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-mermaid": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.6.3.tgz", - "integrity": "sha512-kIqpjNCP/9R2GGf8UmiDxD3CkOAEJuJIEFlaKMgQtjVxa/vH+9PLI1+DFbArGoG4+0ENTYUq8phHPW7SeL36uQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.7.0.tgz", + "integrity": "sha512-7kNDvL7hm+tshjxSxIqYMtsLUPsEBYnkevej/ext6ru9xyLgCed+zkvTfGzTWNeq8rJIEe2YSS8/OV5gCVaPCw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.7.0", + "@docusaurus/module-type-aliases": "3.7.0", + "@docusaurus/theme-common": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", "mermaid": ">=10.4", "tslib": "^2.6.0" }, @@ -3884,26 +3735,26 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.6.3.tgz", - "integrity": "sha512-rt+MGCCpYgPyWCGXtbxlwFbTSobu15jWBTPI2LHsHNa5B0zSmOISX6FWYAPt5X1rNDOqMGM0FATnh7TBHRohVA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.7.0.tgz", + "integrity": "sha512-Al/j5OdzwRU1m3falm+sYy9AaB93S1XF1Lgk9Yc6amp80dNxJVplQdQTR4cYdzkGtuQqbzUA8+kaoYYO0RbK6g==", "license": "MIT", "dependencies": { - "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/plugin-content-docs": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/theme-translations": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "algoliasearch": "^4.18.0", - "algoliasearch-helper": "^3.13.3", + "@docsearch/react": "^3.8.1", + "@docusaurus/core": "3.7.0", + "@docusaurus/logger": "3.7.0", + "@docusaurus/plugin-content-docs": "3.7.0", + "@docusaurus/theme-common": "3.7.0", + "@docusaurus/theme-translations": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", + "algoliasearch": "^5.17.1", + "algoliasearch-helper": "^3.22.6", "clsx": "^2.0.0", "eta": "^2.2.0", "fs-extra": "^11.1.1", @@ -3915,14 +3766,14 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.6.3.tgz", - "integrity": "sha512-Gb0regclToVlngSIIwUCtBMQBq48qVUaN1XQNKW4XwlsgUyk0vP01LULdqbem7czSwIeBAFXFoORJ0RPX7ht/w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.7.0.tgz", + "integrity": "sha512-Ewq3bEraWDmienM6eaNK7fx+/lHMtGDHQyd1O+4+3EsDxxUmrzPkV7Ct3nBWTuE0MsoZr3yNwQVKjllzCMuU3g==", "license": "MIT", "dependencies": { "fs-extra": "^11.1.1", @@ -3933,9 +3784,9 @@ } }, "node_modules/@docusaurus/types": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.3.tgz", - "integrity": "sha512-xD9oTGDrouWzefkhe9ogB2fDV96/82cRpNGx2HIvI5L87JHNhQVIWimQ/3JIiiX/TEd5S9s+VO6FFguwKNRVow==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.7.0.tgz", + "integrity": "sha512-kOmZg5RRqJfH31m+6ZpnwVbkqMJrPOG5t0IOl4i/+3ruXyNfWzZ0lVtVrD0u4ONc/0NOsS9sWYaxxWNkH1LdLQ==", "license": "MIT", "dependencies": { "@mdx-js/mdx": "^3.0.0", @@ -3943,26 +3794,39 @@ "@types/react": "*", "commander": "^5.1.0", "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "utility-types": "^3.10.0", "webpack": "^5.95.0", "webpack-merge": "^5.9.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/types/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==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" } }, "node_modules/@docusaurus/utils": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.3.tgz", - "integrity": "sha512-0R/FR3bKVl4yl8QwbL4TYFfR+OXBRpVUaTJdENapBGR3YMwfM6/JnhGilWQO8AOwPJGtGoDK7ib8+8UF9f3OZQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.7.0.tgz", + "integrity": "sha512-e7zcB6TPnVzyUaHMJyLSArKa2AG3h9+4CfvKXKKWNx6hRs+p0a+u7HHTJBgo6KW2m+vqDnuIHK4X+bhmoghAFA==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@svgr/webpack": "^8.1.0", + "@docusaurus/logger": "3.7.0", + "@docusaurus/types": "3.7.0", + "@docusaurus/utils-common": "3.7.0", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", @@ -3986,12 +3850,12 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.3.tgz", - "integrity": "sha512-v4nKDaANLgT3pMBewHYEMAl/ufY0LkXao1QkFWzI5huWFOmNQ2UFzv2BiKeHX5Ownis0/w6cAyoxPhVdDonlSQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.7.0.tgz", + "integrity": "sha512-IZeyIfCfXy0Mevj6bWNg7DG7B8G+S6o6JVpddikZtWyxJguiQ7JYr0SIZ0qWd8pGNuMyVwriWmbWqMnK7Y5PwA==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.6.3", + "@docusaurus/types": "3.7.0", "tslib": "^2.6.0" }, "engines": { @@ -3999,14 +3863,14 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.3.tgz", - "integrity": "sha512-bhEGGiN5BE38h21vjqD70Gxg++j+PfYVddDUE5UFvLDup68QOcpD33CLr+2knPorlxRbEaNfz6HQDUMQ3HuqKw==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.7.0.tgz", + "integrity": "sha512-w8eiKk8mRdN+bNfeZqC4nyFoxNyI1/VExMKAzD9tqpJfLLbsa46Wfn5wcKH761g9WkKh36RtFV49iL9lh1DYBA==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", + "@docusaurus/logger": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-common": "3.7.0", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", @@ -4056,6 +3920,40 @@ "react-hook-form": "^7.0.0" } }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.0.0", + "@antfu/utils": "^8.1.0", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.14.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "mlly": "^1.7.4" + } + }, + "node_modules/@iconify/utils/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -4144,9 +4042,10 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -4161,18 +4060,20 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "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==", + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@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==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", @@ -4197,9 +4098,9 @@ "license": "MIT" }, "node_modules/@mdx-js/mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz", - "integrity": "sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -4208,14 +4109,15 @@ "@types/mdx": "^2.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", - "estree-util-to-js": "^2.0.0", + "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", - "hast-util-to-estree": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", - "periscopic": "^3.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", @@ -4248,10 +4150,20 @@ "react": ">=16" } }, + "node_modules/@mermaid-js/parser": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.4.0.tgz", + "integrity": "sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==", + "license": "MIT", + "dependencies": { + "langium": "3.3.1" + } + }, "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==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -4264,6 +4176,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -4272,6 +4185,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -4281,9 +4195,9 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", - "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", "hasInstallScript": true, "license": "MIT", "optional": true, @@ -4301,25 +4215,25 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.0", - "@parcel/watcher-darwin-arm64": "2.5.0", - "@parcel/watcher-darwin-x64": "2.5.0", - "@parcel/watcher-freebsd-x64": "2.5.0", - "@parcel/watcher-linux-arm-glibc": "2.5.0", - "@parcel/watcher-linux-arm-musl": "2.5.0", - "@parcel/watcher-linux-arm64-glibc": "2.5.0", - "@parcel/watcher-linux-arm64-musl": "2.5.0", - "@parcel/watcher-linux-x64-glibc": "2.5.0", - "@parcel/watcher-linux-x64-musl": "2.5.0", - "@parcel/watcher-win32-arm64": "2.5.0", - "@parcel/watcher-win32-ia32": "2.5.0", - "@parcel/watcher-win32-x64": "2.5.0" + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", - "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", "cpu": [ "arm64" ], @@ -4337,9 +4251,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", "cpu": [ "arm64" ], @@ -4357,9 +4271,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", - "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", "cpu": [ "x64" ], @@ -4377,9 +4291,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", - "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", "cpu": [ "x64" ], @@ -4397,9 +4311,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", - "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", "cpu": [ "arm" ], @@ -4417,9 +4331,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", - "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", "cpu": [ "arm" ], @@ -4437,9 +4351,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", - "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", "cpu": [ "arm64" ], @@ -4457,9 +4371,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", - "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", "cpu": [ "arm64" ], @@ -4477,9 +4391,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", - "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", "cpu": [ "x64" ], @@ -4497,9 +4411,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", - "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", "cpu": [ "x64" ], @@ -4517,9 +4431,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", - "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", "cpu": [ "arm64" ], @@ -4537,9 +4451,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", "cpu": [ "ia32" ], @@ -4557,9 +4471,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", "cpu": [ "x64" ], @@ -4590,6 +4504,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", "engines": { "node": ">=12.22.0" } @@ -4598,6 +4513,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -4608,12 +4524,14 @@ "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" }, "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", @@ -4624,9 +4542,9 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.28", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", - "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", "license": "MIT" }, "node_modules/@redocly/ajv": { @@ -4646,59 +4564,30 @@ } }, "node_modules/@redocly/config": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.11.0.tgz", - "integrity": "sha512-vAc77vCuWsVgLx2LN02P6jqLBhHuot6O1LsSJEAAkWEvXARSGSQVon50QW7jlbCMg9OFTYYYRPN4W6K/YmnM3w==", + "version": "0.22.2", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.22.2.tgz", + "integrity": "sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==", "license": "MIT" }, "node_modules/@redocly/openapi-core": { - "version": "1.25.3", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.25.3.tgz", - "integrity": "sha512-dqJkyydgagW3FXX5cjtSUAnabsld4K6yq7RFgQ+ngI1m43PkEoSQt8pp+SfQDszSEoMbc7QKj8afbe7mZw17TA==", + "version": "1.34.2", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.34.2.tgz", + "integrity": "sha512-glfkQFJizLdq2fBkNvc2FJW0sxDb5exd0wIXhFk+WHaFLMREBC3CxRo2Zq7uJIdfV9U3YTceMbXJklpDfmmwFQ==", "license": "MIT", "dependencies": { "@redocly/ajv": "^8.11.2", - "@redocly/config": "^0.11.0", + "@redocly/config": "^0.22.0", "colorette": "^1.2.0", - "https-proxy-agent": "^7.0.4", + "https-proxy-agent": "^7.0.5", "js-levenshtein": "^1.1.6", "js-yaml": "^4.1.0", - "lodash.isequal": "^4.5.0", "minimatch": "^5.0.1", - "node-fetch": "^2.6.1", "pluralize": "^8.0.0", "yaml-ast-parser": "0.0.43" }, "engines": { - "node": ">=14.19.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@redocly/openapi-core/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==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@redocly/openapi-core/node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "license": "MIT" - }, - "node_modules/@redocly/openapi-core/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "node": ">=18.17.0", + "npm": ">=9.5.0" } }, "node_modules/@reduxjs/toolkit": { @@ -5036,6 +4925,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -5052,15 +4942,6 @@ "node": ">=10.13.0" } }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", @@ -5099,36 +4980,273 @@ "@types/node": "*" } }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", + "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "license": "MIT" + }, "node_modules/@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", "dependencies": { "@types/d3-time": "*" } }, "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.2.tgz", - "integrity": "sha512-kpKNZMDT3OAX6b5ct5nS/mv6LULagnUy4DmS6yyNjclje1qVe7vbjPwY3q1TGz6+Wr2IUkgFatCzqYUl54fHag==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } }, "node_modules/@types/d3-time": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", - "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/eslint": { - "version": "8.44.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", - "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -5138,15 +5256,16 @@ "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==", + "license": "MIT", "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", "license": "MIT" }, "node_modules/@types/estree-jsx": { @@ -5171,9 +5290,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", - "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -5194,6 +5313,12 @@ "@types/send": "*" } }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, "node_modules/@types/gtag.js": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", @@ -5212,12 +5337,13 @@ "node_modules/@types/history": { "version": "4.7.11", "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "license": "MIT" }, "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", + "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", "license": "MIT", "dependencies": { "@types/react": "*", @@ -5233,7 +5359,8 @@ "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" }, "node_modules/@types/http-errors": { "version": "2.0.4", @@ -5242,9 +5369,9 @@ "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.15", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", - "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "version": "1.17.16", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", + "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -5277,7 +5404,8 @@ "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==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" }, "node_modules/@types/mdast": { "version": "4.0.4", @@ -5289,9 +5417,10 @@ } }, "node_modules/@types/mdx": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.10.tgz", - "integrity": "sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.5", @@ -5300,16 +5429,18 @@ "license": "MIT" }, "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "version": "22.15.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz", + "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.21.0" } }, "node_modules/@types/node-forge": { @@ -5324,7 +5455,8 @@ "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" }, "node_modules/@types/parse5": { "version": "6.0.3", @@ -5333,20 +5465,21 @@ "license": "MIT" }, "node_modules/@types/prismjs": { - "version": "1.26.4", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.4.tgz", - "integrity": "sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg==", + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", "license": "MIT" }, "node_modules/@types/prop-types": { - "version": "15.7.10", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", - "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==" + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", "license": "MIT" }, "node_modules/@types/range-parser": { @@ -5356,9 +5489,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.7", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.7.tgz", - "integrity": "sha512-KUnDCJF5+AiZd8owLIeVHqmW9yM4sqmDVf2JRJiBMFkGvkoZ4/WyV2lL4zVsoinmRS/W3FeEdZLEWFRofnT2FQ==", + "version": "18.3.20", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.20.tgz", + "integrity": "sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -5381,15 +5514,17 @@ "version": "5.1.20", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*" } }, "node_modules/@types/react-router-config": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.10.tgz", - "integrity": "sha512-Wn6c/tXdEgi9adCMtDwx8Q2vGty6TsPTc/wCQQ9kAlye8UqFxj0vGFWWuhywNfkwqth+SOgJxQTLTZukrqDQmQ==", + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", + "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -5400,6 +5535,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -5460,16 +5596,23 @@ "@types/node": "*" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, "node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -5491,9 +5634,9 @@ "license": "MIT" }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "license": "ISC" }, "node_modules/@webassemblyjs/ast": { @@ -5654,18 +5797,6 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "license": "Apache-2.0" }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -5679,27 +5810,6 @@ "node": ">= 0.6" } }, - "node_modules/accepts/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==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/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==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/accepts/node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -5710,9 +5820,9 @@ } }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -5746,18 +5856,16 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", "engines": { "node": ">= 10.0.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==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } @@ -5766,6 +5874,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5775,9 +5884,10 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -5807,6 +5917,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -5832,32 +5943,33 @@ } }, "node_modules/algoliasearch": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", - "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.24.0.tgz", + "integrity": "sha512-CkaUygzZ91Xbw11s0CsHMawrK3tl+Ue57725HGRgRzKgt2Z4wvXVXRCtQfvzh8K7Tp4Zp7f1pyHAtMROtTJHxg==", "license": "MIT", "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-account": "4.24.0", - "@algolia/client-analytics": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-personalization": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/recommend": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-abtesting": "5.24.0", + "@algolia/client-analytics": "5.24.0", + "@algolia/client-common": "5.24.0", + "@algolia/client-insights": "5.24.0", + "@algolia/client-personalization": "5.24.0", + "@algolia/client-query-suggestions": "5.24.0", + "@algolia/client-search": "5.24.0", + "@algolia/ingestion": "1.24.0", + "@algolia/monitoring": "1.24.0", + "@algolia/recommend": "5.24.0", + "@algolia/requester-browser-xhr": "5.24.0", + "@algolia/requester-fetch": "5.24.0", + "@algolia/requester-node-http": "5.24.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/algoliasearch-helper": { - "version": "3.22.6", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.6.tgz", - "integrity": "sha512-F2gSb43QHyvZmvH/2hxIjbk/uFdO2MguQYTFP7J+RowMW1csjIODMobEnpLI8nbLQuzZnGZdIxl5Bpy1k9+CFQ==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.25.0.tgz", + "integrity": "sha512-vQoK43U6HXA9/euCqLjvyNdM4G2Fiu/VFp4ae0Gau9sZeIKBPvUPnXfLYAe65Bg7PFuw03coeu5K6lTPSXRObw==", "license": "MIT", "dependencies": { "@algolia/events": "^4.0.1" @@ -5866,45 +5978,6 @@ "algoliasearch": ">= 3.1 < 6" } }, - "node_modules/algoliasearch/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, "node_modules/allof-merge": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/allof-merge/-/allof-merge-0.6.6.tgz", @@ -5918,6 +5991,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } @@ -5925,12 +5999,14 @@ "node_modules/ansi-align/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==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/ansi-align/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==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5983,6 +6059,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -5991,6 +6068,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6011,6 +6089,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -6028,7 +6107,8 @@ "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==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/array-flatten": { "version": "1.1.1", @@ -6040,44 +6120,15 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "license": "MIT" - }, - "node_modules/assert": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", "license": "MIT", "bin": { "astring": "bin/astring" @@ -6093,14 +6144,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "funding": [ { "type": "opencollective", @@ -6117,11 +6169,11 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -6134,21 +6186,6 @@ "postcss": "^8.1.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/babel-loader": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", @@ -6176,13 +6213,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", + "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", + "@babel/helper-define-polyfill-provider": "^0.6.4", "semver": "^6.3.1" }, "peerDependencies": { @@ -6199,25 +6236,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", + "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" + "@babel/helper-define-polyfill-provider": "^0.6.4" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -6236,7 +6273,8 @@ "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==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -6268,24 +6306,23 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, "node_modules/body-parser": { "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", @@ -6328,6 +6365,18 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/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==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -6362,12 +6411,14 @@ "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==" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" }, "node_modules/boxen": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^6.2.0", @@ -6386,158 +6437,30 @@ } }, "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "license": "MIT" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", - "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", - "license": "MIT", - "dependencies": { - "bn.js": "^5.2.1", - "randombytes": "^2.1.0", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", - "license": "ISC", - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/browserify-sign/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/browserify-sign/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==", - "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/browserify-sign/node_modules/readable-stream/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==", - "license": "MIT" - }, - "node_modules/browserify-sign/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==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/browserify-sign/node_modules/string_decoder/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==", - "license": "MIT" - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "license": "MIT", - "dependencies": { - "pako": "~1.0.5" - } - }, "node_modules/browserslist": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", - "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "funding": [ { "type": "opencollective", @@ -6593,18 +6516,7 @@ "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==" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "license": "MIT" - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, "node_modules/bytes": { @@ -6620,6 +6532,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", "engines": { "node": ">=14.16" } @@ -6628,6 +6541,7 @@ "version": "10.2.14", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", @@ -6641,17 +6555,6 @@ "node": ">=14.16" } }, - "node_modules/cacheable-request/node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -6671,9 +6574,9 @@ } }, "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -6684,13 +6587,13 @@ } }, "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -6709,6 +6612,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -6727,6 +6631,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -6747,9 +6652,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001690", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", - "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", + "version": "1.0.30001716", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001716.tgz", + "integrity": "sha512-49/c1+x3Kwz7ZIWt+4DvK3aMJy9oYXXG6/97JKsnjdCk/6n9vVyWL8NAwVt95Lwt9eigI10Hl782kDfZUUlRXw==", "funding": [ { "type": "opencollective", @@ -6780,6 +6685,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6804,6 +6710,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6886,16 +6793,37 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "license": "MIT", + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6908,14 +6836,18 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "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==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", "engines": { "node": ">=6.0" } @@ -6930,23 +6862,11 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/cipher-base": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", - "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", @@ -6972,6 +6892,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -6980,6 +6901,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -6988,9 +6910,10 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -7004,12 +6927,14 @@ "node_modules/cli-table3/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==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/cli-table3/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==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7074,6 +6999,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -7083,17 +7009,6 @@ "node": ">=6" } }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -7117,6 +7032,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -7127,7 +7043,8 @@ "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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/colord": { "version": "2.9.3", @@ -7136,15 +7053,16 @@ "license": "MIT" }, "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "license": "MIT" }, "node_modules/combine-promises": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "license": "MIT", "engines": { "node": ">=10" } @@ -7163,6 +7081,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -7185,19 +7104,10 @@ "node": ">= 0.6" } }, - "node_modules/compressible/node_modules/mime-db": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", - "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", "license": "MIT", "dependencies": { "bytes": "3.1.2", @@ -7260,12 +7170,20 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "license": "MIT" }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -7275,6 +7193,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -7299,25 +7218,14 @@ } }, "node_modules/consola": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.3.0.tgz", - "integrity": "sha512-kxltocVQCwQNFvw40dlVRYeAkAvtYjMFZYNlOcsF5wExPpGwPxMwgx4IfDJvBRPtBpnQwItd5WkTaR0ZwT/TmQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", "license": "MIT", "engines": { "node": "^14.18.0 || >=16.10.0" } }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "license": "MIT" - }, "node_modules/content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", @@ -7339,7 +7247,8 @@ "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==" + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, "node_modules/cookie": { "version": "0.7.1", @@ -7436,22 +7345,23 @@ } }, "node_modules/core-js": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.2.tgz", - "integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==", + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.42.0.tgz", + "integrity": "sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.42.0.tgz", + "integrity": "sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==", "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.24.4" }, "funding": { "type": "opencollective", @@ -7459,9 +7369,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", - "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.42.0.tgz", + "integrity": "sha512-007bM04u91fF4kMgwom2I5cQxAFIy8jVulgr9eozILl/SZE53QOqnW/+vviC+wQWLv+AunBG+8Q0TLoeSsSxRQ==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -7479,6 +7389,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "license": "MIT", "dependencies": { "layout-base": "^1.0.0" } @@ -7509,53 +7420,11 @@ } } }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "license": "MIT" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.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==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -7565,32 +7434,6 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", - "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.1", - "browserify-sign": "^4.2.3", - "create-ecdh": "^4.0.4", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "diffie-hellman": "^5.0.3", - "hash-base": "~3.0.4", - "inherits": "^2.0.4", - "pbkdf2": "^3.1.2", - "public-encrypt": "^4.0.3", - "randombytes": "^2.1.0", - "randomfill": "^1.0.4" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/crypto-js": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", @@ -7601,6 +7444,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -7615,6 +7459,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7648,9 +7493,9 @@ } }, "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -7722,9 +7567,9 @@ } }, "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -7868,6 +7713,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -7876,9 +7722,9 @@ } }, "node_modules/cssdb": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.3.tgz", - "integrity": "sha512-9BDG5XmJrJQQnJ51VFxXCAtpZ5ebDlAREmO8sxMOVU0aSxN/gocbctjIG5LMh3WBUq+xTlb/jw2LoljBEqraTA==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.5.tgz", + "integrity": "sha512-leAt8/hdTCtzql9ZZi86uYAmCLzVKpJMMdjbvOGVnXFXz/BWFpBmM1MHEHU/RqtPyRYmabVmEW1DtX3YGLuuLA==", "funding": [ { "type": "opencollective", @@ -8034,18 +7880,16 @@ "license": "CC0-1.0" }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" }, "node_modules/cytoscape": { - "version": "3.27.0", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.27.0.tgz", - "integrity": "sha512-pPZJilfX9BxESwujODz5pydeGi+FBrXq1rcaB1mfhFXXFJ9GjE6CNndAk+8jPzoXGD+16LtSS4xlYEIUiW4Abg==", - "dependencies": { - "heap": "^0.2.6", - "lodash": "^4.17.21" - }, + "version": "3.31.4", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.31.4.tgz", + "integrity": "sha512-JfUX/esCfnBGP+uNqRSkAr8jDr1HDSEm6jUNG+BToi43zwLisWrArZjIboB3NfCF5yKu2eG6sbPYaefEEaufyQ==", + "license": "MIT", "engines": { "node": ">=0.10" } @@ -8054,6 +7898,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "license": "MIT", "dependencies": { "cose-base": "^1.0.0" }, @@ -8065,6 +7910,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "license": "MIT", "dependencies": { "cose-base": "^2.2.0" }, @@ -8076,6 +7922,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "license": "MIT", "dependencies": { "layout-base": "^2.0.0" } @@ -8083,12 +7930,14 @@ "node_modules/cytoscape-fcose/node_modules/layout-base": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", - "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "license": "MIT" }, "node_modules/d3": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", - "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", "dependencies": { "d3-array": "3", "d3-axis": "3", @@ -8129,6 +7978,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", "dependencies": { "internmap": "1 - 2" }, @@ -8140,6 +7990,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8148,6 +7999,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -8163,6 +8015,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", "dependencies": { "d3-path": "1 - 3" }, @@ -8174,6 +8027,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8182,6 +8036,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", "dependencies": { "d3-array": "^3.2.0" }, @@ -8193,6 +8048,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", "dependencies": { "delaunator": "5" }, @@ -8204,6 +8060,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8212,6 +8069,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" @@ -8224,6 +8082,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", "dependencies": { "commander": "7", "iconv-lite": "0.6", @@ -8248,25 +8107,16 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } }, - "node_modules/d3-dsv/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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/d3-ease": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", "engines": { "node": ">=12" } @@ -8275,6 +8125,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", "dependencies": { "d3-dsv": "1 - 3" }, @@ -8286,6 +8137,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", @@ -8299,14 +8151,16 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/d3-geo": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", "dependencies": { "d3-array": "2.5.0 - 3" }, @@ -8318,6 +8172,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8326,6 +8181,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3" }, @@ -8337,6 +8193,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8345,6 +8202,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8353,6 +8211,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8361,6 +8220,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8369,6 +8229,7 @@ "version": "0.12.3", "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", "dependencies": { "d3-array": "1 - 2", "d3-shape": "^1.2.0" @@ -8378,6 +8239,7 @@ "version": "2.12.1", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", "dependencies": { "internmap": "^1.0.0" } @@ -8385,12 +8247,14 @@ "node_modules/d3-sankey/node_modules/d3-path": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause" }, "node_modules/d3-sankey/node_modules/d3-shape": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", "dependencies": { "d3-path": "1" } @@ -8398,12 +8262,14 @@ "node_modules/d3-sankey/node_modules/internmap": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC" }, "node_modules/d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", @@ -8416,9 +8282,10 @@ } }, "node_modules/d3-scale-chromatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", - "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" @@ -8431,6 +8298,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8439,6 +8307,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", "dependencies": { "d3-path": "^3.1.0" }, @@ -8450,6 +8319,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", "dependencies": { "d3-array": "2 - 3" }, @@ -8461,6 +8331,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", "dependencies": { "d3-time": "1 - 3" }, @@ -8472,6 +8343,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -8480,6 +8352,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", @@ -8498,6 +8371,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -8510,18 +8384,20 @@ } }, "node_modules/dagre-d3-es": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz", - "integrity": "sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz", + "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==", + "license": "MIT", "dependencies": { - "d3": "^7.8.2", + "d3": "^7.9.0", "lodash-es": "^4.17.21" } }, "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" }, "node_modules/debounce": { "version": "1.2.1", @@ -8530,11 +8406,12 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -8546,9 +8423,10 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", + "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", + "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -8561,6 +8439,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -8575,6 +8454,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -8586,6 +8466,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -8594,6 +8475,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8614,6 +8496,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", "engines": { "node": ">=10" } @@ -8639,6 +8522,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", "engines": { "node": ">=8" } @@ -8664,6 +8548,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "license": "MIT", "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", @@ -8682,11 +8567,12 @@ } }, "node_modules/delaunator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", - "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", "dependencies": { - "robust-predicates": "^3.0.0" + "robust-predicates": "^3.0.2" } }, "node_modules/depd": { @@ -8702,20 +8588,11 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -8758,9 +8635,10 @@ } }, "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "4" @@ -8768,12 +8646,16 @@ "bin": { "detect": "bin/detect-port.js", "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" } }, "node_modules/detect-port-alt": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "^2.6.0" @@ -8790,6 +8672,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -8797,7 +8680,8 @@ "node_modules/detect-port-alt/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/devlop": { "version": "1.1.0", @@ -8813,34 +8697,19 @@ } }, "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "license": "MIT" - }, "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==", + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -8861,9 +8730,9 @@ } }, "node_modules/docusaurus-plugin-openapi-docs": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.3.1.tgz", - "integrity": "sha512-uVv/mipiQzgqHIhgnTmJmsBW3UuuAufmuyXeHzQR8PGovsjMOKJU6YVDTd8qHlkXQ09IdoBLKG0RUZ9daNxt0w==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.3.7.tgz", + "integrity": "sha512-wCXuHniG108OGCj6qKtTOFLgyhnlztMegj63BbEyHC/OgM7PDL2Yj2VFkWsU3eCmJKI+czahanztFMhVLFD67w==", "license": "MIT", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.5.4", @@ -8889,7 +8758,7 @@ "@docusaurus/plugin-content-docs": "^3.5.0", "@docusaurus/utils": "^3.5.0", "@docusaurus/utils-validation": "^3.5.0", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0" + "react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/docusaurus-plugin-openapi-docs/node_modules/clsx": { @@ -8917,128 +8786,39 @@ } }, "node_modules/docusaurus-plugin-sass": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.5.tgz", - "integrity": "sha512-Z+D0fLFUKcFpM+bqSUmqKIU+vO+YF1xoEQh5hoFreg2eMf722+siwXDD+sqtwU8E4MvVpuvsQfaHwODNlxJAEg==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.6.tgz", + "integrity": "sha512-2hKQQDkrufMong9upKoG/kSHJhuwd+FA3iAe/qzS/BmWpbIpe7XKmq5wlz4J5CJaOPu4x+iDJbgAxZqcoQf0kg==", "license": "MIT", "peer": true, "dependencies": { - "sass-loader": "^10.1.1" + "sass-loader": "^16.0.2" }, "peerDependencies": { "@docusaurus/core": "^2.0.0-beta || ^3.0.0-alpha", "sass": "^1.30.0" } }, - "node_modules/docusaurus-plugin-sass/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "peer": 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/docusaurus-plugin-sass/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==", - "license": "MIT", - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/docusaurus-plugin-sass/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==", - "license": "MIT", - "peer": true - }, - "node_modules/docusaurus-plugin-sass/node_modules/sass-loader": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.5.2.tgz", - "integrity": "sha512-vMUoSNOUKJILHpcNCCyD23X34gve1TS7Rjd9uXHeKqhvBG39x6XbswFDtpbTElj6XdMFezoWhkh5vtKudf2cgQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.13.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", - "webpack": "^4.36.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/docusaurus-plugin-sass/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==", - "license": "MIT", - "peer": 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/docusaurus-theme-openapi-docs": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.3.1.tgz", - "integrity": "sha512-AeMBDckf+L3CDybLuzxUnjfBOa4zvpfux+u8g2apMSRub1Zh17EdqSWapzHWcMRw3xmknR4kqMFboWLXhwW1ew==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.3.7.tgz", + "integrity": "sha512-VRKA8gFVIlSBUu7EAYOY3JDF2WetCSVsYx5WeFo8g6/7LJWHhX7/A7Wo2fJ0B61VE/c53BSdbmvVWSJoUqnkoA==", "license": "MIT", "dependencies": { "@hookform/error-message": "^2.0.1", "@reduxjs/toolkit": "^1.7.1", "allof-merge": "^0.6.6", + "buffer": "^6.0.3", "clsx": "^1.1.1", "copy-text-to-clipboard": "^3.1.0", "crypto-js": "^4.1.1", "file-saver": "^2.0.5", "lodash": "^4.17.20", - "node-polyfill-webpack-plugin": "^3.0.0", + "pako": "^2.1.0", "postman-code-generators": "^1.10.1", "postman-collection": "^4.4.0", "prism-react-renderer": "^2.3.0", + "process": "^0.11.10", "react-hook-form": "^7.43.8", "react-live": "^4.0.0", "react-magic-dropzone": "^1.0.1", @@ -9050,7 +8830,7 @@ "sass": "^1.80.4", "sass-loader": "^16.0.2", "unist-util-visit": "^5.0.0", - "webpack": "^5.61.0", + "url": "^0.11.1", "xml-formatter": "^2.6.1" }, "engines": { @@ -9060,8 +8840,8 @@ "@docusaurus/theme-common": "^3.5.0", "docusaurus-plugin-openapi-docs": "^4.0.0", "docusaurus-plugin-sass": "^0.2.3", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0" + "react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/hast": { @@ -9164,6 +8944,21 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-raw/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-to-parse5": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz", @@ -9377,6 +9172,21 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-string": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", @@ -9903,6 +9713,16 @@ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "license": "MIT" }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/docusaurus-theme-openapi-docs/node_modules/rehype-raw": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz", @@ -9992,21 +9812,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-visit-parents": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", @@ -10088,18 +9893,6 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/domain-browser": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz", - "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", - "license": "Artistic-2.0", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -10109,7 +9902,8 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", @@ -10127,14 +9921,18 @@ } }, "node_modules/dompurify": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz", - "integrity": "sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==" + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.5.tgz", + "integrity": "sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", @@ -10149,6 +9947,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -10158,6 +9957,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -10172,6 +9972,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -10193,12 +9994,14 @@ "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", @@ -10207,41 +10010,16 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.75", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.75.tgz", - "integrity": "sha512-Lf3++DumRE/QmweGjU+ZcKqQ+3bKkU/qjaKYhIJKEOhgIO9Xs6IiAQFkfFoj+RhgDk4LUeNsLo6plExHqSyu6Q==", + "version": "1.5.148", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.148.tgz", + "integrity": "sha512-8uc1QXwwqayD4mblcsQYZqoi+cOc97A2XmKSBOIRbEAvbp6vrqmSYs4dHD2qVygUgn7Mi0qdKgPaJ9WC8cv63A==", "license": "ISC" }, - "node_modules/elkjs": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.8.2.tgz", - "integrity": "sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==" - }, - "node_modules/elliptic": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", - "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "license": "MIT" - }, "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==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, "node_modules/emojilib": { "version": "2.4.0", @@ -10253,6 +10031,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -10277,9 +10056,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", - "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -10293,6 +10072,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -10304,6 +10084,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } @@ -10327,14 +10108,15 @@ } }, "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" }, "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -10349,6 +10131,38 @@ "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", "license": "MIT" }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -10362,6 +10176,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -10372,12 +10187,14 @@ "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==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -10389,6 +10206,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -10414,6 +10232,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -10425,6 +10244,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -10433,6 +10253,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -10476,6 +10297,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/estree-util-to-js": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", @@ -10492,9 +10327,9 @@ } }, "node_modules/estree-util-value-to-estree": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.2.tgz", - "integrity": "sha512-S0gW2+XZkmsx00tU2uJ4L9hUT7IFabbml9pHh2WQqFmAbxit++YGZne0sKJbNwkj9Wvg9E4uqWl4nCIFQMmfag==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.3.3.tgz", + "integrity": "sha512-Db+m1WSD4+mUO7UgMeKkAwdbfNWwIxLt48XF2oFU9emPfXkIu+k5/nlOj313v7wqtAPo0f9REhUvznFrPkG8CQ==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" @@ -10530,6 +10365,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -10538,6 +10374,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "license": "MIT", "engines": { "node": ">=6.0.0" }, @@ -10566,15 +10403,6 @@ "node": ">= 0.8" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -10585,24 +10413,16 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -10730,6 +10550,12 @@ "node": ">= 0.6" } }, + "node_modules/exsolve": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", + "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", + "license": "MIT" + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -10751,18 +10577,20 @@ "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==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "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==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "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" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -10771,7 +10599,8 @@ "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==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" }, "node_modules/fast-safe-stringify": { "version": "2.1.1", @@ -10780,9 +10609,10 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -10852,6 +10682,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -10871,6 +10702,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -10886,6 +10718,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -10893,12 +10726,14 @@ "node_modules/file-loader/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/file-loader/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==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -10931,14 +10766,16 @@ "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "license": "BSD-3-Clause", "engines": { "node": ">= 0.4.0" } }, "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==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -11015,6 +10852,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } @@ -11039,15 +10877,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/foreach": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", @@ -11055,12 +10884,12 @@ "license": "MIT" }, "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -11086,6 +10915,7 @@ "version": "6.5.3", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.8.3", "@types/json-schema": "^7.0.5", @@ -11124,6 +10954,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -11139,14 +10970,26 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", @@ -11162,6 +11005,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -11175,12 +11019,26 @@ "node_modules/fork-ts-checker-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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.4", "ajv": "^6.12.2", @@ -11198,6 +11056,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -11206,6 +11065,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", "engines": { "node": ">= 14.17" } @@ -11250,9 +11110,10 @@ } }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -11263,19 +11124,36 @@ } }, "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==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "license": "Unlicense" }, "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==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "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==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11284,6 +11162,7 @@ "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==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -11298,21 +11177,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", - "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "dunder-proto": "^1.0.0", + "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "math-intrinsics": "^1.0.0" + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -11327,10 +11206,24 @@ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "license": "ISC" }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -11348,6 +11241,8 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11367,6 +11262,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -11380,10 +11276,33 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "license": "BSD-2-Clause" }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -11398,6 +11317,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", "engines": { "node": ">=10" } @@ -11406,6 +11326,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "license": "MIT", "dependencies": { "global-prefix": "^3.0.0" }, @@ -11417,6 +11338,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "license": "MIT", "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -11430,6 +11352,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -11450,6 +11373,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -11481,6 +11405,7 @@ "version": "12.6.1", "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -11505,6 +11430,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -11515,7 +11441,8 @@ "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==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphlib": { "version": "2.1.8", @@ -11567,6 +11494,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", "dependencies": { "duplexer": "^0.1.2" }, @@ -11577,6 +11505,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", + "license": "MIT" + }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -11587,6 +11521,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -11615,25 +11550,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-yarn": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -11641,29 +11562,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hash-base": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", - "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -11677,16 +11575,16 @@ } }, "node_modules/hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", - "hastscript": "^8.0.0", - "property-information": "^6.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" @@ -11710,9 +11608,9 @@ } }, "node_modules/hast-util-raw": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz", - "integrity": "sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", @@ -11735,9 +11633,9 @@ } }, "node_modules/hast-util-to-estree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", - "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -11751,9 +11649,9 @@ "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", + "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" }, @@ -11763,9 +11661,9 @@ } }, "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", - "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -11778,9 +11676,9 @@ "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", + "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" }, @@ -11789,21 +11687,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", - "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==", - "license": "MIT" - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz", - "integrity": "sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.3" - } - }, "node_modules/hast-util-to-parse5": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", @@ -11823,6 +11706,16 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-parse5/node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/hast-util-whitespace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", @@ -11837,15 +11730,15 @@ } }, "node_modules/hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" }, "funding": { @@ -11862,15 +11755,11 @@ "he": "bin/he" } }, - "node_modules/heap": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", - "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==" - }, "node_modules/history": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -11880,21 +11769,11 @@ "value-equal": "^1.0.1" } }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } @@ -11948,9 +11827,9 @@ } }, "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==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", "funding": [ { "type": "github", @@ -12003,6 +11882,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -12104,7 +11984,8 @@ "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==" + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause" }, "node_modules/http-deceiver": { "version": "1.2.7", @@ -12129,9 +12010,9 @@ } }, "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==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "license": "MIT" }, "node_modules/http-proxy": { @@ -12149,9 +12030,9 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", @@ -12200,6 +12081,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -12208,19 +12090,13 @@ "node": ">=10.19.0" } }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "license": "MIT" - }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -12231,17 +12107,18 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", "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==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -12280,17 +12157,18 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/image-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", - "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", + "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", "license": "MIT", "dependencies": { "queue": "6.0.2" @@ -12306,21 +12184,23 @@ "version": "9.0.21", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" } }, "node_modules/immutable": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", - "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz", + "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==", "license": "MIT" }, "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==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -12336,6 +12216,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -12344,6 +12225,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -12352,6 +12234,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -12369,6 +12252,8 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -12377,12 +12262,14 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" }, "node_modules/inline-style-parser": { "version": "0.1.1", @@ -12394,6 +12281,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -12402,6 +12290,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -12410,6 +12299,7 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } @@ -12447,31 +12337,17 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -12502,22 +12378,11 @@ "node": ">=4" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-ci": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -12526,11 +12391,15 @@ } }, "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==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12550,6 +12419,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -12573,6 +12443,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12581,29 +12452,16 @@ "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==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "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==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -12625,6 +12483,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -12636,26 +12495,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-npm": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -12667,6 +12511,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -12684,6 +12529,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -12692,6 +12538,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -12708,13 +12555,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "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==", "license": "MIT", "dependencies": { - "@types/estree": "*" + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/is-regexp": { @@ -12730,6 +12580,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -12738,6 +12589,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -12745,30 +12597,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -12780,6 +12619,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", "engines": { "node": ">=12" } @@ -12787,17 +12627,20 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12865,17 +12708,18 @@ } }, "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==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/joi": { - "version": "17.13.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", - "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", @@ -12897,12 +12741,14 @@ "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==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -12925,7 +12771,8 @@ "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" }, "node_modules/json-crawl": { "version": "0.5.3", @@ -12939,7 +12786,8 @@ "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==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-pointer": { "version": "0.6.2", @@ -12976,12 +12824,14 @@ "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==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -12993,6 +12843,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -13000,10 +12851,36 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/katex": { + "version": "0.16.22", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", + "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -13017,6 +12894,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13025,24 +12903,38 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "license": "MIT" + }, + "node_modules/langium": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz", + "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==", "license": "MIT", - "peer": true, + "dependencies": { + "chevrotain": "~11.0.3", + "chevrotain-allstar": "~0.3.0", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", + "vscode-uri": "~3.0.8" + }, "engines": { - "node": ">= 8" + "node": ">=16.0.0" } }, "node_modules/latest-version": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", "dependencies": { "package-json": "^8.1.0" }, @@ -13054,9 +12946,9 @@ } }, "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", + "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", "license": "MIT", "dependencies": { "picocolors": "^1.0.0", @@ -13066,12 +12958,14 @@ "node_modules/layout-base": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", - "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==" + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "license": "MIT" }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -13091,7 +12985,8 @@ "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==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/liquid-json": { "version": "0.3.1", @@ -13106,6 +13001,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "license": "MIT", "engines": { "node": ">=6.11.5" } @@ -13114,6 +13010,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -13123,6 +13020,23 @@ "node": ">=8.9.0" } }, + "node_modules/local-pkg": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-path": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", @@ -13141,12 +13055,14 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -13154,12 +13070,6 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "license": "MIT" }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "license": "MIT" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -13186,6 +13096,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -13197,6 +13108,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -13205,6 +13117,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -13234,15 +13147,27 @@ } }, "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/marked": { + "version": "15.0.11", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.11.tgz", + "integrity": "sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -13252,17 +13177,6 @@ "node": ">= 0.4" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "node_modules/mdast-util-definitions": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", @@ -13336,13 +13250,14 @@ } }, "node_modules/mdast-util-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", - "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", + "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -13356,9 +13271,9 @@ } }, "node_modules/mdast-util-find-and-replace": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -13384,9 +13299,9 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", - "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -13408,9 +13323,9 @@ } }, "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -13454,9 +13369,9 @@ } }, "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", @@ -13490,9 +13405,9 @@ } }, "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -13510,9 +13425,9 @@ } }, "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -13526,9 +13441,9 @@ "license": "MIT" }, "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -13608,9 +13523,9 @@ } }, "node_modules/mdast-util-mdx-expression": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", - "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", @@ -13626,9 +13541,9 @@ } }, "node_modules/mdast-util-mdx-jsx": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz", - "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", @@ -13641,7 +13556,6 @@ "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", - "unist-util-remove-position": "^5.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, @@ -13683,9 +13597,9 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", - "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", @@ -13704,9 +13618,9 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -13714,6 +13628,7 @@ "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" @@ -13755,6 +13670,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "license": "Unlicense", "dependencies": { "fs-monkey": "^1.0.4" }, @@ -13774,481 +13690,44 @@ "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==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/mermaid": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.6.1.tgz", - "integrity": "sha512-Hky0/RpOw/1il9X8AvzOEChfJtVvmXm+y7JML5C//ePYMy0/9jCEmW1E1g86x9oDfW9+iVEdTV/i+M6KWRNs4A==", + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.6.0.tgz", + "integrity": "sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==", + "license": "MIT", "dependencies": { - "@braintree/sanitize-url": "^6.0.1", - "@types/d3-scale": "^4.0.3", - "@types/d3-scale-chromatic": "^3.0.0", - "cytoscape": "^3.23.0", + "@braintree/sanitize-url": "^7.0.4", + "@iconify/utils": "^2.1.33", + "@mermaid-js/parser": "^0.4.0", + "@types/d3": "^7.4.3", + "cytoscape": "^3.29.3", "cytoscape-cose-bilkent": "^4.1.0", - "cytoscape-fcose": "^2.1.0", - "d3": "^7.4.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", "d3-sankey": "^0.12.3", - "dagre-d3-es": "7.0.10", - "dayjs": "^1.11.7", - "dompurify": "^3.0.5", - "elkjs": "^0.8.2", - "khroma": "^2.0.0", + "dagre-d3-es": "7.0.11", + "dayjs": "^1.11.13", + "dompurify": "^3.2.4", + "katex": "^0.16.9", + "khroma": "^2.1.0", "lodash-es": "^4.17.21", - "mdast-util-from-markdown": "^1.3.0", - "non-layered-tidy-tree-layout": "^2.0.2", - "stylis": "^4.1.3", + "marked": "^15.0.7", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", "ts-dedent": "^2.2.0", - "uuid": "^9.0.0", - "web-worker": "^1.2.0" - } - }, - "node_modules/mermaid/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/mermaid/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" - }, - "node_modules/mermaid/node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mermaid/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mermaid/node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid/node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid/node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid/node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-classify-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/mermaid/node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/mermaid/node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/mermaid/node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mermaid/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "uuid": "^11.1.0" } }, "node_modules/methods": { @@ -14261,9 +13740,9 @@ } }, "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "funding": [ { "type": "GitHub Sponsors", @@ -14296,9 +13775,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", - "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "funding": [ { "type": "GitHub Sponsors", @@ -14330,9 +13809,9 @@ } }, "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14350,9 +13829,9 @@ } }, "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14370,9 +13849,9 @@ } }, "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14386,9 +13865,9 @@ "license": "MIT" }, "node_modules/micromark-extension-directive": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.1.tgz", - "integrity": "sha512-VGV2uxUzhEZmaP7NSFo2vtq7M2nUD+WfmYQD+d8i/1nHbzE+rMy9uzTvUybBbNiVbrhOZibg3gbyoARGqgDWyg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", + "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", "license": "MIT", "dependencies": { "devlop": "^1.0.0", @@ -14405,9 +13884,9 @@ } }, "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14425,9 +13904,9 @@ } }, "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14445,9 +13924,9 @@ } }, "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14477,9 +13956,9 @@ } }, "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14497,9 +13976,9 @@ } }, "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14549,9 +14028,9 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14569,9 +14048,9 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14605,9 +14084,9 @@ } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14625,9 +14104,9 @@ } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14645,9 +14124,9 @@ } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14679,9 +14158,9 @@ } }, "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14695,9 +14174,9 @@ "license": "MIT" }, "node_modules/micromark-extension-gfm-table": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", - "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", "license": "MIT", "dependencies": { "devlop": "^1.0.0", @@ -14712,9 +14191,9 @@ } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14732,9 +14211,9 @@ } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14752,9 +14231,9 @@ } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14798,9 +14277,9 @@ } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14818,9 +14297,9 @@ } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14838,9 +14317,9 @@ } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14854,9 +14333,9 @@ "license": "MIT" }, "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14880,9 +14359,9 @@ } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14900,9 +14379,9 @@ } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14920,9 +14399,9 @@ } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14936,18 +14415,18 @@ "license": "MIT" }, "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz", - "integrity": "sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", "license": "MIT", "dependencies": { - "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" @@ -14958,9 +14437,9 @@ } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14978,9 +14457,9 @@ } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14998,9 +14477,9 @@ } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15068,9 +14547,9 @@ } }, "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15088,9 +14567,9 @@ } }, "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15104,9 +14583,9 @@ "license": "MIT" }, "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "funding": [ { "type": "GitHub Sponsors", @@ -15125,9 +14604,9 @@ } }, "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15145,9 +14624,9 @@ } }, "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15161,9 +14640,9 @@ "license": "MIT" }, "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "funding": [ { "type": "GitHub Sponsors", @@ -15183,9 +14662,9 @@ } }, "node_modules/micromark-factory-label/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15203,9 +14682,9 @@ } }, "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15219,9 +14698,9 @@ "license": "MIT" }, "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz", - "integrity": "sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15236,6 +14715,7 @@ "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -15244,10 +14724,30 @@ "vfile-message": "^4.0.0" } }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15265,9 +14765,9 @@ } }, "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15294,6 +14794,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -15312,12 +14813,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "funding": [ { "type": "GitHub Sponsors", @@ -15337,9 +14839,9 @@ } }, "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -15357,9 +14859,9 @@ } }, "node_modules/micromark-factory-title/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15377,9 +14879,9 @@ } }, "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15393,9 +14895,9 @@ "license": "MIT" }, "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15415,9 +14917,9 @@ } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -15435,9 +14937,9 @@ } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15455,9 +14957,9 @@ } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15484,6 +14986,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -15502,12 +15005,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "funding": [ { "type": "GitHub Sponsors", @@ -15524,9 +15028,9 @@ } }, "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15540,9 +15044,9 @@ "license": "MIT" }, "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15561,9 +15065,9 @@ } }, "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15581,9 +15085,9 @@ } }, "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15597,9 +15101,9 @@ "license": "MIT" }, "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "funding": [ { "type": "GitHub Sponsors", @@ -15617,9 +15121,9 @@ } }, "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "funding": [ { "type": "GitHub Sponsors", @@ -15636,9 +15140,9 @@ } }, "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15652,9 +15156,9 @@ "license": "MIT" }, "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15674,9 +15178,9 @@ } }, "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15694,9 +15198,9 @@ } }, "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15710,9 +15214,9 @@ "license": "MIT" }, "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "funding": [ { "type": "GitHub Sponsors", @@ -15726,9 +15230,9 @@ "license": "MIT" }, "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", "funding": [ { "type": "GitHub Sponsors", @@ -15741,7 +15245,6 @@ ], "license": "MIT", "dependencies": { - "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", @@ -15752,9 +15255,9 @@ } }, "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15768,9 +15271,9 @@ "license": "MIT" }, "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "funding": [ { "type": "GitHub Sponsors", @@ -15784,9 +15287,9 @@ "license": "MIT" }, "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15803,9 +15306,9 @@ } }, "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15819,9 +15322,9 @@ "license": "MIT" }, "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "funding": [ { "type": "GitHub Sponsors", @@ -15838,9 +15341,9 @@ } }, "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15859,9 +15362,9 @@ } }, "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15879,9 +15382,9 @@ } }, "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15895,9 +15398,9 @@ "license": "MIT" }, "node_modules/micromark-util-subtokenize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", - "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "funding": [ { "type": "GitHub Sponsors", @@ -15917,9 +15420,9 @@ } }, "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15945,12 +15448,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "funding": [ { "type": "GitHub Sponsors", @@ -15964,9 +15468,9 @@ "license": "MIT" }, "node_modules/micromark/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -15984,9 +15488,9 @@ } }, "node_modules/micromark/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16004,9 +15508,9 @@ } }, "node_modules/micromark/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16020,36 +15524,18 @@ "license": "MIT" }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "license": "MIT" - }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -16063,9 +15549,9 @@ } }, "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -16081,12 +15567,12 @@ } }, "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", "dependencies": { - "mime-db": "~1.33.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -16096,6 +15582,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16104,6 +15591,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -16137,27 +15625,23 @@ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "license": "ISC" }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "license": "MIT" - }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=10" } }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -16171,27 +15655,58 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "license": "MIT", "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==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/multicast-dns": { "version": "7.2.5", @@ -16227,9 +15742,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -16256,7 +15771,8 @@ "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==" + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" }, "node_modules/neotraverse": { "version": "0.6.15", @@ -16271,6 +15787,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -16284,9 +15801,9 @@ "optional": true }, "node_modules/node-emoji": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", - "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.6.0", @@ -16339,56 +15856,6 @@ "node": ">= 6.13.0" } }, - "node_modules/node-polyfill-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-QpG496dDBiaelQZu9wDcVvpLbtk7h9Ctz693RaUMZBgl8DUoFToO90ZTLKq57gP7rwKqYtGbMBXkcEgLSag2jQ==", - "license": "MIT", - "dependencies": { - "assert": "^2.1.0", - "browserify-zlib": "^0.2.0", - "buffer": "^6.0.3", - "console-browserify": "^1.2.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.12.0", - "domain-browser": "^4.22.0", - "events": "^3.3.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "^1.0.1", - "process": "^0.11.10", - "punycode": "^2.3.0", - "querystring-es3": "^0.2.1", - "readable-stream": "^4.4.2", - "stream-browserify": "^3.0.0", - "stream-http": "^3.2.0", - "string_decoder": "^1.3.0", - "timers-browserify": "^2.0.12", - "tty-browserify": "^0.0.1", - "type-fest": "^4.4.0", - "url": "^0.11.3", - "util": "^0.12.5", - "vm-browserify": "^1.1.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "webpack": ">=5" - } - }, - "node_modules/node-polyfill-webpack-plugin/node_modules/type-fest": { - "version": "4.30.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.2.tgz", - "integrity": "sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-readfiles": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", @@ -16404,15 +15871,11 @@ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "license": "MIT" }, - "node_modules/non-layered-tidy-tree-layout": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", - "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==" - }, "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16426,10 +15889,23 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "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==", + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -16447,6 +15923,7 @@ "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==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -16617,6 +16094,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16631,9 +16109,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -16642,22 +16120,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "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", @@ -16718,6 +16180,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -16726,6 +16189,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -16740,6 +16204,7 @@ "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -16753,9 +16218,9 @@ } }, "node_modules/openapi-to-postmanv2": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/openapi-to-postmanv2/-/openapi-to-postmanv2-4.24.0.tgz", - "integrity": "sha512-SfWo8fftwTVmBs61ZY9SciNlQ7ddSBmPS7NTBdf+LyjHdzr2/TNuvFjyftGJ7Jnm48oghi+R9At2geq1NoBOLA==", + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/openapi-to-postmanv2/-/openapi-to-postmanv2-4.25.0.tgz", + "integrity": "sha512-sIymbkQby0gzxt2Yez8YKB6hoISEel05XwGwNrAhr6+vxJWXNxkmssQc/8UEtVkuJ9ZfUXLkip9PYACIpfPDWg==", "license": "Apache-2.0", "dependencies": { "ajv": "8.11.0", @@ -16783,22 +16248,6 @@ "node": ">=8" } }, - "node_modules/openapi-to-postmanv2/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "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/openapi-to-postmanv2/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -16814,16 +16263,11 @@ "opener": "bin/opener-bin.js" } }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "license": "MIT" - }, "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", "engines": { "node": ">=12.20" } @@ -16862,6 +16306,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -16889,6 +16334,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16897,6 +16343,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "license": "MIT", "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -16916,10 +16363,19 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "license": "BlueOak-1.0.0" }, + "node_modules/package-manager-detector": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", + "integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==", + "license": "MIT", + "dependencies": { + "quansync": "^0.2.7" + } + }, "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", "license": "(MIT AND Zlib)" }, "node_modules/param-case": { @@ -16936,6 +16392,7 @@ "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==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -16943,31 +16400,13 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", - "license": "ISC", - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", @@ -16981,15 +16420,16 @@ } }, "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -17010,12 +16450,12 @@ "license": "ISC" }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -17034,6 +16474,18 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -17069,6 +16521,12 @@ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "license": "MIT" }, + "node_modules/path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "license": "MIT" + }, "node_modules/path-exists": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", @@ -17082,6 +16540,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17096,6 +16555,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -17103,7 +16563,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==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", @@ -17128,9 +16589,10 @@ "license": "ISC" }, "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", "dependencies": { "isarray": "0.0.1" } @@ -17139,51 +16601,16 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path/node_modules/inherits": { + "node_modules/pathe": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/path/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "license": "MIT", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" }, "node_modules/picocolors": { "version": "1.1.1", @@ -17195,6 +16622,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -17203,9 +16631,9 @@ } }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "license": "MIT", "engines": { "node": ">= 6" @@ -17226,10 +16654,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pkg-types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" + } + }, "node_modules/pkg-up": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -17241,6 +16681,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -17252,6 +16693,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -17264,6 +16706,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -17278,6 +16721,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -17289,6 +16733,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -17302,19 +16747,26 @@ "node": ">=4" } }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "node_modules/points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "license": "MIT" + }, + "node_modules/points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "funding": [ { "type": "opencollective", @@ -17331,7 +16783,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -17365,9 +16817,9 @@ } }, "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -17409,9 +16861,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.6.tgz", - "integrity": "sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.9.tgz", + "integrity": "sha512-WScwD3pSsIz+QP97sPkGCeJm7xUH0J18k6zV5o8O2a4cQJyv15vLUx/WFQajuJVgZhmJL5awDu8zHnqzAzm4lw==", "funding": [ { "type": "github", @@ -17424,10 +16876,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -17609,9 +17061,9 @@ } }, "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -17647,9 +17099,9 @@ } }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -17723,9 +17175,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", - "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.1.tgz", + "integrity": "sha512-ZitCwmvOR4JzXmKw6sZblTgwV1dcfLvClcyjADuqZ5hU0Uk4SVNpvSN9w8NcJ7XuxhRYxVA8m8AB3gy+HNBQOA==", "funding": [ { "type": "github", @@ -17738,7 +17190,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -17775,9 +17227,9 @@ } }, "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -17813,9 +17265,9 @@ } }, "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -17883,9 +17335,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.6.tgz", - "integrity": "sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.9.tgz", + "integrity": "sha512-IGbsIXbqMDusymJAKYX+f9oakPo89wL9Pzd/qRBQOVf3EIQWT9hgvqC4Me6Dkzxp3KPuIBf6LPkjrLHe/6ZMIQ==", "funding": [ { "type": "github", @@ -17898,10 +17350,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -17934,9 +17386,9 @@ } }, "node_modules/postcss-logical": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz", - "integrity": "sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", + "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", "funding": [ { "type": "github", @@ -18102,9 +17554,9 @@ } }, "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18130,9 +17582,9 @@ } }, "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18229,9 +17681,9 @@ } }, "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18472,9 +17924,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.2.tgz", - "integrity": "sha512-OqUBZ9ByVfngWhMNuBEMy52Izj07oIFA6K/EOGBlaSv+P12MiE1+S2cqXtS1VuW82demQ/Tzc7typYk3uHunkA==", + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.6.tgz", + "integrity": "sha512-1jRD7vttKLJ7o0mcmmYWKRLm7W14rI8K1I7Y41OeXUPEVc/CAzfTssNUeJ0zKbR+zMk4boqct/gwS/poIFF5Lg==", "funding": [ { "type": "github", @@ -18488,60 +17940,60 @@ "license": "MIT-0", "dependencies": { "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.6", - "@csstools/postcss-color-mix-function": "^3.0.6", - "@csstools/postcss-content-alt-text": "^2.0.4", - "@csstools/postcss-exponential-functions": "^2.0.5", + "@csstools/postcss-color-function": "^4.0.9", + "@csstools/postcss-color-mix-function": "^3.0.9", + "@csstools/postcss-content-alt-text": "^2.0.5", + "@csstools/postcss-exponential-functions": "^2.0.8", "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.6", - "@csstools/postcss-gradients-interpolation-method": "^5.0.6", - "@csstools/postcss-hwb-function": "^4.0.6", - "@csstools/postcss-ic-unit": "^4.0.0", - "@csstools/postcss-initial": "^2.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.9", + "@csstools/postcss-gradients-interpolation-method": "^5.0.9", + "@csstools/postcss-hwb-function": "^4.0.9", + "@csstools/postcss-ic-unit": "^4.0.1", + "@csstools/postcss-initial": "^2.0.1", "@csstools/postcss-is-pseudo-class": "^5.0.1", - "@csstools/postcss-light-dark-function": "^2.0.7", + "@csstools/postcss-light-dark-function": "^2.0.8", "@csstools/postcss-logical-float-and-clear": "^3.0.0", "@csstools/postcss-logical-overflow": "^2.0.0", "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", "@csstools/postcss-logical-resize": "^3.0.0", "@csstools/postcss-logical-viewport-units": "^3.0.3", - "@csstools/postcss-media-minmax": "^2.0.5", + "@csstools/postcss-media-minmax": "^2.0.8", "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", "@csstools/postcss-nested-calc": "^4.0.0", "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.6", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/postcss-random-function": "^1.0.1", - "@csstools/postcss-relative-color-syntax": "^3.0.6", + "@csstools/postcss-oklab-function": "^4.0.9", + "@csstools/postcss-progressive-custom-properties": "^4.0.1", + "@csstools/postcss-random-function": "^2.0.0", + "@csstools/postcss-relative-color-syntax": "^3.0.9", "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-sign-functions": "^1.1.0", - "@csstools/postcss-stepped-value-functions": "^4.0.5", - "@csstools/postcss-text-decoration-shorthand": "^4.0.1", - "@csstools/postcss-trigonometric-functions": "^4.0.5", + "@csstools/postcss-sign-functions": "^1.1.3", + "@csstools/postcss-stepped-value-functions": "^4.0.8", + "@csstools/postcss-text-decoration-shorthand": "^4.0.2", + "@csstools/postcss-trigonometric-functions": "^4.0.8", "@csstools/postcss-unset-value": "^4.0.0", - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.1", + "autoprefixer": "^10.4.21", + "browserslist": "^4.24.4", "css-blank-pseudo": "^7.0.1", "css-has-pseudo": "^7.0.2", "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.2.3", + "cssdb": "^8.2.5", "postcss-attribute-case-insensitive": "^7.0.1", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.6", + "postcss-color-functional-notation": "^7.0.9", "postcss-color-hex-alpha": "^10.0.0", "postcss-color-rebeccapurple": "^10.0.0", "postcss-custom-media": "^11.0.5", "postcss-custom-properties": "^14.0.4", "postcss-custom-selectors": "^8.0.4", "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.0", + "postcss-double-position-gradients": "^6.0.1", "postcss-focus-visible": "^10.0.1", "postcss-focus-within": "^9.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^6.0.0", "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.6", - "postcss-logical": "^8.0.0", + "postcss-lab-function": "^7.0.9", + "postcss-logical": "^8.1.0", "postcss-nesting": "^13.0.1", "postcss-opacity-percentage": "^3.0.0", "postcss-overflow-shorthand": "^6.0.0", @@ -18584,9 +18036,9 @@ } }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18677,9 +18129,9 @@ } }, "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -18767,9 +18219,9 @@ } }, "node_modules/postman-code-generators": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/postman-code-generators/-/postman-code-generators-1.13.0.tgz", - "integrity": "sha512-rbKtX+PWp+4McQpAncnRCUKqDiynt4fDB1I7AzrsvBAQc74ab6k6K3IP8qvf0icqiPuf9nYHCSdy/LB922dQLQ==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/postman-code-generators/-/postman-code-generators-1.14.2.tgz", + "integrity": "sha512-qZAyyowfQAFE4MSCu2KtMGGQE/+oG1JhMZMJNMdZHYCSfQiVVeKxgk3oI4+KJ3d1y5rrm2D6C6x+Z+7iyqm+fA==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -18812,37 +18264,25 @@ "node": ">=10" } }, - "node_modules/postman-collection/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==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "node_modules/postman-collection/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/postman-collection/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/postman-collection/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==", "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/postman-collection/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==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" + "bin": { + "uuid": "dist/bin/uuid" } }, "node_modules/postman-url-encoder": { @@ -18890,9 +18330,9 @@ } }, "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", "license": "MIT", "engines": { "node": ">=6" @@ -18917,6 +18357,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -18929,6 +18370,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -18936,9 +18378,9 @@ } }, "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", + "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", "license": "MIT", "funding": { "type": "github", @@ -18948,7 +18390,8 @@ "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -18972,26 +18415,6 @@ "node": ">= 0.10" } }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "license": "MIT" - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -19005,6 +18428,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "license": "MIT", "dependencies": { "escape-goat": "^4.0.0" }, @@ -19016,12 +18440,12 @@ } }, "node_modules/qs": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", - "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -19030,13 +18454,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "engines": { - "node": ">=0.4.x" - } + "node_modules/quansync": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" }, "node_modules/queue": { "version": "6.0.2", @@ -19064,12 +18496,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -19081,17 +18515,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "license": "MIT", "dependencies": { - "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, @@ -19128,10 +18553,23 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/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==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/raw-loader": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -19151,6 +18589,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -19166,6 +18605,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -19173,12 +18613,14 @@ "node_modules/raw-loader/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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/raw-loader/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==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -19196,6 +18638,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -19210,6 +18653,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -19230,6 +18674,7 @@ "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.0", "address": "^1.1.2", @@ -19264,6 +18709,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -19276,9 +18722,10 @@ } }, "node_modules/react-dev-utils/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==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", "engines": { "node": ">= 12.13.0" } @@ -19287,6 +18734,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -19301,6 +18749,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -19315,6 +18764,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -19329,6 +18779,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -19337,6 +18788,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -19358,19 +18810,23 @@ } }, "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.1.0.tgz", + "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==", + "license": "MIT" }, "node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" }, "node_modules/react-helmet-async": { + "name": "@slorber/react-helmet-async", "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "resolved": "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.12.5", "invariant": "^2.2.4", @@ -19379,14 +18835,14 @@ "shallowequal": "^1.1.0" }, "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/react-hook-form": { - "version": "7.53.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.0.tgz", - "integrity": "sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ==", + "version": "7.56.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.56.1.tgz", + "integrity": "sha512-qWAVokhSpshhcEuQDSANHx3jiAEFzu2HAaaQIzi/r9FNPm1ioAvuJSD4EuZzWd7Al7nTRKcKPnBKO7sRn+zavQ==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -19402,7 +18858,8 @@ "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/react-json-view-lite": { "version": "1.5.0", @@ -19423,13 +18880,13 @@ "license": "MIT" }, "node_modules/react-live": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/react-live/-/react-live-4.1.7.tgz", - "integrity": "sha512-NTzl0POOAW3dkp7+QL30duOrIu2Vzf2LHdx4TaQ0BqOAtQcSTKEXujfm9jR2VoCHko0oi35PYp38yKQBXz4mrg==", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/react-live/-/react-live-4.1.8.tgz", + "integrity": "sha512-B2SgNqwPuS2ekqj4lcxi5TibEcjWkdVyYykBEUBshPAPDQ527x2zPEZg560n8egNtAjUpwXFQm7pcXV65aAYmg==", "license": "MIT", "dependencies": { - "prism-react-renderer": "^2.0.6", - "sucrase": "^3.31.0", + "prism-react-renderer": "^2.4.0", + "sucrase": "^3.35.0", "use-editable": "^2.3.3" }, "engines": { @@ -19458,6 +18915,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.3" }, @@ -19983,6 +19441,16 @@ ], "license": "MIT" }, + "node_modules/react-markdown/node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/react-markdown/node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", @@ -20138,9 +19606,9 @@ } }, "node_modules/react-modal": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz", - "integrity": "sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==", + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.3.tgz", + "integrity": "sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw==", "license": "MIT", "dependencies": { "exenv": "^1.2.0", @@ -20148,12 +19616,9 @@ "react-lifecycles-compat": "^3.0.0", "warning": "^4.0.3" }, - "engines": { - "node": ">=8" - }, "peerDependencies": { - "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18", - "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18" + "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19", + "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19" } }, "node_modules/react-redux": { @@ -20191,6 +19656,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -20210,6 +19676,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2" }, @@ -20222,6 +19689,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -20236,25 +19704,24 @@ } }, "node_modules/readable-stream": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.6.0.tgz", - "integrity": "sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "license": "MIT", "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 6" } }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -20279,10 +19746,75 @@ "node": ">= 0.10" } }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", + "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/recursive-readdir": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "license": "MIT", "dependencies": { "minimatch": "^3.0.5" }, @@ -20290,6 +19822,28 @@ "node": ">=6.0.0" } }, + "node_modules/recursive-readdir/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==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/recursive-readdir/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/redux": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", @@ -20335,20 +19889,6 @@ "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexpu-core": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", @@ -20367,9 +19907,10 @@ } }, "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", + "license": "MIT", "dependencies": { "@pnpm/npm-conf": "^2.1.0" }, @@ -20381,6 +19922,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", "dependencies": { "rc": "1.2.8" }, @@ -20436,6 +19978,21 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -20446,9 +20003,9 @@ } }, "node_modules/remark-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", - "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", + "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -20494,9 +20051,9 @@ } }, "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -20512,9 +20069,9 @@ } }, "node_modules/remark-mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", - "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", "license": "MIT", "dependencies": { "mdast-util-mdx": "^3.0.0", @@ -20542,9 +20099,9 @@ } }, "node_modules/remark-rehype": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", - "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", @@ -20695,6 +20252,7 @@ "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -20720,17 +20278,21 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -20738,12 +20300,14 @@ "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" }, "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==", + "license": "MIT", "engines": { "node": ">=4" } @@ -20751,12 +20315,14 @@ "node_modules/resolve-pathname": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" }, "node_modules/responselike": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -20777,9 +20343,10 @@ } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -20789,6 +20356,8 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -20799,25 +20368,23 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" }, - "node_modules/rtl-detect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz", - "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==" + "node_modules/roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", + "license": "MIT", + "dependencies": { + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" + } }, "node_modules/rtlcss": { "version": "4.3.0", @@ -20855,6 +20422,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -20862,12 +20430,14 @@ "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" }, "node_modules/sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "license": "MIT", "dependencies": { "mri": "^1.1.0" }, @@ -20892,17 +20462,19 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/sass": { - "version": "1.83.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.0.tgz", - "integrity": "sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==", + "version": "1.87.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.87.0.tgz", + "integrity": "sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw==", "license": "MIT", "dependencies": { "chokidar": "^4.0.0", @@ -20920,9 +20492,9 @@ } }, "node_modules/sass-loader": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.4.tgz", - "integrity": "sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==", + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", "license": "MIT", "dependencies": { "neo-async": "^2.6.2" @@ -20960,9 +20532,9 @@ } }, "node_modules/sass/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "license": "MIT", "dependencies": { "readdirp": "^4.0.1" @@ -20975,12 +20547,12 @@ } }, "node_modules/sass/node_modules/readdirp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz", - "integrity": "sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "license": "MIT", "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -21003,9 +20575,9 @@ } }, "node_modules/schema-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", - "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", @@ -21061,9 +20633,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -21076,6 +20648,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -21134,12 +20707,6 @@ "node": ">= 0.8" } }, - "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==", - "license": "MIT" - }, "node_modules/send/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -21173,6 +20740,49 @@ "range-parser": "1.2.0" } }, + "node_modules/serve-handler/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==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/serve-handler/node_modules/path-to-regexp": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", @@ -21289,35 +20899,17 @@ "node": ">= 0.4" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "license": "MIT" - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "license": "ISC" }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, "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==", + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -21328,12 +20920,14 @@ "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -21345,14 +20939,19 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "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==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -21361,6 +20960,7 @@ "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "license": "BSD-3-Clause", "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -21502,7 +21102,8 @@ "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==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/sirv": { "version": "2.0.4", @@ -21521,7 +21122,8 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" }, "node_modules/sitemap": { "version": "7.1.2", @@ -21564,6 +21166,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -21598,6 +21201,15 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/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==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/sort-css-media-queries": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", @@ -21629,6 +21241,7 @@ "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==", + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -21638,6 +21251,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -21682,20 +21296,6 @@ "wbuf": "^1.7.3" } }, - "node_modules/spdy-transport/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==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -21724,61 +21324,11 @@ } }, "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", "license": "MIT" }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-browserify/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==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "license": "MIT", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/stream-http/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==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -21792,6 +21342,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -21826,9 +21377,10 @@ "license": "MIT" }, "node_modules/string-width/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==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -21840,6 +21392,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -21882,6 +21435,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -21915,6 +21469,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -21931,6 +21486,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-js": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", + "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.8" + } + }, + "node_modules/style-to-js/node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" + }, + "node_modules/style-to-js/node_modules/style-to-object": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, "node_modules/style-to-object": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", @@ -21957,9 +21536,10 @@ } }, "node_modules/stylis": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", - "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==" + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" }, "node_modules/sucrase": { "version": "3.35.0", @@ -21983,15 +21563,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/sucrase/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==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/sucrase/node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -22040,6 +21611,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -22051,6 +21623,7 @@ "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==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -22129,14 +21702,15 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/terser": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", - "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -22152,9 +21726,9 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", - "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -22189,6 +21763,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -22202,6 +21777,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -22215,12 +21791,14 @@ "node_modules/terser/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==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", @@ -22249,32 +21827,29 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "license": "MIT" }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "license": "MIT", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -22330,6 +21905,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "license": "MIT", "engines": { "node": ">=6.10" } @@ -22341,20 +21917,16 @@ "license": "Apache-2.0" }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "license": "MIT" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -22375,39 +21947,20 @@ "node": ">= 0.6" } }, - "node_modules/type-is/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==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/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==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "license": "Apache-2.0", "peer": true, "bin": { "tsc": "bin/tsc", @@ -22417,10 +21970,17 @@ "node": ">=14.17" } }, + "node_modules/ufo": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", + "license": "MIT" + }, "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==" + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", @@ -22472,9 +22032,9 @@ } }, "node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -22494,6 +22054,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -22553,20 +22114,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", @@ -22613,6 +22160,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -22627,9 +22175,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "funding": [ { "type": "opencollective", @@ -22647,7 +22195,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -22660,6 +22208,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", "dependencies": { "boxen": "^7.0.0", "chalk": "^5.0.1", @@ -22687,6 +22236,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.1", @@ -22708,6 +22258,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -22716,9 +22267,10 @@ } }, "node_modules/update-notifier/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -22730,6 +22282,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -22757,6 +22310,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", @@ -22783,6 +22337,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -22798,6 +22353,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -22805,31 +22361,14 @@ "node_modules/url-loader/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==" - }, - "node_modules/url-loader/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/url-loader/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==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -22859,16 +22398,12 @@ } }, "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "inherits": "2.0.3" } }, "node_modules/util-deprecate": { @@ -22877,6 +22412,12 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, + "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==", + "license": "ISC" + }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", @@ -22902,17 +22443,23 @@ } }, "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==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/uvu": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "license": "MIT", "dependencies": { "dequal": "^2.0.0", "diff": "^5.0.0", @@ -22930,6 +22477,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -22970,7 +22518,8 @@ "node_modules/value-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" }, "node_modules/vary": { "version": "1.1.2", @@ -22982,13 +22531,12 @@ } }, "node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, "funding": { @@ -23024,10 +22572,53 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "license": "MIT", + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "license": "MIT" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", "license": "MIT" }, "node_modules/warning": { @@ -23071,11 +22662,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/web-worker": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz", - "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==" - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -23083,13 +22669,14 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.97.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", - "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "version": "5.99.7", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.7.tgz", + "integrity": "sha512-CNqKBRMQjwcmKR0idID5va1qlhrqVUKpovi+Ec79ksW8ux7iS1+A6VqzfZXgVYCFRKl7XL5ap3ZoMpwBJxcg0w==", "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", @@ -23106,9 +22693,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^4.3.2", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", + "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, @@ -23186,26 +22773,11 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/webpack-dev-middleware/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==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/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==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } + "node_modules/webpack-dev-middleware/node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" }, "node_modules/webpack-dev-middleware/node_modules/range-parser": { "version": "1.2.1", @@ -23275,10 +22847,16 @@ } } }, + "node_modules/webpack-dev-server/node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -23297,90 +22875,28 @@ } }, "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==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", - "wildcard": "^2.0.0" + "wildcard": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, "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==", + "license": "MIT", "engines": { "node": ">=10.13.0" } }, - "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==", - "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==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "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==" - }, - "node_modules/webpack/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "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/webpackbar": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", @@ -23490,6 +23006,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -23500,30 +23017,11 @@ "node": ">= 8" } }, - "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", "dependencies": { "string-width": "^5.0.1" }, @@ -23537,12 +23035,14 @@ "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -23594,9 +23094,10 @@ } }, "node_modules/wrap-ansi/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==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -23608,6 +23109,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -23619,6 +23121,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -23632,12 +23135,14 @@ "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==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -23670,6 +23175,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -23710,15 +23216,6 @@ "node": ">= 10" } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -23738,6 +23235,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", "engines": { "node": ">= 6" } @@ -23796,9 +23294,9 @@ } }, "node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", "license": "MIT", "engines": { "node": ">=12.20" diff --git a/docs/package.json b/docs/package.json index f1849f6d9..43fc7a644 100644 --- a/docs/package.json +++ b/docs/package.json @@ -17,10 +17,10 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "^3.6.3", - "@docusaurus/preset-classic": "^3.6.3", - "@docusaurus/theme-mermaid": "^3.6.3", + "@docusaurus/core": "^3.7.0", "@docusaurus/plugin-content-docs": "^3.6.3", + "@docusaurus/preset-classic": "^3.7.0", + "@docusaurus/theme-mermaid": "^3.6.3", "@mdx-js/react": "^3.1.0", "clsx": "^2.1.1", "docusaurus-plugin-openapi-docs": "^4.3.1", diff --git a/docs/sidebars.ts b/docs/sidebars.ts index f0b74f5d4..bd89492e2 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -59,10 +59,13 @@ const sidebars: SidebarsConfig = { "configuration/objects", "configuration/stationary_objects", ], + "Hardware Acceleration": [ + "configuration/hardware_acceleration_video", + "configuration/hardware_acceleration_enrichments", + ], "Extra Configuration": [ "configuration/authentication", "configuration/notifications", - "configuration/hardware_acceleration", "configuration/ffmpeg_presets", "configuration/pwa", "configuration/tls", diff --git a/frigate/api/app.py b/frigate/api/app.py index 8a1310b93..2301d1be1 100644 --- a/frigate/api/app.py +++ b/frigate/api/app.py @@ -74,7 +74,7 @@ def go2rtc_streams(): ) stream_data = r.json() for data in stream_data.values(): - for producer in data.get("producers", []): + for producer in data.get("producers") or []: producer["url"] = clean_camera_user_pass(producer.get("url", "")) return JSONResponse(content=stream_data) diff --git a/frigate/api/auth.py b/frigate/api/auth.py index 7d7c2ba8d..710661be3 100644 --- a/frigate/api/auth.py +++ b/frigate/api/auth.py @@ -261,14 +261,14 @@ def auth(request: Request): role_header = proxy_config.header_map.role role = ( - request.headers.get(role_header, default="viewer") + request.headers.get(role_header, default=proxy_config.default_role) if role_header - else "viewer" + else proxy_config.default_role ) - # if comma-separated with "admin", use "admin", else "viewer" + # if comma-separated with "admin", use "admin", else use default role success_response.headers["remote-role"] = ( - "admin" if role and "admin" in role else "viewer" + "admin" if role and "admin" in role else proxy_config.default_role ) return success_response diff --git a/frigate/api/classification.py b/frigate/api/classification.py index 1f6d8b792..8f0fb6462 100644 --- a/frigate/api/classification.py +++ b/frigate/api/classification.py @@ -14,6 +14,7 @@ from peewee import DoesNotExist from playhouse.shortcuts import model_to_dict from frigate.api.auth import require_role +from frigate.api.defs.request.classification_body import RenameFaceBody from frigate.api.defs.tags import Tags from frigate.config.camera import DetectConfig from frigate.const import FACE_DIR @@ -260,6 +261,35 @@ def deregister_faces(request: Request, name: str, body: dict = None): ) +@router.put("/faces/{old_name}/rename", dependencies=[Depends(require_role(["admin"]))]) +def rename_face(request: Request, old_name: str, body: RenameFaceBody): + if not request.app.frigate_config.face_recognition.enabled: + return JSONResponse( + status_code=400, + content={"message": "Face recognition is not enabled.", "success": False}, + ) + + context: EmbeddingsContext = request.app.embeddings + try: + context.rename_face(old_name, body.new_name) + return JSONResponse( + content={ + "success": True, + "message": f"Successfully renamed face to {body.new_name}.", + }, + status_code=200, + ) + except ValueError as e: + logger.error(e) + return JSONResponse( + status_code=400, + content={ + "message": "Error renaming face. Check Frigate logs.", + "success": False, + }, + ) + + @router.put("/lpr/reprocess") def reprocess_license_plate(request: Request, event_id: str): if not request.app.frigate_config.lpr.enabled: diff --git a/frigate/api/defs/request/classification_body.py b/frigate/api/defs/request/classification_body.py new file mode 100644 index 000000000..c4a32c332 --- /dev/null +++ b/frigate/api/defs/request/classification_body.py @@ -0,0 +1,5 @@ +from pydantic import BaseModel + + +class RenameFaceBody(BaseModel): + new_name: str diff --git a/frigate/api/review.py b/frigate/api/review.py index 977a0aa94..b90365595 100644 --- a/frigate/api/review.py +++ b/frigate/api/review.py @@ -58,13 +58,9 @@ async def review( ) clauses = [ - ( - (ReviewSegment.start_time > after) - & ( - (ReviewSegment.end_time.is_null(True)) - | (ReviewSegment.end_time < before) - ) - ) + (ReviewSegment.start_time > after) + & (ReviewSegment.start_time < before) + & ((ReviewSegment.end_time.is_null(True)) | (ReviewSegment.end_time < before)) ] if cameras != "all": diff --git a/frigate/comms/dispatcher.py b/frigate/comms/dispatcher.py index 4c0b0a8ff..87891ec88 100644 --- a/frigate/comms/dispatcher.py +++ b/frigate/comms/dispatcher.py @@ -135,6 +135,7 @@ class Dispatcher: "type": TrackedObjectUpdateTypesEnum.description, "id": event.id, "description": event.data["description"], + "camera": event.camera, } ), ) diff --git a/frigate/comms/event_metadata_updater.py b/frigate/comms/event_metadata_updater.py index 42a3419ce..6adcaf4be 100644 --- a/frigate/comms/event_metadata_updater.py +++ b/frigate/comms/event_metadata_updater.py @@ -39,9 +39,6 @@ class EventMetadataSubscriber(Subscriber): def __init__(self, topic: EventMetadataTypeEnum) -> None: super().__init__(topic.value) - def check_for_update(self, timeout: float = 1) -> tuple | None: - return super().check_for_update(timeout) - def _return_object(self, topic: str, payload: tuple) -> tuple: if payload is None: return (None, None) diff --git a/frigate/comms/zmq_proxy.py b/frigate/comms/zmq_proxy.py index 1661cfcc5..6a90d6887 100644 --- a/frigate/comms/zmq_proxy.py +++ b/frigate/comms/zmq_proxy.py @@ -6,6 +6,8 @@ from typing import Optional import zmq +from frigate.const import FAST_QUEUE_TIMEOUT + SOCKET_PUB = "ipc:///tmp/cache/proxy_pub" SOCKET_SUB = "ipc:///tmp/cache/proxy_sub" @@ -77,7 +79,9 @@ class Subscriber: self.socket.setsockopt_string(zmq.SUBSCRIBE, self.topic) self.socket.connect(SOCKET_SUB) - def check_for_update(self, timeout: float = 1) -> Optional[tuple[str, any]]: + def check_for_update( + self, timeout: float = FAST_QUEUE_TIMEOUT + ) -> Optional[tuple[str, any]]: """Returns message or None if no update.""" try: has_update, _, _ = zmq.select([self.socket], [], [], timeout) diff --git a/frigate/config/camera/onvif.py b/frigate/config/camera/onvif.py index ff34e2a10..d4955799b 100644 --- a/frigate/config/camera/onvif.py +++ b/frigate/config/camera/onvif.py @@ -63,9 +63,9 @@ class PtzAutotrackConfig(FrigateBaseModel): else: raise ValueError("Invalid type for movement_weights") - if len(weights) != 5: + if len(weights) != 6: raise ValueError( - "movement_weights must have exactly 5 floats, remove this line from your config and run autotracking calibration" + "movement_weights must have exactly 6 floats, remove this line from your config and run autotracking calibration" ) return weights diff --git a/frigate/config/classification.py b/frigate/config/classification.py index 0ad86da27..7f4f39bbd 100644 --- a/frigate/config/classification.py +++ b/frigate/config/classification.py @@ -94,7 +94,7 @@ class CameraFaceRecognitionConfig(FrigateBaseModel): default=500, title="Min area of face box to consider running face recognition." ) - model_config = ConfigDict(extra="ignore", protected_namespaces=()) + model_config = ConfigDict(extra="forbid", protected_namespaces=()) class LicensePlateRecognitionConfig(FrigateBaseModel): @@ -168,4 +168,4 @@ class CameraLicensePlateRecognitionConfig(FrigateBaseModel): le=10, ) - model_config = ConfigDict(extra="ignore", protected_namespaces=()) + model_config = ConfigDict(extra="forbid", protected_namespaces=()) diff --git a/frigate/config/config.py b/frigate/config/config.py index 373e08376..2470818b0 100644 --- a/frigate/config/config.py +++ b/frigate/config/config.py @@ -472,8 +472,24 @@ class FrigateConfig(FrigateBaseModel): ) for name, camera in self.cameras.items(): + modified_global_config = global_config.copy() + + # only populate some fields down to the camera level for specific keys + allowed_fields_map = { + "face_recognition": ["enabled", "min_area"], + "lpr": ["enabled", "expire_time", "min_area", "enhancement"], + } + + for section in allowed_fields_map: + if section in modified_global_config: + modified_global_config[section] = { + k: v + for k, v in modified_global_config[section].items() + if k in allowed_fields_map[section] + } + merged_config = deep_merge( - camera.model_dump(exclude_unset=True), global_config + camera.model_dump(exclude_unset=True), modified_global_config ) camera_config: CameraConfig = CameraConfig.model_validate( {"name": name, **merged_config} diff --git a/frigate/config/proxy.py b/frigate/config/proxy.py index df8a665fb..ef1529f9e 100644 --- a/frigate/config/proxy.py +++ b/frigate/config/proxy.py @@ -30,3 +30,6 @@ class ProxyConfig(FrigateBaseModel): default=None, title="Secret value for proxy authentication.", ) + default_role: Optional[str] = Field( + default="viewer", title="Default role for proxy users." + ) diff --git a/frigate/const.py b/frigate/const.py index cf04ce7b2..183506a04 100644 --- a/frigate/const.py +++ b/frigate/const.py @@ -129,3 +129,7 @@ AUTOTRACKING_ZOOM_EDGE_THRESHOLD = 0.05 JWT_SECRET_ENV_VAR = "FRIGATE_JWT_SECRET" PASSWORD_HASH_ALGORITHM = "pbkdf2_sha256" + +# Queues + +FAST_QUEUE_TIMEOUT = 0.00001 # seconds diff --git a/frigate/data_processing/common/license_plate/mixin.py b/frigate/data_processing/common/license_plate/mixin.py index afd5c8280..8dea639d6 100644 --- a/frigate/data_processing/common/license_plate/mixin.py +++ b/frigate/data_processing/common/license_plate/mixin.py @@ -2,6 +2,7 @@ import base64 import datetime +import json import logging import math import os @@ -23,6 +24,7 @@ from frigate.comms.event_metadata_updater import ( ) from frigate.const import CLIPS_DIR from frigate.embeddings.onnx.lpr_embedding import LPR_EMBEDDING_SIZE +from frigate.types import TrackedObjectUpdateTypesEnum from frigate.util.builtin import EventsPerSecond from frigate.util.image import area @@ -1221,7 +1223,7 @@ class LicensePlateProcessingMixin: license_plate_area = (license_plate[2] - license_plate[0]) * ( license_plate[3] - license_plate[1] ) - if license_plate_area < self.lpr_config.min_area: + if license_plate_area < self.config.cameras[camera].lpr.min_area: logger.debug(f"{camera}: License plate area below minimum threshold.") return @@ -1315,10 +1317,7 @@ class LicensePlateProcessingMixin: # check that license plate is valid # double the value because we've doubled the size of the car - if ( - license_plate_area - < self.config.cameras[obj_data["camera"]].lpr.min_area * 2 - ): + if license_plate_area < self.config.cameras[camera].lpr.min_area * 2: logger.debug(f"{camera}: License plate is less than min_area") return @@ -1362,10 +1361,10 @@ class LicensePlateProcessingMixin: if ( not license_plate_box or area(license_plate_box) - < self.config.cameras[obj_data["camera"]].lpr.min_area + < self.config.cameras[camera].lpr.min_area ): logger.debug( - f"{camera}: Area for license plate box {area(license_plate_box)} is less than min_area {self.config.cameras[obj_data['camera']].lpr.min_area}" + f"{camera}: Area for license plate box {area(license_plate_box)} is less than min_area {self.config.cameras[camera].lpr.min_area}" ) return @@ -1513,6 +1512,20 @@ class LicensePlateProcessingMixin: ) # always publish to recognized_license_plate field + self.requestor.send_data( + "tracked_object_update", + json.dumps( + { + "type": TrackedObjectUpdateTypesEnum.lpr, + "name": sub_label, + "plate": top_plate, + "score": avg_confidence, + "id": id, + "camera": camera, + "timestamp": start, + } + ), + ) self.sub_label_publisher.publish( EventMetadataTypeEnum.recognized_license_plate, (id, top_plate, avg_confidence), diff --git a/frigate/data_processing/post/license_plate.py b/frigate/data_processing/post/license_plate.py index e439fb763..6bd3edf60 100644 --- a/frigate/data_processing/post/license_plate.py +++ b/frigate/data_processing/post/license_plate.py @@ -9,6 +9,7 @@ from peewee import DoesNotExist from frigate.comms.embeddings_updater import EmbeddingsRequestEnum from frigate.comms.event_metadata_updater import EventMetadataPublisher +from frigate.comms.inter_process import InterProcessRequestor from frigate.config import FrigateConfig from frigate.data_processing.common.license_plate.mixin import ( WRITE_DEBUG_IMAGES, @@ -31,11 +32,13 @@ class LicensePlatePostProcessor(LicensePlateProcessingMixin, PostProcessorApi): def __init__( self, config: FrigateConfig, + requestor: InterProcessRequestor, sub_label_publisher: EventMetadataPublisher, metrics: DataProcessorMetrics, model_runner: LicensePlateModelRunner, detected_license_plates: dict[str, dict[str, any]], ): + self.requestor = requestor self.detected_license_plates = detected_license_plates self.model_runner = model_runner self.lpr_config = config.lpr diff --git a/frigate/data_processing/real_time/face.py b/frigate/data_processing/real_time/face.py index fb55bb7d2..d91ab9b80 100644 --- a/frigate/data_processing/real_time/face.py +++ b/frigate/data_processing/real_time/face.py @@ -2,6 +2,7 @@ import base64 import datetime +import json import logging import os import random @@ -17,6 +18,7 @@ from frigate.comms.event_metadata_updater import ( EventMetadataPublisher, EventMetadataTypeEnum, ) +from frigate.comms.inter_process import InterProcessRequestor from frigate.config import FrigateConfig from frigate.const import FACE_DIR, MODEL_CACHE_DIR from frigate.data_processing.common.face.model import ( @@ -24,6 +26,7 @@ from frigate.data_processing.common.face.model import ( FaceNetRecognizer, FaceRecognizer, ) +from frigate.types import TrackedObjectUpdateTypesEnum from frigate.util.builtin import EventsPerSecond from frigate.util.image import area @@ -42,11 +45,13 @@ class FaceRealTimeProcessor(RealTimeProcessorApi): def __init__( self, config: FrigateConfig, + requestor: InterProcessRequestor, sub_label_publisher: EventMetadataPublisher, metrics: DataProcessorMetrics, ): super().__init__(config, metrics) self.face_config = config.face_recognition + self.requestor = requestor self.sub_label_publisher = sub_label_publisher self.face_detector: cv2.FaceDetectorYN = None self.requires_face_detection = "face" not in self.config.objects.all_objects @@ -157,8 +162,9 @@ class FaceRealTimeProcessor(RealTimeProcessorApi): def process_frame(self, obj_data: dict[str, any], frame: np.ndarray): """Look for faces in image.""" self.metrics.face_rec_fps.value = self.faces_per_second.eps() + camera = obj_data["camera"] - if not self.config.cameras[obj_data["camera"]].face_recognition.enabled: + if not self.config.cameras[camera].face_recognition.enabled: return start = datetime.datetime.now().timestamp() @@ -245,7 +251,7 @@ class FaceRealTimeProcessor(RealTimeProcessorApi): if ( not face_box or area(face_box) - < self.config.cameras[obj_data["camera"]].face_recognition.min_area + < self.config.cameras[camera].face_recognition.min_area ): logger.debug(f"Invalid face box {face}") return @@ -286,6 +292,20 @@ class FaceRealTimeProcessor(RealTimeProcessorApi): self.person_face_history[id] ) + self.requestor.send_data( + "tracked_object_update", + json.dumps( + { + "type": TrackedObjectUpdateTypesEnum.face, + "name": weighted_sub_label, + "score": weighted_score, + "id": id, + "camera": camera, + "timestamp": start, + } + ), + ) + if weighted_score >= self.face_config.recognition_threshold: self.sub_label_publisher.publish( EventMetadataTypeEnum.sub_label, diff --git a/frigate/data_processing/real_time/license_plate.py b/frigate/data_processing/real_time/license_plate.py index 95d53a343..864968073 100644 --- a/frigate/data_processing/real_time/license_plate.py +++ b/frigate/data_processing/real_time/license_plate.py @@ -5,6 +5,7 @@ import logging import numpy as np from frigate.comms.event_metadata_updater import EventMetadataPublisher +from frigate.comms.inter_process import InterProcessRequestor from frigate.config import FrigateConfig from frigate.data_processing.common.license_plate.mixin import ( LicensePlateProcessingMixin, @@ -23,11 +24,13 @@ class LicensePlateRealTimeProcessor(LicensePlateProcessingMixin, RealTimeProcess def __init__( self, config: FrigateConfig, + requestor: InterProcessRequestor, sub_label_publisher: EventMetadataPublisher, metrics: DataProcessorMetrics, model_runner: LicensePlateModelRunner, detected_license_plates: dict[str, dict[str, any]], ): + self.requestor = requestor self.detected_license_plates = detected_license_plates self.model_runner = model_runner self.lpr_config = config.lpr diff --git a/frigate/detectors/plugins/rknn.py b/frigate/detectors/plugins/rknn.py index 7794172c1..1fdd8b9c0 100644 --- a/frigate/detectors/plugins/rknn.py +++ b/frigate/detectors/plugins/rknn.py @@ -19,7 +19,11 @@ DETECTOR_KEY = "rknn" supported_socs = ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588"] -supported_models = {ModelTypeEnum.yolonas: "^deci-fp16-yolonas_[sml]$"} +supported_models = { + ModelTypeEnum.yologeneric: "^frigate-fp16-yolov9-[cemst]$", + ModelTypeEnum.yolonas: "^deci-fp16-yolonas_[sml]$", + ModelTypeEnum.yolox: "^rock-(fp16|i8)-yolox_(nano|tiny)$", +} model_cache_dir = os.path.join(MODEL_CACHE_DIR, "rknn_cache/") @@ -115,7 +119,7 @@ class Rknn(DetectionApi): model_props["model_type"] = model_type if model_matched: - model_props["filename"] = model_path + f"-{soc}-v2.3.0-1.rknn" + model_props["filename"] = model_path + f"-{soc}-v2.3.2-1.rknn" model_props["path"] = model_cache_dir + model_props["filename"] @@ -136,7 +140,7 @@ class Rknn(DetectionApi): os.mkdir(model_cache_dir) urllib.request.urlretrieve( - f"https://github.com/MarcA711/rknn-models/releases/download/v2.3.0/{filename}", + f"https://github.com/MarcA711/rknn-models/releases/download/v2.3.2/{filename}", model_cache_dir + filename, ) diff --git a/frigate/embeddings/__init__.py b/frigate/embeddings/__init__.py index c60465845..3650303b5 100644 --- a/frigate/embeddings/__init__.py +++ b/frigate/embeddings/__init__.py @@ -5,11 +5,13 @@ import json import logging import multiprocessing as mp import os +import re import signal import threading from types import FrameType from typing import Optional, Union +from pathvalidate import ValidationError, sanitize_filename from setproctitle import setproctitle from frigate.comms.embeddings_updater import EmbeddingsRequestEnum, EmbeddingsRequestor @@ -240,6 +242,42 @@ class EmbeddingsContext: EmbeddingsRequestEnum.clear_face_classifier.value, None ) + def rename_face(self, old_name: str, new_name: str) -> None: + valid_name_pattern = r"^[a-zA-Z0-9\s_-]{1,50}$" + + try: + sanitized_old_name = sanitize_filename(old_name, replacement_text="_") + sanitized_new_name = sanitize_filename(new_name, replacement_text="_") + except ValidationError as e: + raise ValueError(f"Invalid face name: {str(e)}") + + if not re.match(valid_name_pattern, old_name): + raise ValueError(f"Invalid old face name: {old_name}") + if not re.match(valid_name_pattern, new_name): + raise ValueError(f"Invalid new face name: {new_name}") + if sanitized_old_name != old_name: + raise ValueError(f"Old face name contains invalid characters: {old_name}") + if sanitized_new_name != new_name: + raise ValueError(f"New face name contains invalid characters: {new_name}") + + old_path = os.path.normpath(os.path.join(FACE_DIR, old_name)) + new_path = os.path.normpath(os.path.join(FACE_DIR, new_name)) + + # Prevent path traversal + if not old_path.startswith( + os.path.normpath(FACE_DIR) + ) or not new_path.startswith(os.path.normpath(FACE_DIR)): + raise ValueError("Invalid path detected") + + if not os.path.exists(old_path): + raise ValueError(f"Face {old_name} not found.") + + os.rename(old_path, new_path) + + self.requestor.send_data( + EmbeddingsRequestEnum.clear_face_classifier.value, None + ) + def update_description(self, event_id: str, description: str) -> None: self.requestor.send_data( EmbeddingsRequestEnum.embed_description.value, diff --git a/frigate/embeddings/maintainer.py b/frigate/embeddings/maintainer.py index ba9b42f77..f62a5476b 100644 --- a/frigate/embeddings/maintainer.py +++ b/frigate/embeddings/maintainer.py @@ -120,7 +120,7 @@ class EmbeddingMaintainer(threading.Thread): if self.config.face_recognition.enabled: self.realtime_processors.append( FaceRealTimeProcessor( - self.config, self.event_metadata_publisher, metrics + self.config, self.requestor, self.event_metadata_publisher, metrics ) ) @@ -135,6 +135,7 @@ class EmbeddingMaintainer(threading.Thread): self.realtime_processors.append( LicensePlateRealTimeProcessor( self.config, + self.requestor, self.event_metadata_publisher, metrics, lpr_model_runner, @@ -149,6 +150,7 @@ class EmbeddingMaintainer(threading.Thread): self.post_processors.append( LicensePlatePostProcessor( self.config, + self.requestor, self.event_metadata_publisher, metrics, lpr_model_runner, @@ -229,7 +231,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_updates(self) -> None: """Process event updates""" - update = self.event_subscriber.check_for_update(timeout=0.01) + update = self.event_subscriber.check_for_update() if update is None: return @@ -322,7 +324,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_finalized(self) -> None: """Process the end of an event.""" while True: - ended = self.event_end_subscriber.check_for_update(timeout=0.01) + ended = self.event_end_subscriber.check_for_update() if ended == None: break @@ -418,7 +420,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_recordings_updates(self) -> None: """Process recordings updates.""" while True: - recordings_data = self.recordings_subscriber.check_for_update(timeout=0.01) + recordings_data = self.recordings_subscriber.check_for_update() if recordings_data == None: break @@ -435,7 +437,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_event_metadata(self): # Check for regenerate description requests - (topic, payload) = self.event_metadata_subscriber.check_for_update(timeout=0.01) + (topic, payload) = self.event_metadata_subscriber.check_for_update() if topic is None: return @@ -449,7 +451,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_dedicated_lpr(self) -> None: """Process event updates""" - (topic, data) = self.detection_subscriber.check_for_update(timeout=0.01) + (topic, data) = self.detection_subscriber.check_for_update() if topic is None: return @@ -583,6 +585,7 @@ class EmbeddingMaintainer(threading.Thread): "type": TrackedObjectUpdateTypesEnum.description, "id": event.id, "description": description, + "camera": event.camera, }, ) diff --git a/frigate/embeddings/onnx/jina_v1_embedding.py b/frigate/embeddings/onnx/jina_v1_embedding.py index 9924ff9e1..b448ec816 100644 --- a/frigate/embeddings/onnx/jina_v1_embedding.py +++ b/frigate/embeddings/onnx/jina_v1_embedding.py @@ -36,11 +36,12 @@ class JinaV1TextEmbedding(BaseEmbedding): requestor: InterProcessRequestor, device: str = "AUTO", ): + HF_ENDPOINT = os.environ.get("HF_ENDPOINT", "https://huggingface.co") super().__init__( model_name="jinaai/jina-clip-v1", model_file="text_model_fp16.onnx", download_urls={ - "text_model_fp16.onnx": "https://huggingface.co/jinaai/jina-clip-v1/resolve/main/onnx/text_model_fp16.onnx", + "text_model_fp16.onnx": f"{HF_ENDPOINT}/jinaai/jina-clip-v1/resolve/main/onnx/text_model_fp16.onnx", }, ) self.tokenizer_file = "tokenizer" @@ -156,12 +157,13 @@ class JinaV1ImageEmbedding(BaseEmbedding): if model_size == "large" else "vision_model_quantized.onnx" ) + HF_ENDPOINT = os.environ.get("HF_ENDPOINT", "https://huggingface.co") super().__init__( model_name="jinaai/jina-clip-v1", model_file=model_file, download_urls={ - model_file: f"https://huggingface.co/jinaai/jina-clip-v1/resolve/main/onnx/{model_file}", - "preprocessor_config.json": "https://huggingface.co/jinaai/jina-clip-v1/resolve/main/preprocessor_config.json", + model_file: f"{HF_ENDPOINT}/jinaai/jina-clip-v1/resolve/main/onnx/{model_file}", + "preprocessor_config.json": f"{HF_ENDPOINT}/jinaai/jina-clip-v1/resolve/main/preprocessor_config.json", }, ) self.requestor = requestor diff --git a/frigate/embeddings/onnx/jina_v2_embedding.py b/frigate/embeddings/onnx/jina_v2_embedding.py index be6573e50..e9def9a07 100644 --- a/frigate/embeddings/onnx/jina_v2_embedding.py +++ b/frigate/embeddings/onnx/jina_v2_embedding.py @@ -34,12 +34,13 @@ class JinaV2Embedding(BaseEmbedding): model_file = ( "model_fp16.onnx" if model_size == "large" else "model_quantized.onnx" ) + HF_ENDPOINT = os.environ.get("HF_ENDPOINT", "https://huggingface.co") super().__init__( model_name="jinaai/jina-clip-v2", model_file=model_file, download_urls={ - model_file: f"https://huggingface.co/jinaai/jina-clip-v2/resolve/main/onnx/{model_file}", - "preprocessor_config.json": "https://huggingface.co/jinaai/jina-clip-v2/resolve/main/preprocessor_config.json", + model_file: f"{HF_ENDPOINT}/jinaai/jina-clip-v2/resolve/main/onnx/{model_file}", + "preprocessor_config.json": f"{HF_ENDPOINT}/jinaai/jina-clip-v2/resolve/main/preprocessor_config.json", }, ) self.tokenizer_file = "tokenizer" diff --git a/frigate/events/maintainer.py b/frigate/events/maintainer.py index 844039b0d..2b0fc4193 100644 --- a/frigate/events/maintainer.py +++ b/frigate/events/maintainer.py @@ -75,7 +75,7 @@ class EventProcessor(threading.Thread): ).execute() while not self.stop_event.is_set(): - update = self.event_receiver.check_for_update() + update = self.event_receiver.check_for_update(timeout=1) if update == None: continue diff --git a/frigate/object_detection/base.py b/frigate/object_detection/base.py index b837984fa..c77a720a0 100644 --- a/frigate/object_detection/base.py +++ b/frigate/object_detection/base.py @@ -6,6 +6,8 @@ import queue import signal import threading from abc import ABC, abstractmethod +from multiprocessing import Queue, Value +from multiprocessing.synchronize import Event as MpEvent import numpy as np from setproctitle import setproctitle @@ -15,6 +17,7 @@ from frigate.detectors import create_detector from frigate.detectors.detector_config import ( BaseDetectorConfig, InputDTypeEnum, + ModelConfig, ) from frigate.util.builtin import EventsPerSecond, load_labels from frigate.util.image import SharedMemoryFrameManager, UntrackedSharedMemory @@ -85,11 +88,11 @@ class LocalObjectDetector(ObjectDetector): def run_detector( name: str, - detection_queue: mp.Queue, - out_events: dict[str, mp.Event], - avg_speed, - start, - detector_config, + detection_queue: Queue, + out_events: dict[str, MpEvent], + avg_speed: Value, + start: Value, + detector_config: BaseDetectorConfig, ): threading.current_thread().name = f"detector:{name}" logger = logging.getLogger(f"detector.{name}") @@ -97,7 +100,7 @@ def run_detector( setproctitle(f"frigate.detector.{name}") listen() - stop_event = mp.Event() + stop_event: MpEvent = mp.Event() def receiveSignal(signalNumber, frame): stop_event.set() @@ -145,17 +148,17 @@ def run_detector( class ObjectDetectProcess: def __init__( self, - name, - detection_queue, - out_events, - detector_config, + name: str, + detection_queue: Queue, + out_events: dict[str, MpEvent], + detector_config: BaseDetectorConfig, ): self.name = name self.out_events = out_events self.detection_queue = detection_queue - self.avg_inference_speed = mp.Value("d", 0.01) - self.detection_start = mp.Value("d", 0.0) - self.detect_process = None + self.avg_inference_speed = Value("d", 0.01) + self.detection_start = Value("d", 0.0) + self.detect_process: util.Process | None = None self.detector_config = detector_config self.start_or_restart() @@ -193,7 +196,15 @@ class ObjectDetectProcess: class RemoteObjectDetector: - def __init__(self, name, labels, detection_queue, event, model_config, stop_event): + def __init__( + self, + name: str, + labels: dict[int, str], + detection_queue: Queue, + event: MpEvent, + model_config: ModelConfig, + stop_event: MpEvent, + ): self.labels = labels self.name = name self.fps = EventsPerSecond() diff --git a/frigate/ptz/autotrack.py b/frigate/ptz/autotrack.py index 81e54c6d7..c6db85a6c 100644 --- a/frigate/ptz/autotrack.py +++ b/frigate/ptz/autotrack.py @@ -206,6 +206,7 @@ class PtzAutoTracker: self.calibrating: dict[str, object] = {} self.intercept: dict[str, object] = {} self.move_coefficients: dict[str, object] = {} + self.zoom_time: dict[str, float] = {} self.zoom_factor: dict[str, object] = {} # if cam is set to autotrack, onvif should be set up @@ -272,7 +273,12 @@ class PtzAutoTracker: move_status_supported = self.onvif.get_service_capabilities(camera) - if move_status_supported is None or move_status_supported.lower() != "true": + if not ( + isinstance(move_status_supported, bool) and move_status_supported + ) and not ( + isinstance(move_status_supported, str) + and move_status_supported.lower() == "true" + ): logger.warning( f"Disabling autotracking for {camera}: ONVIF MoveStatus not supported" ) @@ -292,7 +298,7 @@ class PtzAutoTracker: self.move_threads[camera].start() if camera_config.onvif.autotracking.movement_weights: - if len(camera_config.onvif.autotracking.movement_weights) == 5: + if len(camera_config.onvif.autotracking.movement_weights) == 6: camera_config.onvif.autotracking.movement_weights = [ float(val) for val in camera_config.onvif.autotracking.movement_weights @@ -311,7 +317,10 @@ class PtzAutoTracker: camera_config.onvif.autotracking.movement_weights[2] ) self.move_coefficients[camera] = ( - camera_config.onvif.autotracking.movement_weights[3:] + camera_config.onvif.autotracking.movement_weights[3:5] + ) + self.zoom_time[camera] = ( + camera_config.onvif.autotracking.movement_weights[5] ) else: camera_config.onvif.autotracking.enabled = False @@ -360,6 +369,7 @@ class PtzAutoTracker: != ZoomingModeEnum.disabled ): logger.info(f"Calibration for {camera} in progress: 0% complete") + self.zoom_time[camera] = 0 for i in range(2): # absolute move to 0 - fully zoomed out @@ -403,6 +413,7 @@ class PtzAutoTracker: zoom_out_values.append(self.ptz_metrics[camera].zoom_level.value) + zoom_start_time = time.time() # relative move to 0.01 self.onvif._move_relative( camera, @@ -415,13 +426,45 @@ class PtzAutoTracker: while not self.ptz_metrics[camera].motor_stopped.is_set(): self.onvif.get_camera_status(camera) + zoom_stop_time = time.time() + + full_relative_start_time = time.time() + + self.onvif._move_relative( + camera, + -1, + -1, + -1e-2, + 1, + ) + + while not self.ptz_metrics[camera].motor_stopped.is_set(): + self.onvif.get_camera_status(camera) + + full_relative_stop_time = time.time() + + self.onvif._move_relative( + camera, + 1, + 1, + 1e-2, + 1, + ) + + while not self.ptz_metrics[camera].motor_stopped.is_set(): + self.onvif.get_camera_status(camera) + + self.zoom_time[camera] = ( + full_relative_stop_time - full_relative_start_time + ) - (zoom_stop_time - zoom_start_time) + zoom_in_values.append(self.ptz_metrics[camera].zoom_level.value) self.ptz_metrics[camera].max_zoom.value = max(zoom_in_values) self.ptz_metrics[camera].min_zoom.value = min(zoom_out_values) logger.debug( - f"{camera}: Calibration values: max zoom: {self.ptz_metrics[camera].max_zoom.value}, min zoom: {self.ptz_metrics[camera].min_zoom.value}" + f"{camera}: Calibration values: max zoom: {self.ptz_metrics[camera].max_zoom.value}, min zoom: {self.ptz_metrics[camera].min_zoom.value}, zoom time: {self.zoom_time[camera]}" ) else: @@ -537,6 +580,7 @@ class PtzAutoTracker: self.ptz_metrics[camera].max_zoom.value, self.intercept[camera], *self.move_coefficients[camera], + self.zoom_time[camera], ] ) @@ -1061,6 +1105,7 @@ class PtzAutoTracker: average_velocity = np.zeros((4,)) predicted_box = obj.obj_data["box"] + zoom_predicted_box = obj.obj_data["box"] centroid_x = obj.obj_data["centroid"][0] centroid_y = obj.obj_data["centroid"][1] @@ -1069,20 +1114,20 @@ class PtzAutoTracker: pan = ((centroid_x / camera_width) - 0.5) * 2 tilt = (0.5 - (centroid_y / camera_height)) * 2 + _, average_velocity = ( + self._get_valid_velocity(camera, obj) + if "velocity" not in self.tracked_object_metrics[camera] + else ( + self.tracked_object_metrics[camera]["valid_velocity"], + self.tracked_object_metrics[camera]["velocity"], + ) + ) + if ( camera_config.onvif.autotracking.movement_weights ): # use estimates if we have available coefficients predicted_movement_time = self._predict_movement_time(camera, pan, tilt) - _, average_velocity = ( - self._get_valid_velocity(camera, obj) - if "velocity" not in self.tracked_object_metrics[camera] - else ( - self.tracked_object_metrics[camera]["valid_velocity"], - self.tracked_object_metrics[camera]["velocity"], - ) - ) - if np.any(average_velocity): # this box could exceed the frame boundaries if velocity is high # but we'll handle that in _enqueue_move() as two separate moves @@ -1111,6 +1156,34 @@ class PtzAutoTracker: camera, obj, predicted_box, predicted_movement_time, debug_zoom=True ) + if ( + camera_config.onvif.autotracking.movement_weights + and camera_config.onvif.autotracking.zooming == ZoomingModeEnum.relative + and zoom != 0 + ): + zoom_predicted_movement_time = 0 + + if np.any(average_velocity): + zoom_predicted_movement_time = abs(zoom) * self.zoom_time[camera] + + zoom_predicted_box = ( + predicted_box + + camera_fps * zoom_predicted_movement_time * average_velocity + ) + + zoom_predicted_box = np.round(zoom_predicted_box).astype(int) + + centroid_x = round((zoom_predicted_box[0] + zoom_predicted_box[2]) / 2) + centroid_y = round((zoom_predicted_box[1] + zoom_predicted_box[3]) / 2) + + # recalculate pan and tilt with new centroid + pan = ((centroid_x / camera_width) - 0.5) * 2 + tilt = (0.5 - (centroid_y / camera_height)) * 2 + + logger.debug( + f"{camera}: Zoom amount: {zoom}, zoom predicted time: {zoom_predicted_movement_time}, zoom predicted box: {tuple(zoom_predicted_box)}" + ) + self._enqueue_move(camera, obj.obj_data["frame_time"], pan, tilt, zoom) def _autotrack_move_zoom_only(self, camera, obj): @@ -1242,7 +1315,7 @@ class PtzAutoTracker: return # this is a brand new object that's on our camera, has our label, entered the zone, - # is not a false positive, and is not initially motionless + # is not a false positive, and is active if ( # new object self.tracked_object[camera] is None @@ -1252,7 +1325,7 @@ class PtzAutoTracker: and not obj.previous["false_positive"] and not obj.false_positive and not self.tracked_object_history[camera] - and obj.obj_data["motionless_count"] == 0 + and obj.active ): logger.debug( f"{camera}: New object: {obj.obj_data['id']} {obj.obj_data['box']} {obj.obj_data['frame_time']}" diff --git a/frigate/ptz/onvif.py b/frigate/ptz/onvif.py index eec57dbac..8b133469c 100644 --- a/frigate/ptz/onvif.py +++ b/frigate/ptz/onvif.py @@ -74,7 +74,7 @@ class OnvifController: "features": [], "presets": {}, } - except ONVIFError as e: + except (Fault, ONVIFError, TransportError, Exception) as e: logger.error(f"Failed to create ONVIF camera instance for {cam_name}: {e}") # track initial failures self.failed_cams[cam_name] = { @@ -100,7 +100,7 @@ class OnvifController: # this will fire an exception if camera is not a ptz capabilities = onvif.get_definition("ptz") logger.debug(f"Onvif capabilities for {camera_name}: {capabilities}") - except (ONVIFError, Fault, TransportError) as e: + except (Fault, ONVIFError, TransportError, Exception) as e: logger.error( f"Unable to get Onvif capabilities for camera: {camera_name}: {e}" ) @@ -109,7 +109,7 @@ class OnvifController: try: profiles = await media.GetProfiles() logger.debug(f"Onvif profiles for {camera_name}: {profiles}") - except (ONVIFError, Fault, TransportError) as e: + except (Fault, ONVIFError, TransportError, Exception) as e: logger.error( f"Unable to get Onvif media profiles for camera: {camera_name}: {e}" ) @@ -263,7 +263,7 @@ class OnvifController: # setup existing presets try: presets: list[dict] = await ptz.GetPresets({"ProfileToken": profile.token}) - except ONVIFError as e: + except (Fault, ONVIFError, TransportError, Exception) as e: logger.warning(f"Unable to get presets from camera: {camera_name}: {e}") presets = [] @@ -392,7 +392,7 @@ class OnvifController: try: asyncio.run(self.cams[camera_name]["ptz"].ContinuousMove(move_request)) - except ONVIFError as e: + except (Fault, ONVIFError, TransportError, Exception) as e: logger.warning(f"Onvif sending move request to {camera_name} failed: {e}") def _move_relative(self, camera_name: str, pan, tilt, zoom, speed) -> None: @@ -593,7 +593,7 @@ class OnvifController: self._zoom(camera_name, command) else: self._move(camera_name, command) - except ONVIFError as e: + except (Fault, ONVIFError, TransportError, Exception) as e: logger.error(f"Unable to handle onvif command: {e}") async def get_camera_info(self, camera_name: str) -> dict[str, any]: diff --git a/frigate/record/maintainer.py b/frigate/record/maintainer.py index 9f08f88a9..25783965c 100644 --- a/frigate/record/maintainer.py +++ b/frigate/record/maintainer.py @@ -27,6 +27,7 @@ from frigate.config import FrigateConfig, RetainModeEnum from frigate.const import ( CACHE_DIR, CACHE_SEGMENT_FORMAT, + FAST_QUEUE_TIMEOUT, INSERT_MANY_RECORDINGS, MAX_SEGMENT_DURATION, MAX_SEGMENTS_IN_CACHE, @@ -38,8 +39,6 @@ from frigate.util.services import get_video_properties logger = logging.getLogger(__name__) -QUEUE_READ_TIMEOUT = 0.00001 # seconds - class SegmentInfo: def __init__( @@ -536,7 +535,7 @@ class RecordingMaintainer(threading.Thread): # empty the object recordings info queue while True: (topic, data) = self.detection_subscriber.check_for_update( - timeout=QUEUE_READ_TIMEOUT + timeout=FAST_QUEUE_TIMEOUT ) if not topic: diff --git a/frigate/test/test_config.py b/frigate/test/test_config.py index 5a3deefda..02f5d5e74 100644 --- a/frigate/test/test_config.py +++ b/frigate/test/test_config.py @@ -1491,7 +1491,9 @@ class TestConfig(unittest.TestCase): "fps": 5, }, "onvif": { - "autotracking": {"movement_weights": "0, 1, 1.23, 2.34, 0.50"} + "autotracking": { + "movement_weights": "0, 1, 1.23, 2.34, 0.50, 1" + } }, } }, @@ -1504,6 +1506,7 @@ class TestConfig(unittest.TestCase): "1.23", "2.34", "0.5", + "1.0", ] def test_fails_invalid_movement_weights(self): diff --git a/frigate/track/object_processing.py b/frigate/track/object_processing.py index 35bca4d5e..702df32bd 100644 --- a/frigate/track/object_processing.py +++ b/frigate/track/object_processing.py @@ -28,7 +28,7 @@ from frigate.config import ( RecordConfig, SnapshotsConfig, ) -from frigate.const import UPDATE_CAMERA_ACTIVITY +from frigate.const import FAST_QUEUE_TIMEOUT, UPDATE_CAMERA_ACTIVITY from frigate.events.types import EventStateEnum, EventTypeEnum from frigate.models import Event, Timeline from frigate.track.tracked_object import TrackedObject @@ -682,7 +682,9 @@ class TrackedObjectProcessor(threading.Thread): # cleanup event finished queue while not self.stop_event.is_set(): - update = self.event_end_subscriber.check_for_update(timeout=0.01) + update = self.event_end_subscriber.check_for_update( + timeout=FAST_QUEUE_TIMEOUT + ) if not update: break diff --git a/frigate/types.py b/frigate/types.py index 2422c5551..ee48cc02b 100644 --- a/frigate/types.py +++ b/frigate/types.py @@ -25,3 +25,5 @@ class ModelStatusTypesEnum(str, Enum): class TrackedObjectUpdateTypesEnum(str, Enum): description = "description" + face = "face" + lpr = "lpr" diff --git a/frigate/util/config.py b/frigate/util/config.py index 7bdc0c3d6..59d704b9e 100644 --- a/frigate/util/config.py +++ b/frigate/util/config.py @@ -319,6 +319,21 @@ def migrate_016_0(config: dict[str, dict[str, any]]) -> dict[str, dict[str, any] camera_config["live"] = live_config + # add another value to movement_weights for autotracking cams + onvif_config = camera_config.get("onvif", {}) + if "autotracking" in onvif_config: + movement_weights = ( + camera_config.get("onvif", {}) + .get("autotracking") + .get("movement_weights", {}) + ) + + if movement_weights and len(movement_weights.split(",")) == 5: + onvif_config["autotracking"]["movement_weights"] = ( + movement_weights + ", 0" + ) + camera_config["onvif"] = onvif_config + new_config["cameras"][name] = camera_config new_config["version"] = "0.16-0" diff --git a/frigate/util/model.py b/frigate/util/model.py index 2bb64357d..5528c15ca 100644 --- a/frigate/util/model.py +++ b/frigate/util/model.py @@ -340,7 +340,6 @@ def get_ort_providers( providers.append(provider) options.append( { - "arena_extend_strategy": "kSameAsRequested", "cache_dir": os.path.join(MODEL_CACHE_DIR, "openvino/ort"), "device_type": device, } diff --git a/frigate/util/services.py b/frigate/util/services.py index 7210837ff..1c778bac4 100644 --- a/frigate/util/services.py +++ b/frigate/util/services.py @@ -408,7 +408,13 @@ def get_rockchip_npu_stats() -> dict[str, str]: try: with open("/sys/kernel/debug/rknpu/load", "r") as f: npu_output = f.read() - core_loads = re.findall(r"Core\d+:\s*(\d+)%", npu_output) + + if "Core0:" in npu_output: + # multi core NPU + core_loads = re.findall(r"Core\d+:\s*(\d+)%", npu_output) + else: + # single core NPU + core_loads = re.findall(r"NPU load:\s+(\d+)%", npu_output) except FileNotFoundError: core_loads = None diff --git a/frigate/video.py b/frigate/video.py index d07a72b9a..e6243295c 100755 --- a/frigate/video.py +++ b/frigate/video.py @@ -7,6 +7,9 @@ import signal import subprocess as sp import threading import time +from multiprocessing import Queue, Value +from multiprocessing.synchronize import Event as MpEvent +from typing import Any import cv2 from setproctitle import setproctitle @@ -99,10 +102,10 @@ def capture_frames( frame_shape: tuple[int, int], frame_manager: FrameManager, frame_queue, - fps: mp.Value, - skipped_fps: mp.Value, - current_frame: mp.Value, - stop_event: mp.Event, + fps: Value, + skipped_fps: Value, + current_frame: Value, + stop_event: MpEvent, ): frame_size = frame_shape[0] * frame_shape[1] frame_rate = EventsPerSecond() @@ -167,7 +170,7 @@ class CameraWatchdog(threading.Thread): camera_name, config: CameraConfig, shm_frame_count: int, - frame_queue: mp.Queue, + frame_queue: Queue, camera_fps, skipped_fps, ffmpeg_pid, @@ -402,10 +405,10 @@ class CameraCapture(threading.Thread): frame_index: int, ffmpeg_process, frame_shape: tuple[int, int], - frame_queue: mp.Queue, - fps, - skipped_fps, - stop_event, + frame_queue: Queue, + fps: Value, + skipped_fps: Value, + stop_event: MpEvent, ): threading.Thread.__init__(self) self.name = f"capture:{config.name}" @@ -419,7 +422,7 @@ class CameraCapture(threading.Thread): self.skipped_fps = skipped_fps self.frame_manager = SharedMemoryFrameManager() self.ffmpeg_process = ffmpeg_process - self.current_frame = mp.Value("d", 0.0) + self.current_frame = Value("d", 0.0) self.last_frame = 0 def run(self): @@ -469,14 +472,14 @@ def capture_camera( def track_camera( name, config: CameraConfig, - model_config, - labelmap, - detection_queue, - result_connection, + model_config: ModelConfig, + labelmap: dict[int, str], + detection_queue: Queue, + result_connection: MpEvent, detected_objects_queue, camera_metrics: CameraMetrics, ptz_metrics: PTZMetrics, - region_grid, + region_grid: list[list[dict[str, Any]]], ): stop_event = mp.Event() @@ -584,8 +587,8 @@ def detect( def process_frames( camera_name: str, requestor: InterProcessRequestor, - frame_queue: mp.Queue, - frame_shape, + frame_queue: Queue, + frame_shape: tuple[int, int], model_config: ModelConfig, camera_config: CameraConfig, detect_config: DetectConfig, @@ -593,13 +596,13 @@ def process_frames( motion_detector: MotionDetector, object_detector: RemoteObjectDetector, object_tracker: ObjectTracker, - detected_objects_queue: mp.Queue, + detected_objects_queue: Queue, camera_metrics: CameraMetrics, objects_to_track: list[str], object_filters, - stop_event, + stop_event: MpEvent, ptz_metrics: PTZMetrics, - region_grid, + region_grid: list[list[dict[str, Any]]], exit_on_empty: bool = False, ): next_region_update = get_tomorrow_at_time(2) diff --git a/web/public/locales/ca/audio.json b/web/public/locales/ca/audio.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/audio.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/common.json b/web/public/locales/ca/common.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/common.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/components/auth.json b/web/public/locales/ca/components/auth.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/components/auth.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/components/camera.json b/web/public/locales/ca/components/camera.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/components/camera.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/components/dialog.json b/web/public/locales/ca/components/dialog.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/components/dialog.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/components/filter.json b/web/public/locales/ca/components/filter.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/components/filter.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/components/icons.json b/web/public/locales/ca/components/icons.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/components/icons.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/components/input.json b/web/public/locales/ca/components/input.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/components/input.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/components/player.json b/web/public/locales/ca/components/player.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/components/player.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/objects.json b/web/public/locales/ca/objects.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/objects.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/configEditor.json b/web/public/locales/ca/views/configEditor.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/configEditor.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/events.json b/web/public/locales/ca/views/events.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/events.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/explore.json b/web/public/locales/ca/views/explore.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/explore.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/exports.json b/web/public/locales/ca/views/exports.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/exports.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/faceLibrary.json b/web/public/locales/ca/views/faceLibrary.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/faceLibrary.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/live.json b/web/public/locales/ca/views/live.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/live.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/recording.json b/web/public/locales/ca/views/recording.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/recording.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/search.json b/web/public/locales/ca/views/search.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/search.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/settings.json b/web/public/locales/ca/views/settings.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/settings.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ca/views/system.json b/web/public/locales/ca/views/system.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ca/views/system.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/cs/common.json b/web/public/locales/cs/common.json index a7d44ce3e..f52b47572 100644 --- a/web/public/locales/cs/common.json +++ b/web/public/locales/cs/common.json @@ -54,7 +54,7 @@ "disabled": "Vypnuto", "disable": "Vypni", "save": "Uložit", - "saving": "Ukládám...", + "saving": "Ukládám…", "cancel": "Zrušit", "close": "Zavři", "copy": "Zkopíruj", diff --git a/web/public/locales/cs/components/icons.json b/web/public/locales/cs/components/icons.json index f4efc4ce0..a98f6d6e0 100644 --- a/web/public/locales/cs/components/icons.json +++ b/web/public/locales/cs/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "Zvolte ikonu", "search": { - "placeholder": "Hledejte ikonu...." + "placeholder": "Hledejte ikonu…" } } } diff --git a/web/public/locales/cs/components/player.json b/web/public/locales/cs/components/player.json index 8e432193d..6f32e403c 100644 --- a/web/public/locales/cs/components/player.json +++ b/web/public/locales/cs/components/player.json @@ -26,7 +26,7 @@ "value": "{{seconds}} sekund", "short": { "title": "Latence", - "value": "{{seconds}} sek." + "value": "{{seconds}} sek" } }, "totalFrames": "Celkový počet snímků:", diff --git a/web/public/locales/de/common.json b/web/public/locales/de/common.json index 3fb9ba28a..b7a8cdc18 100644 --- a/web/public/locales/de/common.json +++ b/web/public/locales/de/common.json @@ -56,6 +56,27 @@ "formattedTimestampExcludeSeconds": { "24hour": "%-d %b, %H:%M", "12hour": "%-d %b, %H:%M" + }, + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "MMM d, h:mm aaa", + "24hour": "MMM d, HH:mm" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "MMM d yyyy, h:mm aaa", + "24hour": "MMM d yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "MMM d", + "formattedTimestampFilename": { + "12hour": "MM-dd-yy-h-mm-ss-a", + "24hour": "MM-dd-yy-HH-mm-ss" } }, "button": { @@ -66,7 +87,7 @@ "enable": "Aktivieren", "disabled": "deaktiviert", "disable": "deaktivieren", - "saving": "Speichere...", + "saving": "Speichere…", "close": "Schließen", "back": "Zurück", "history": "Historie", @@ -132,7 +153,8 @@ "fa": "Persisch", "uk": "Ukrainisch", "he": "Hebräisch", - "sk": "Slowakisch" + "sk": "Slowakisch", + "yue": "粵語 (Kantonesisch)" }, "appearance": "Erscheinung", "theme": { @@ -142,7 +164,8 @@ "default": "Standard", "nord": "Norden", "red": "Rot", - "contrast": "Hoher Kontrast" + "contrast": "Hoher Kontrast", + "highcontrast": "Hoher Kontrast" }, "help": "Hilfe", "documentation": { diff --git a/web/public/locales/de/components/camera.json b/web/public/locales/de/components/camera.json index 9f0ba88b3..fdf9dcf3b 100644 --- a/web/public/locales/de/components/camera.json +++ b/web/public/locales/de/components/camera.json @@ -9,7 +9,7 @@ }, "name": { "label": "Name", - "placeholder": "Gib einen Namen ein...", + "placeholder": "Gib einen Namen ein…", "errorMessage": { "exists": "Name der Kameragruppe bereits vorhanden.", "nameMustNotPeriod": "Name einer Kameragruppe darf keinen Punkt enthalten.", diff --git a/web/public/locales/de/components/dialog.json b/web/public/locales/de/components/dialog.json index a21ac8d4d..e7a67695d 100644 --- a/web/public/locales/de/components/dialog.json +++ b/web/public/locales/de/components/dialog.json @@ -23,6 +23,12 @@ "false_one": "Das ist kein(e) {{label}}", "false_other": "Das sind kein(e) {{label}}", "label": "Bestätige dieses Label nicht für Frigate Plus" + }, + "question": { + "label": "Bestätige diese Beschriftung für Frigate Plus", + "ask_a": "Ist dieses Objekt ein {{label}}?", + "ask_an": "Ist dieses Objekt ein {{label}}?", + "ask_full": "Ist dieses Objekt ein {{untranslatedLabel}} ({{translatedLabel}})?" } }, "submitToPlus": { @@ -72,7 +78,7 @@ "restreaming": { "disabled": "Für diese Kamera ist das Restreaming nicht aktiviert.", "desc": { - "readTheDocumentation": "Weitere Informationen in der Dokumentation ", + "readTheDocumentation": "Weitere Informationen in der Dokumentation", "title": "Konfiguriere go2rtc, um erweiterte Live-Ansichtsoptionen und Audio für diese Kamera zu nutzen." } }, diff --git a/web/public/locales/de/components/filter.json b/web/public/locales/de/components/filter.json index 1805b19d2..f3b4882bb 100644 --- a/web/public/locales/de/components/filter.json +++ b/web/public/locales/de/components/filter.json @@ -118,8 +118,8 @@ "noLicensePlatesFound": "Keine Kennzeichen gefunden.", "title": "Bekannte Kennzeichen", "loadFailed": "Bekannte Nummernschilder konnten nicht geladen werden.", - "loading": "Lade bekannte Nummernschilder...", - "placeholder": "Tippe, um Kennzeichen zu suchen...", + "loading": "Lade bekannte Nummernschilder…", + "placeholder": "Tippe, um Kennzeichen zu suchen…", "selectPlatesFromList": "Wählen eine oder mehrere Kennzeichen aus der Liste aus." } } diff --git a/web/public/locales/de/components/icons.json b/web/public/locales/de/components/icons.json index 1455fb388..41d608b27 100644 --- a/web/public/locales/de/components/icons.json +++ b/web/public/locales/de/components/icons.json @@ -1,7 +1,7 @@ { "iconPicker": { "search": { - "placeholder": "Suche nach einem Icon..." + "placeholder": "Suche nach einem Icon…" }, "selectIcon": "Wähle ein Icon" } diff --git a/web/public/locales/de/views/events.json b/web/public/locales/de/views/events.json index 0b4b20e2e..b9149190b 100644 --- a/web/public/locales/de/views/events.json +++ b/web/public/locales/de/views/events.json @@ -31,5 +31,7 @@ "markTheseItemsAsReviewed": "Diese Objekte als geprüft kennzeichnen", "camera": "Kamera", "allCameras": "Alle Kameras", - "markAsReviewed": "Als geprüft kennzeichnen" + "markAsReviewed": "Als geprüft kennzeichnen", + "selected_one": "{{count}} ausgewählt", + "selected_other": "{{count}} ausgewählt" } diff --git a/web/public/locales/de/views/explore.json b/web/public/locales/de/views/explore.json index 763155bc3..7758ff538 100644 --- a/web/public/locales/de/views/explore.json +++ b/web/public/locales/de/views/explore.json @@ -75,7 +75,7 @@ "title": "Erkunden ist nicht Verfügbar", "embeddingsReindexing": { "context": "Erkunden kann nach der Re-Indexierung der verfolgten Objekte verwendet werden.", - "startingUp": "Startet...", + "startingUp": "Startet…", "estimatedTime": "Voraussichtlich verbleibende Zeit:", "finishingShortly": "Bald erledigt", "step": { diff --git a/web/public/locales/de/views/faceLibrary.json b/web/public/locales/de/views/faceLibrary.json index d32ae7542..96c0e8b7d 100644 --- a/web/public/locales/de/views/faceLibrary.json +++ b/web/public/locales/de/views/faceLibrary.json @@ -24,7 +24,7 @@ "selectItem": "Wähle {{item}}", "selectFace": "Wähle Gesicht", "imageEntry": { - "dropActive": "Ziehe das Bild hierher ...", + "dropActive": "Ziehe das Bild hierher…", "dropInstructions": "Ziehe ein Bild hier her oder klicke um eines auszuwählen", "maxSize": "Maximale Größe: {{size}} MB", "validation": { @@ -35,7 +35,9 @@ "addFace": "Gesicht hinzufügen", "uploadImage": "Bild hochladen", "deleteFaceAttempts": "Lösche Gesichtsversuche", - "reprocessFace": "Gesichter erneut verarbeiten" + "reprocessFace": "Gesichter erneut verarbeiten", + "renameFace": "Gesicht umbenennen", + "deleteFace": "Lösche Gesicht" }, "train": { "title": "Trainiere", @@ -72,5 +74,9 @@ "uploadFace": "Lade Bild des Gesichts hoch", "nextSteps": "Nächste Schritte", "faceName": "Gib den Namen zum Gesicht ein" + }, + "renameFace": { + "title": "Gesicht umbenennen", + "desc": "Gib den neuen Namen für das Gesicht von {{name}} ein." } } diff --git a/web/public/locales/de/views/search.json b/web/public/locales/de/views/search.json index 33cce4e8d..7caf23b88 100644 --- a/web/public/locales/de/views/search.json +++ b/web/public/locales/de/views/search.json @@ -62,6 +62,6 @@ }, "search": "Suche", "placeholder": { - "search": "Suchen..." + "search": "Suchen…" } } diff --git a/web/public/locales/de/views/settings.json b/web/public/locales/de/views/settings.json index f746b6fc0..dabe9f48f 100644 --- a/web/public/locales/de/views/settings.json +++ b/web/public/locales/de/views/settings.json @@ -86,7 +86,7 @@ "semanticSearch": { "title": "Semantische Suche", "desc": "Die semantische Suche in Frigate ermöglicht es, verfolgte Objekte innerhalb der Überprüfungselemente zu finden, indem entweder das Bild selbst, eine benutzerdefinierte Textbeschreibung oder eine automatisch generierte Beschreibung verwendet wird.", - "readTheDocumentation": "Lesen Sie die Dokumentation.", + "readTheDocumentation": "Lesen Sie die Dokumentation", "reindexNow": { "alreadyInProgress": "Neu-Indizierung läufts bereits.", "label": "Neuindizieren", @@ -221,7 +221,7 @@ "add": "Zone hinzufügen", "name": { "title": "Name", - "inputPlaceHolder": "Geben Sie einen Namen ein...", + "inputPlaceHolder": "Geben Sie einen Namen ein…", "tips": "Der Name muss aus mindestens 2 Zeichen bestehen und sollte nicht den Namen einer Kamera oder anderen Zone entsprechen." }, "objects": { diff --git a/web/public/locales/de/views/system.json b/web/public/locales/de/views/system.json index 5e1c4d282..c4026463d 100644 --- a/web/public/locales/de/views/system.json +++ b/web/public/locales/de/views/system.json @@ -29,14 +29,17 @@ "gpuUsage": "GPU Auslastung", "gpuMemory": "Grafikspeicher", "gpuDecoder": "GPU Decoder", - "gpuEncoder": "GPU Encoder" + "gpuEncoder": "GPU Encoder", + "npuUsage": "NPU Verwendung", + "npuMemory": "NPU Speicher" }, "title": "Allgemein", "detector": { "title": "Detektoren", "cpuUsage": "CPU-Auslastung des Detektors", "memoryUsage": "Arbeitsspeichernutzung des Detektors", - "inferenceSpeed": "Detektoren Inferenzgeschwindigkeit" + "inferenceSpeed": "Detektoren Inferenzgeschwindigkeit", + "temperature": "Temperatur des Detektors" }, "otherProcesses": { "title": "Andere Prozesse", @@ -142,7 +145,11 @@ "image_embedding_speed": "Geschwindigkeit der Bildeinbettung", "face_embedding_speed": "Geschwindigkeit der Gesichtseinbettung", "plate_recognition_speed": "Geschwindigkeit der Kennzeichenerkennung", - "text_embedding_speed": "Geschwindigkeit der Texteinbettung" + "text_embedding_speed": "Geschwindigkeit der Texteinbettung", + "plate_recognition": "Kennzeichen Erkennung", + "face_recognition_speed": "Gesichts Erkennungs Geschwindigkeit", + "text_embedding": "Einbettung von Bildern", + "face_recognition": "Gesichts Erkennung" }, "title": "Optimierungen", "infPerSecond": "Rückschlüsse pro Sekunde" @@ -151,7 +158,10 @@ "healthy": "Das System läuft problemlos", "ffmpegHighCpuUsage": "{{camera}} hat eine hohe FFMPEG CPU Auslastung ({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} hat eine hohe CPU Auslastung bei der Erkennung ({{detectAvg}}%)", - "reindexingEmbeddings": "Neuindizierung von Einbettungen ({{processed}}% erledigt)" + "reindexingEmbeddings": "Neuindizierung von Einbettungen ({{processed}}% erledigt)", + "detectIsSlow": "{{detect}} ist langsam ({{speed}} ms)", + "detectIsVerySlow": "{{detect}} ist sehr langsam ({{speed}} ms)", + "cameraIsOffline": "{{camera}} ist offline" }, "lastRefreshed": "Zuletzt aktualisiert: " } diff --git a/web/public/locales/en/common.json b/web/public/locales/en/common.json index 3bcb6d806..9532bcb69 100644 --- a/web/public/locales/en/common.json +++ b/web/public/locales/en/common.json @@ -88,7 +88,7 @@ "disabled": "Disabled", "disable": "Disable", "save": "Save", - "saving": "Saving...", + "saving": "Saving…", "cancel": "Cancel", "close": "Close", "copy": "Copy", @@ -153,6 +153,7 @@ "fi": "Suomi (Finnish)", "da": "Dansk (Danish)", "sk": "Slovenčina (Slovak)", + "yue": "粵語 (Cantonese)", "withSystem": { "label": "Use the system settings for language" } @@ -173,7 +174,7 @@ "green": "Green", "nord": "Nord", "red": "Red", - "contrast": "High Contrast", + "highcontrast": "High Contrast", "default": "Default" }, "help": "Help", diff --git a/web/public/locales/en/components/camera.json b/web/public/locales/en/components/camera.json index ddcdf5061..4a1495326 100644 --- a/web/public/locales/en/components/camera.json +++ b/web/public/locales/en/components/camera.json @@ -12,7 +12,7 @@ }, "name": { "label": "Name", - "placeholder": "Enter a name...", + "placeholder": "Enter a name…", "errorMessage": { "mustLeastCharacters": "Camera group name must be at least 2 characters.", "exists": "Camera group name already exists.", diff --git a/web/public/locales/en/components/dialog.json b/web/public/locales/en/components/dialog.json index a18d20baf..3e77b9f03 100644 --- a/web/public/locales/en/components/dialog.json +++ b/web/public/locales/en/components/dialog.json @@ -70,7 +70,7 @@ "disabled": "Restreaming is not enabled for this camera.", "desc": { "title": "Set up go2rtc for additional live view options and audio for this camera.", - "readTheDocumentation": "Read the documentation " + "readTheDocumentation": "Read the documentation" } }, "showStats": { diff --git a/web/public/locales/en/components/filter.json b/web/public/locales/en/components/filter.json index bff306f30..7ec5c752e 100644 --- a/web/public/locales/en/components/filter.json +++ b/web/public/locales/en/components/filter.json @@ -117,8 +117,8 @@ "recognizedLicensePlates": { "title": "Recognized License Plates", "loadFailed": "Failed to load recognized license plates.", - "loading": "Loading recognized license plates...", - "placeholder": "Type to search license plates...", + "loading": "Loading recognized license plates…", + "placeholder": "Type to search license plates…", "noLicensePlatesFound": "No license plates found.", "selectPlatesFromList": "Select one or more plates from the list." } diff --git a/web/public/locales/en/components/icons.json b/web/public/locales/en/components/icons.json index d9df89a30..e7a35a737 100644 --- a/web/public/locales/en/components/icons.json +++ b/web/public/locales/en/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "Select an icon", "search": { - "placeholder": "Search for an icon..." + "placeholder": "Search for an icon…" } } } diff --git a/web/public/locales/en/views/events.json b/web/public/locales/en/views/events.json index 2c01df8c2..98bc7c422 100644 --- a/web/public/locales/en/views/events.json +++ b/web/public/locales/en/views/events.json @@ -31,6 +31,8 @@ "label": "View new review items", "button": "New Items To Review" }, - "selected": "{{count}} selected", - "camera": "Camera" + "selected_one": "{{count}} selected", + "selected_other": "{{count}} selected", + "camera": "Camera", + "detected": "detected" } diff --git a/web/public/locales/en/views/explore.json b/web/public/locales/en/views/explore.json index 8831a719f..e8a5153ee 100644 --- a/web/public/locales/en/views/explore.json +++ b/web/public/locales/en/views/explore.json @@ -5,7 +5,7 @@ "title": "Explore is Unavailable", "embeddingsReindexing": { "context": "Explore can be used after tracked object embeddings have finished reindexing.", - "startingUp": "Starting up...", + "startingUp": "Starting up…", "estimatedTime": "Estimated time remaining:", "finishingShortly": "Finishing shortly", "step": { @@ -190,6 +190,7 @@ "trackedObjectsCount_one": "{{count}} tracked object ", "trackedObjectsCount_other": "{{count}} tracked objects ", "searchResult": { + "tooltip": "Matched {{type}} at {{confidence}}%", "deleteTrackedObject": { "toast": { "success": "Tracked object deleted successfully.", diff --git a/web/public/locales/en/views/faceLibrary.json b/web/public/locales/en/views/faceLibrary.json index da6c44ff3..289ff40cf 100644 --- a/web/public/locales/en/views/faceLibrary.json +++ b/web/public/locales/en/views/faceLibrary.json @@ -5,7 +5,8 @@ }, "details": { "person": "Person", - "confidence": "Confidence", + "subLabelScore": "Sub Label Score", + "scoreInfo": "The sub label score is the weighted score for all of the recognized face confidences, so this may differ from the score shown on the snapshot.", "face": "Face Details", "faceDesc": "Details for the face and associated object", "timestamp": "Timestamp" @@ -36,9 +37,15 @@ "title": "Delete Name", "desc": "Are you sure you want to delete the collection {{name}}? This will permanently delete all associated faces." }, + "renameFace": { + "title": "Rename Face", + "desc": "Enter a new name for {{name}}" + }, "button": { "deleteFaceAttempts": "Delete Face Attempts", "addFace": "Add Face", + "renameFace": "Rename Face", + "deleteFace": "Delete Face", "uploadImage": "Upload Image", "reprocessFace": "Reprocess Face" }, @@ -46,7 +53,7 @@ "validation": { "selectImage": "Please select an image file." }, - "dropActive": "Drop the image here...", + "dropActive": "Drop the image here…", "dropInstructions": "Drag and drop an image here, or click to select", "maxSize": "Max size: {{size}}MB" }, @@ -62,6 +69,7 @@ "deletedName_zero": "Empty collection deleted successfully.", "deletedName_one": "{{count}} face has been successfully deleted.", "deletedName_other": "{{count}} faces have been successfully deleted.", + "renamedFace": "Successfully renamed face to {{name}}", "trainedFace": "Successfully trained face.", "updatedFaceScore": "Successfully updated face score." }, @@ -70,6 +78,7 @@ "addFaceLibraryFailed": "Failed to set face name: {{errorMessage}}", "deleteFaceFailed": "Failed to delete: {{errorMessage}}", "deleteNameFailed": "Failed to delete name: {{errorMessage}}", + "renameFaceFailed": "Failed to rename face: {{errorMessage}}", "trainFailed": "Failed to train: {{errorMessage}}", "updateFaceScoreFailed": "Failed to update face score: {{errorMessage}}" } diff --git a/web/public/locales/en/views/search.json b/web/public/locales/en/views/search.json index a085a2a14..22da7721f 100644 --- a/web/public/locales/en/views/search.json +++ b/web/public/locales/en/views/search.json @@ -67,6 +67,6 @@ "clear": "Clear similarity search" }, "placeholder": { - "search": "Search..." + "search": "Search…" } } diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json index 09bba01d0..b1a9f2a24 100644 --- a/web/public/locales/en/views/settings.json +++ b/web/public/locales/en/views/settings.json @@ -6,9 +6,10 @@ "classification": "Classification Settings - Frigate", "masksAndZones": "Mask and Zone Editor - Frigate", "motionTuner": "Motion Tuner - Frigate", - "object": "Object Settings - Frigate", + "object": "Debug - Frigate", "general": "General Settings - Frigate", - "frigatePlus": "Frigate+ Settings - Frigate" + "frigatePlus": "Frigate+ Settings - Frigate", + "notifications": "Notification Settings - Frigate" }, "menu": { "ui": "UI", @@ -247,7 +248,7 @@ "clickDrawPolygon": "Click to draw a polygon on the image.", "name": { "title": "Name", - "inputPlaceHolder": "Enter a name...", + "inputPlaceHolder": "Enter a name…", "tips": "Name must be at least 2 characters and must not be the name of a camera or another zone." }, "inertia": { @@ -505,7 +506,7 @@ }, "notificationUnavailable": { "title": "Notifications Unavailable", - "desc": "Web push notifications require a secure context (https://...). This is a browser limitation. Access Frigate securely to use notifications.", + "desc": "Web push notifications require a secure context (https://…). This is a browser limitation. Access Frigate securely to use notifications.", "documentation": "Read the Documentation" }, "globalSettings": { @@ -529,6 +530,7 @@ "active": "Notifications Active", "suspended": "Notifications suspended {{time}}", "suspendTime": { + "suspend": "Suspend", "5minutes": "Suspend for 5 minutes", "10minutes": "Suspend for 10 minutes", "30minutes": "Suspend for 30 minutes", @@ -579,10 +581,10 @@ }, "supportedDetectors": "Supported Detectors", "cameras": "Cameras", - "loading": "Loading model information...", + "loading": "Loading model information…", "error": "Failed to load model information", "availableModels": "Available Models", - "loadingAvailableModels": "Loading available models...", + "loadingAvailableModels": "Loading available models…", "modelSelect": "Your available models on Frigate+ can be selected here. Note that only models compatible with your current detector configuration can be selected." }, "restart_required": "Restart required (Frigate+ model changed)", diff --git a/web/public/locales/en/views/system.json b/web/public/locales/en/views/system.json index 0365a7293..2750d14a9 100644 --- a/web/public/locales/en/views/system.json +++ b/web/public/locales/en/views/system.json @@ -40,6 +40,7 @@ "detector": { "title": "Detectors", "inferenceSpeed": "Detector Inference Speed", + "temperature": "Detector Temperature", "cpuUsage": "Detector CPU Usage", "memoryUsage": "Detector Memory Usage" }, @@ -127,8 +128,17 @@ "camera": "camera", "detect": "detect", "skipped": "skipped", - "ffmpeg": "ffmpeg", - "capture": "capture" + "ffmpeg": "FFmpeg", + "capture": "capture", + "overallFramesPerSecond": "overall frames per second", + "overallDetectionsPerSecond": "overall detections per second", + "overallSkippedDetectionsPerSecond": "overall skipped detections per second", + "cameraFfmpeg": "{{camName}} FFmpeg", + "cameraCapture": "{{camName}} capture", + "cameraDetect": "{{camName}} detect", + "cameraFramesPerSecond": "{{camName}} frames per second", + "cameraDetectionsPerSecond": "{{camName}} detections per second", + "cameraSkippedDetectionsPerSecond": "{{camName}} skipped detections per second" }, "toast": { "success": { @@ -141,7 +151,7 @@ }, "lastRefreshed": "Last refreshed: ", "stats": { - "ffmpegHighCpuUsage": "{{camera}} has high FFMPEG CPU usage ({{ffmpegAvg}}%)", + "ffmpegHighCpuUsage": "{{camera}} has high FFmpeg CPU usage ({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} has high detect CPU usage ({{detectAvg}}%)", "healthy": "System is healthy", "reindexingEmbeddings": "Reindexing embeddings ({{processed}}% complete)", diff --git a/web/public/locales/es/common.json b/web/public/locales/es/common.json index e04ed3941..d8b69ed58 100644 --- a/web/public/locales/es/common.json +++ b/web/public/locales/es/common.json @@ -16,8 +16,8 @@ "12hour": "%b %-d, %I:%M %p" }, "formattedTimestamp": { - "24hour": "%b %-d, %H:%M:%S", - "12hour": "%b %-d, %I:%M:%S %p" + "24hour": "MMM d, HH:mm:ss", + "12hour": "MMM d, h:mm:ss aaa" }, "day_one": "{{time}} día", "day_many": "{{time}} días", @@ -54,15 +54,36 @@ "minute_other": "{{time}} minutos", "s": "{{time}}s", "formattedTimestamp2": { - "12hour": "%m/%d %I:%M:%S%P", - "24hour": "%d %b %H:%M:%S" + "12hour": "MM/dd h:mm:ssa", + "24hour": "d MMM HH:mm:ss" }, "5minutes": "5 minutos", "am": "am", "d": "{{time}}d", "hour_one": "{{time}} hora", "hour_many": "{{time}} horas", - "hour_other": "{{time}} horas" + "hour_other": "{{time}} horas", + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "MMM d, h:mm aaa", + "24hour": "MMM d, HH:mm" + }, + "formattedTimestampMonthDay": "MMM d", + "formattedTimestampFilename": { + "12hour": "MM-dd-yy-h-mm-ss-a", + "24hour": "MM-dd-yy-HH-mm-ss" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "MMM d yyyy, h:mm aaa", + "24hour": "MMM d yyyy, HH:mm" + } }, "menu": { "settings": "Ajustes", @@ -113,7 +134,8 @@ "pt": "Português (Portugues)", "cs": "Čeština (Checo)", "nl": "Nederlands (Neerlandés)", - "fr": "Français (Frances)" + "fr": "Français (Frances)", + "yue": "粵語 (Cantonés)" }, "appearance": "Apariencia", "darkMode": { @@ -132,7 +154,8 @@ "nord": "Nord", "red": "Rojo", "contrast": "Alto contraste", - "default": "Predeterminado" + "default": "Predeterminado", + "highcontrast": "Alto Contraste" }, "documentation": { "title": "Documentación", @@ -193,7 +216,7 @@ "next": "Siguiente", "edit": "Editar", "enabled": "Habilitado", - "saving": "Guardando...", + "saving": "Guardando…", "exitFullscreen": "Salir de pantalla completa", "on": "ENCENDIDO" }, diff --git a/web/public/locales/es/components/camera.json b/web/public/locales/es/components/camera.json index 2aebc5c01..672d07317 100644 --- a/web/public/locales/es/components/camera.json +++ b/web/public/locales/es/components/camera.json @@ -12,7 +12,7 @@ }, "name": { "label": "Nombre", - "placeholder": "Introduce un nombre...", + "placeholder": "Introduce un nombre…", "errorMessage": { "mustLeastCharacters": "El nombre del grupo de cámaras debe tener al menos 2 caracteres.", "nameMustNotPeriod": "El nombre del grupo de cámaras no debe contener un punto.", diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json index 1f16824d3..35997635f 100644 --- a/web/public/locales/es/components/dialog.json +++ b/web/public/locales/es/components/dialog.json @@ -29,6 +29,12 @@ }, "state": { "submitted": "Enviado" + }, + "question": { + "label": "Confirmar esta etiqueta para Frigate Plus", + "ask_a": "¿Es este objeto un {{label}}?", + "ask_an": "¿Es este objeto un {{label}}?", + "ask_full": "¿Es este objeto un {{untranslatedLabel}} ({{translatedLabel}})?" } } }, @@ -76,7 +82,7 @@ "disabled": "La retransmisión no está habilitada para esta cámara.", "desc": { "title": "Configura go2rtc para opciones adicionales de vista en vivo y audio para esta cámara.", - "readTheDocumentation": "Leer la documentación " + "readTheDocumentation": "Leer la documentación" } }, "debugView": "Vista de depuración", diff --git a/web/public/locales/es/components/filter.json b/web/public/locales/es/components/filter.json index 4587b5a62..1086d132a 100644 --- a/web/public/locales/es/components/filter.json +++ b/web/public/locales/es/components/filter.json @@ -115,8 +115,8 @@ "recognizedLicensePlates": { "title": "Matrículas reconocidas", "loadFailed": "No se pudieron cargar las matrículas reconocidas.", - "loading": "Cargando matrículas reconocidas...", - "placeholder": "Escribe para buscar matrículas...", + "loading": "Cargando matrículas reconocidas…", + "placeholder": "Escribe para buscar matrículas…", "noLicensePlatesFound": "No se encontraron matrículas.", "selectPlatesFromList": "Selecciona una o más matrículas de la lista." }, diff --git a/web/public/locales/es/views/events.json b/web/public/locales/es/views/events.json index 3654dcc1a..79ffa15da 100644 --- a/web/public/locales/es/views/events.json +++ b/web/public/locales/es/views/events.json @@ -31,5 +31,8 @@ "calendarFilter": { "last24Hours": "Últimas 24 horas" }, - "markTheseItemsAsReviewed": "Marcar estos elementos como revisados" + "markTheseItemsAsReviewed": "Marcar estos elementos como revisados", + "selected": "{{count}} seleccionados", + "selected_one": "{{count}} seleccionados", + "selected_other": "{{count}} seleccionados" } diff --git a/web/public/locales/es/views/explore.json b/web/public/locales/es/views/explore.json index 7d0a38a9d..bdeb99d39 100644 --- a/web/public/locales/es/views/explore.json +++ b/web/public/locales/es/views/explore.json @@ -3,7 +3,7 @@ "exploreIsUnavailable": { "title": "Explorar no está disponible", "embeddingsReindexing": { - "startingUp": "Iniciando...", + "startingUp": "Iniciando…", "estimatedTime": "Tiempo estimado restante:", "finishingShortly": "Finalizando en breve", "step": { @@ -124,7 +124,12 @@ "heard": "{{label}} escuchado", "external": "{{label}} detectado", "active": "{{label}} se activó", - "stationary": "{{label}} se volvió estacionario" + "stationary": "{{label}} se volvió estacionario", + "header": { + "zones": "Zonas", + "ratio": "Proporción", + "area": "Área" + } }, "annotationSettings": { "offset": { diff --git a/web/public/locales/es/views/faceLibrary.json b/web/public/locales/es/views/faceLibrary.json index e24ded131..e64cdcaee 100644 --- a/web/public/locales/es/views/faceLibrary.json +++ b/web/public/locales/es/views/faceLibrary.json @@ -35,13 +35,15 @@ "deleteFaceAttempts": "Eliminar intentos de rostro", "addFace": "Agregar rostro", "uploadImage": "Subir imagen", - "reprocessFace": "Reprocesar rostro" + "reprocessFace": "Reprocesar rostro", + "renameFace": "Renombrar Rostro", + "deleteFace": "Eliminar Rostro" }, "imageEntry": { "validation": { "selectImage": "Por favor, selecciona un archivo de imagen." }, - "dropActive": "Suelta la imagen aquí...", + "dropActive": "Suelta la imagen aquí…", "dropInstructions": "Arrastra y suelta una imagen aquí, o haz clic para seleccionar", "maxSize": "Tamaño máximo: {{size}}MB" }, @@ -56,7 +58,8 @@ "deletedFace_one": "{{count}} rostro eliminado con éxito", "deletedFace_many": "{{count}} rostros eliminados con éxito", "deletedFace_other": "{{count}} rostros eliminados con éxito", - "uploadedImage": "Imagen subida con éxito." + "uploadedImage": "Imagen subida con éxito.", + "renamedFace": "Rostro renombrado con éxito a {{name}}" }, "error": { "uploadingImageFailed": "No se pudo subir la imagen: {{errorMessage}}", @@ -64,7 +67,8 @@ "deleteFaceFailed": "No se pudo eliminar: {{errorMessage}}", "deleteNameFailed": "No se pudo eliminar el nombre: {{errorMessage}}", "trainFailed": "No se pudo entrenar: {{errorMessage}}", - "updateFaceScoreFailed": "No se pudo actualizar la puntuación del rostro: {{errorMessage}}" + "updateFaceScoreFailed": "No se pudo actualizar la puntuación del rostro: {{errorMessage}}", + "renameFaceFailed": "No se pudo renombrar el rostro: {{errorMessage}}" } }, "readTheDocs": "Leer la documentación", @@ -74,5 +78,9 @@ "faceName": "Introducir Nombre de Rostro", "uploadFace": "Subir Imagen de Rostro", "nextSteps": "Próximos Pasos" + }, + "renameFace": { + "title": "Renombrar Rostro", + "desc": "Introduce un nuevo nombre para {{name}}" } } diff --git a/web/public/locales/es/views/search.json b/web/public/locales/es/views/search.json index a0d6f4796..7458c491d 100644 --- a/web/public/locales/es/views/search.json +++ b/web/public/locales/es/views/search.json @@ -47,7 +47,14 @@ "desc": { "text": "Los filtros te ayudan a reducir los resultados de tu búsqueda. Aquí te explicamos cómo usarlos en el campo de entrada:", "example": "Ejemplo: cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM ", - "step": "" + "step": "", + "step4": "Los filtros de fecha (antes: y después:) usan el formato {{DateFormat}}.", + "step6": "Elimina filtros haciendo clic en la 'x' junto a ellos.", + "exampleLabel": "Ejemplo:", + "step1": "Escribe un nombre de clave de filtro seguido de dos puntos (por ejemplo, \"cámaras:\").", + "step2": "Selecciona un valor de las sugerencias o escribe el tuyo propio.", + "step3": "Usa múltiples filtros añadiéndolos uno tras otro con un espacio entre ellos.", + "step5": "El filtro de rango de tiempo usa el formato {{exampleTime}}." } }, "header": { @@ -62,6 +69,6 @@ "clear": "Borrar búsqueda por similitud" }, "placeholder": { - "search": "Buscar..." + "search": "Buscar…" } } diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json index e14376f1c..9ffa7d283 100644 --- a/web/public/locales/es/views/settings.json +++ b/web/public/locales/es/views/settings.json @@ -1,14 +1,15 @@ { "documentTitle": { "masksAndZones": "Editor de máscaras y zonas - Frigate", - "object": "Configuración de objetos - Frigate", + "object": "Depurar - Frigate", "default": "Configuración - Frigate", "authentication": "Configuración de autenticación - Frigate", "camera": "Configuración de cámara - Frigate", "motionTuner": "Ajuste de movimiento - Frigate", "classification": "Configuración de clasificación - Frigate", "general": "Configuración general - Frigate", - "frigatePlus": "Configuración de Frigate+ - Frigate" + "frigatePlus": "Configuración de Frigate+ - Frigate", + "notifications": "Configuración de Notificaciones - Frigate" }, "menu": { "cameras": "Configuración de cámara", @@ -139,7 +140,8 @@ "birdClassification": { "title": "Clasificación de Aves", "desc": "La clasificación de aves identifica aves conocidas utilizando un modelo de TensorFlow cuantizado. Cuando se reconoce una ave conocida, su nombre común se añadirá como una subetiqueta. Esta información se incluye en la interfaz de usuario, en los filtros y en las notificaciones." - } + }, + "restart_required": "Es necesario reiniciar (se han cambiado las configuraciones de clasificación)" }, "camera": { "review": { @@ -242,7 +244,7 @@ }, "name": { "title": "Nombre", - "inputPlaceHolder": "Introduce un nombre...", + "inputPlaceHolder": "Introduce un nombre…", "tips": "El nombre debe tener al menos 2 caracteres y no debe ser el nombre de una cámara ni de otra zona." }, "documentTitle": "Editar Zona - Frigate", @@ -334,7 +336,8 @@ "point_many": "{{count}} puntos", "point_other": "{{count}} puntos", "clickDrawPolygon": "Haz clic para dibujar un polígono en la imagen." - } + }, + "restart_required": "Es necesario reiniciar (se han cambiado las máscaras/zonas)" }, "motionDetectionTuner": { "title": "Sintonizador de Detección de Movimiento", @@ -388,12 +391,12 @@ "motion": { "title": "Cajas de movimiento", "desc": "Mostrar cajas alrededor de las áreas donde se detecta movimiento", - "tips": "

Cajas de Movimiento


Se superpondrán cajas rojas en las áreas del marco donde se está detectando movimiento actualmente

" + "tips": "

Cajas de Movimiento


Se superpondrán cajas rojas en las áreas del fotograma donde se está detectando movimiento actualmente

" }, "regions": { "title": "Regiones", "desc": "Mostrar una caja de la región de interés enviada al detector de objetos", - "tips": "

Cajas de Región


Se superpondrán cajas verdes brillantes en las áreas de interés del marco que se están enviando al detector de objetos.

" + "tips": "

Cajas de Región


Se superpondrán cajas verdes brillantes en las áreas de interés del fotograma que se envían al detector de objetos.

" }, "objectShapeFilterDrawing": { "title": "Dibujo de Filtro de Forma de Objetos", @@ -480,11 +483,17 @@ }, "changeRole": { "title": "Cambiar rol de usuario", - "desc": "Actualizar permisos para {{username}}", - "roleInfo": "

Selecciona el rol adecuado para este usuario:

" + "desc": "Actualizar permisos para {{username}}", + "roleInfo": { + "intro": "Selecciona el rol adecuado para este usuario:", + "adminDesc": "Acceso completo a todas las funciones.", + "viewerDesc": "Limitado a paneles en vivo, revisión, exploración y exportaciones únicamente.", + "viewer": "Espectador", + "admin": "Administrador" + } }, "deleteUser": { - "warn": "¿Estás seguro de que quieres eliminar a {{username}}?", + "warn": "¿Estás seguro de que quieres eliminar {{username}}?", "title": "Eliminar usuario", "desc": "Esta acción no se puede deshacer. Esto eliminará permanentemente la cuenta de usuario y eliminará todos los datos asociados." } @@ -501,7 +510,7 @@ "notificationUnavailable": { "title": "Notificaciones no disponibles", "documentation": "Leer la documentación", - "desc": "Las notificaciones push web requieren un contexto seguro (https://...). Esto es una limitación del navegador. Accede a Frigate de forma segura para usar las notificaciones." + "desc": "Las notificaciones push web requieren un contexto seguro (https://…). Esto es una limitación del navegador. Accede a Frigate de forma segura para usar las notificaciones." }, "globalSettings": { "title": "Configuración global", @@ -529,7 +538,8 @@ "untilRestart": "Suspender hasta reiniciar", "30minutes": "Suspender por 30 minutos", "24hours": "Suspender por 24 horas", - "10minutes": "Suspender por 10 minutos" + "10minutes": "Suspender por 10 minutos", + "suspend": "Suspender" }, "cancelSuspension": "Cancelar suspensión", "toast": { @@ -570,16 +580,21 @@ "supportedDetectors": "Detectores compatibles", "dimensions": "Dimensiones", "cameras": "Cámaras", - "loading": "Cargando información del modelo...", + "loading": "Cargando información del modelo…", "error": "No se pudo cargar la información del modelo", "availableModels": "Modelos disponibles", - "loadingAvailableModels": "Cargando modelos disponibles...", + "loadingAvailableModels": "Cargando modelos disponibles…", "modelSelect": "Tus modelos disponibles en Frigate+ se pueden seleccionar aquí. Ten en cuenta que solo se pueden seleccionar modelos compatibles con tu configuración actual de detectores.", - "trainDate": "Fecha de entrenamiento" + "trainDate": "Fecha de entrenamiento", + "plusModelType": { + "baseModel": "Modelo Base", + "userModel": "Ajustado Finamente" + } }, "toast": { "success": "La configuración de Frigate+ se ha guardado. Reinicia Frigate para aplicar los cambios.", "error": "No se pudieron guardar los cambios en la configuración: {{errorMessage}}" - } + }, + "restart_required": "Es necesario reiniciar (se ha cambiado el modelo Frigate+)" } } diff --git a/web/public/locales/es/views/system.json b/web/public/locales/es/views/system.json index a2aaf33eb..6a9f7ad47 100644 --- a/web/public/locales/es/views/system.json +++ b/web/public/locales/es/views/system.json @@ -41,7 +41,8 @@ "title": "Detectores", "inferenceSpeed": "Velocidad de inferencia del detector", "cpuUsage": "Uso de CPU del Detector", - "memoryUsage": "Uso de Memoria del Detector" + "memoryUsage": "Uso de Memoria del Detector", + "temperature": "Detector de Temperatura" }, "hardwareInfo": { "title": "Información de Hardware", @@ -72,7 +73,9 @@ "label": "Cerrar información de GPU" } }, - "gpuMemory": "Memoria de GPU" + "gpuMemory": "Memoria de GPU", + "npuMemory": "Memoria de NPU", + "npuUsage": "Uso de NPU" }, "otherProcesses": { "title": "Otros Procesos", @@ -125,8 +128,17 @@ "camera": "cámara", "skipped": "omitido", "detect": "detectar", - "ffmpeg": "ffmpeg", - "capture": "captura" + "ffmpeg": "FFmpeg", + "capture": "captura", + "overallFramesPerSecond": "cuadros por segundo totales", + "overallDetectionsPerSecond": "detecciones por segundo totales", + "cameraSkippedDetectionsPerSecond": "{{camName}} detecciones omitidas por segundo", + "cameraFfmpeg": "{{camName}} FFmpeg", + "cameraCapture": "{{camName}} captura", + "cameraDetect": "{{camName}} detectar", + "cameraFramesPerSecond": "{{camName}} cuadros por segundo", + "cameraDetectionsPerSecond": "{{camName}} detecciones por segundo", + "overallSkippedDetectionsPerSecond": "detecciones omitidas por segundo totales" }, "toast": { "success": { @@ -144,14 +156,24 @@ "plate_recognition_speed": "Velocidad de Reconocimiento de Matrículas", "face_embedding_speed": "Velocidad de Incrustación de Rostros", "image_embedding_speed": "Velocidad de Incrustación de Imágenes", - "text_embedding_speed": "Velocidad de Incrustación de Texto" + "text_embedding_speed": "Velocidad de Incrustación de Texto", + "face_recognition_speed": "Velocidad de Reconocimiento Facial", + "text_embedding": "Incrustación de Texto", + "face_recognition": "Reconocimiento Facial", + "plate_recognition": "Reconocimiento de Matrículas", + "yolov9_plate_detection": "Detección de Matrículas YOLOv9", + "image_embedding": "Incrustación de Imágenes", + "yolov9_plate_detection_speed": "Velocidad de Detección de Matrículas YOLOv9" }, "title": "Enriquecimientos" }, "stats": { - "ffmpegHighCpuUsage": "{{camera}} tiene un uso elevado de CPU por FFMPEG ({{ffmpegAvg}}%)", + "ffmpegHighCpuUsage": "{{camera}} tiene un uso elevado de CPU por FFmpeg ({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} tiene un uso elevado de CPU por detección ({{detectAvg}}%)", "healthy": "El sistema está saludable", - "reindexingEmbeddings": "Reindexando incrustaciones ({{processed}}% completado)" + "reindexingEmbeddings": "Reindexando incrustaciones ({{processed}}% completado)", + "detectIsSlow": "{{detect}} es lento ({{speed}} ms)", + "cameraIsOffline": "{{camera}} está desconectada", + "detectIsVerySlow": "{{detect}} es muy lento ({{speed}} ms)" } } diff --git a/web/public/locales/fi/audio.json b/web/public/locales/fi/audio.json index 85c90df31..aa288ae14 100644 --- a/web/public/locales/fi/audio.json +++ b/web/public/locales/fi/audio.json @@ -1,5 +1,17 @@ { "speech": "Puhe", "yell": "Huutaa", - "babbling": "Pulina" + "babbling": "Pulina", + "boat": "Vene", + "cat": "Kissa", + "dog": "Koira", + "horse": "Hevonen", + "sheep": "Lammas", + "bird": "Lintu", + "car": "Auto", + "motorcycle": "Moottoripyörä", + "bus": "Bussi", + "train": "Juna", + "bicycle": "Pyörä", + "skateboard": "Rullalauta" } diff --git a/web/public/locales/fi/common.json b/web/public/locales/fi/common.json index 0967ef424..c45340fee 100644 --- a/web/public/locales/fi/common.json +++ b/web/public/locales/fi/common.json @@ -1 +1,44 @@ -{} +{ + "time": { + "untilRestart": "Kunnes uudelleenkäynnistyy", + "ago": "{{timeAgo}} sitten", + "justNow": "Juuri nyt", + "today": "Tänään", + "yesterday": "Eilen", + "last14": "Viimeiset 14 päivää", + "untilForTime": "Kunnes {{time}}", + "untilForRestart": "Kunnes Frigate uudelleenkäynnistyy.", + "thisWeek": "Tämä viikko", + "lastWeek": "Viime viikko", + "last7": "Viimeiset 7 päivää", + "thisMonth": "Tämä kuu", + "lastMonth": "Viime kuu", + "last30": "Viimeiset 30 päivää", + "5minutes": "5 minuuttia", + "10minutes": "10 minuuttia", + "30minutes": "30 minuuttia", + "1hour": "1 tunti", + "12hours": "12 tuntia", + "24hours": "24 tuntia", + "pm": "ip", + "am": "ap", + "yr": "{{time}}v", + "year_one": "{{time}} vuosi", + "year_other": "{{time}} vuotta", + "mo": "{{time}}kk", + "month_one": "{{time}} kuukausi", + "month_other": "{{time}} kuukaudet", + "d": "{{time}}pv", + "day_one": "{{time}} päivä", + "day_other": "{{time}} päivät", + "h": "{{time}}t", + "hour_one": "{{time}} tunti", + "hour_other": "{{time}} tuntia", + "m": "{{time}}m", + "s": "{{time}}s", + "minute_one": "{{time}}minuutti", + "minute_other": "{{time}}minuuttia", + "second_one": "{{time}}sekuntti", + "second_other": "{{time}}sekunttia" + } +} diff --git a/web/public/locales/fi/components/auth.json b/web/public/locales/fi/components/auth.json index 0967ef424..5ce3ffa02 100644 --- a/web/public/locales/fi/components/auth.json +++ b/web/public/locales/fi/components/auth.json @@ -1 +1,15 @@ -{} +{ + "form": { + "password": "Salasana", + "user": "Käyttäjä", + "login": "Kirjaudu", + "errors": { + "usernameRequired": "Käyttäjänimi vaaditaan", + "passwordRequired": "Salasana vaaditaan", + "rateLimit": "Käyttöraja ylitetty. Yritä myöhemmin uudelleen.", + "loginFailed": "Kirjautuminen epäonnistui", + "unknownError": "Tuntematon virhe. Tarkista logit.", + "webUnknownError": "Tuntematon virhe. Tarkista konsolilogi." + } + } +} diff --git a/web/public/locales/fi/components/camera.json b/web/public/locales/fi/components/camera.json index 0967ef424..14ebd87fb 100644 --- a/web/public/locales/fi/components/camera.json +++ b/web/public/locales/fi/components/camera.json @@ -1 +1,83 @@ -{} +{ + "group": { + "label": "Kameraryhmä", + "add": "Lisää kameraryhmä", + "edit": "Muokkaa kameraryhmää", + "delete": { + "label": "Poista kameraryhmä", + "confirm": { + "title": "Varmista poisto", + "desc": "Oletko varma että haluat poistaa kameraryhmän {{name}}?" + } + }, + "name": { + "label": "Nimi", + "placeholder": "Anna nimi…", + "errorMessage": { + "mustLeastCharacters": "Kameraryhmän nimi täytyy olla vähintään 2 kirjainta.", + "exists": "Kameraryhmän nimi on jo olemassa.", + "nameMustNotPeriod": "Kameraryhmän nimi ei voi sisältää pistettä.", + "invalid": "Virheellinen kameraryhmän nimi." + } + }, + "cameras": { + "label": "Kamerat", + "desc": "Valitse ryhmän kamera." + }, + "icon": "Ikoni", + "success": "Kameraryhmä ({{name}}) on tallennettu.", + "camera": { + "setting": { + "label": "Kameran suoratoistoasetukset", + "title": "{{cameraName}} suoratoistoasetukset", + "desc": "Muuta tämän kameraryhmän kojelaudan live-suoratoistoasetuksia.Nämä asetukset ovat laite/selainkohtaisia.", + "audioIsAvailable": "Ääni on saatavilla tähän suoratoistoon", + "audioIsUnavailable": "Ääni ei ole saatavilla tähän suoratoistoon", + "audio": { + "tips": { + "title": "Äänen on oltava kytkettynä kameraan ja määritettynä go2rtc:ssä tätä suoratoistoa varten.", + "document": "Lue dokumentaatio " + } + }, + "streamMethod": { + "label": "Suoratoistomenetelmä", + "method": { + "noStreaming": { + "label": "Ei suoratoistoa", + "desc": "Kamerakuvat päivittyvät vain kerran minuutissa, eikä suoratoistoa tapahdu." + }, + "smartStreaming": { + "label": "Älykäs suoratoisto (suositus)", + "desc": "Älykäs suoratoisto päivittää kamerakuvan kerran minuutissa kun havaittavaa toimintaa ei tapahdu, säästääkseen kaistanleveyttä ja resursseja. Kun toimintaa havaitaan, kuva vaihtuu saumattomasti reaaliaikaiseksi suoratoistoksi." + }, + "continuousStreaming": { + "label": "Jatkuva suoratoisto", + "desc": { + "title": "Kamerakuva näkyy aina reaaliaikaisena suoratoistona kojelaudassa, vaikka mitään liikettä ei havaitaisi.", + "warning": "Jatkuva suoratoisto voi lisätä kaistanleveyden käyttöä ja suorituskykyongelmia. Käytä varoen." + } + } + } + }, + "compatibilityMode": { + "label": "Yhteensopivuustila", + "desc": "Ota tämä vaihtoehto käyttöön vain, jos kamerasi live-suoratoistossa näkyy väriartefakteja ja kuvan oikealla puolella on vinoviiva." + } + } + } + }, + "debug": { + "options": { + "label": "Asetukset", + "title": "Vaihtoehdot", + "showOptions": "Näytä vaihtoehdot", + "hideOptions": "Piilota vaihtoehdot" + }, + "boundingBox": "Rajauslaatikko", + "timestamp": "Aikaleima", + "zones": "Vyöhykkeet", + "mask": "Peite", + "motion": "Liike", + "regions": "Alueet" + } +} diff --git a/web/public/locales/fi/components/dialog.json b/web/public/locales/fi/components/dialog.json index 0967ef424..c248f48b1 100644 --- a/web/public/locales/fi/components/dialog.json +++ b/web/public/locales/fi/components/dialog.json @@ -1 +1,19 @@ -{} +{ + "restart": { + "title": "Haluatko varmasti käynnistää Frigaten uudelleen?", + "button": "Uudelleenkäynnistys", + "restarting": { + "title": "Fregatti käynnistyy uudelleen", + "content": "Tämä sivu latautuu uudelleen {{countdown}} sekunnin kuluttua.", + "button": "Pakota uudelleenlataus nyt" + } + }, + "explore": { + "plus": { + "submitToPlus": { + "label": "Lähetä Frigate+:lle", + "desc": "Välttämissäsi paikoissa olevat kohteet eivät ole vääriä positiivisia. Niiden lähettäminen väärinä positiivisina sekoittaa mallia." + } + } + } +} diff --git a/web/public/locales/fi/components/filter.json b/web/public/locales/fi/components/filter.json index 0967ef424..b254e27e1 100644 --- a/web/public/locales/fi/components/filter.json +++ b/web/public/locales/fi/components/filter.json @@ -1 +1,3 @@ -{} +{ + "filter": "Suodatin" +} diff --git a/web/public/locales/fi/components/player.json b/web/public/locales/fi/components/player.json index 0967ef424..43e7e7153 100644 --- a/web/public/locales/fi/components/player.json +++ b/web/public/locales/fi/components/player.json @@ -1 +1,4 @@ -{} +{ + "noPreviewFound": "Esikatselua ei löytynyt", + "noPreviewFoundFor": "Ei esikatselua {{cameraName}}lle" +} diff --git a/web/public/locales/fi/objects.json b/web/public/locales/fi/objects.json index 0967ef424..10ca41476 100644 --- a/web/public/locales/fi/objects.json +++ b/web/public/locales/fi/objects.json @@ -1 +1,55 @@ -{} +{ + "frisbee": "Frisbee", + "knife": "Veitsi", + "umbrella": "Sateenvarjo", + "tie": "Kravatti", + "suitcase": "Matkalaukku", + "baseball_glove": "Pesäpallohanska", + "spoon": "Lusikka", + "person": "Henkilö", + "bicycle": "Pyörä", + "car": "Auto", + "motorcycle": "Moottoripyörä", + "airplane": "Lentokone", + "bus": "Bussi", + "train": "Juna", + "boat": "Vene", + "traffic_light": "Liikennevalo", + "fire_hydrant": "Paloposti", + "street_sign": "Tieviitta", + "stop_sign": "Stop merkki", + "parking_meter": "Pysäköintimittari", + "bench": "Penkki", + "bird": "Lintu", + "cat": "Kissa", + "dog": "Koira", + "horse": "Hevonen", + "sheep": "Lammas", + "cow": "Lehmä", + "elephant": "Elefantti", + "bear": "Karhu", + "zebra": "Seepra", + "giraffe": "Kirahvi", + "hat": "Hattu", + "backpack": "Reppu", + "shoe": "Kenkä", + "eye_glasses": "Silmälasit", + "handbag": "Käsilaukku", + "skis": "Sukset", + "snowboard": "Lumilauta", + "sports_ball": "Pallo", + "kite": "Leija", + "baseball_bat": "Pesäpallomaila", + "skateboard": "Rullalauta", + "surfboard": "Surffilauta", + "tennis_racket": "Tennismaila", + "bottle": "Pullo", + "plate": "Lautanen", + "wine_glass": "Viinilasi", + "cup": "Kuppi", + "fork": "Haarukka", + "bowl": "Malja", + "banana": "Banaani", + "apple": "Omena", + "couch": "Sohva" +} diff --git a/web/public/locales/fi/views/live.json b/web/public/locales/fi/views/live.json index 0967ef424..69c0d23bf 100644 --- a/web/public/locales/fi/views/live.json +++ b/web/public/locales/fi/views/live.json @@ -1 +1,158 @@ -{} +{ + "documentTitle": "Suora - Frigate", + "documentTitle.withCamera": "{{camera}} - Suora - Frigate", + "lowBandwidthMode": "Pienen kaistanleveyden tila", + "twoWayTalk": { + "enable": "Ota käyttöön kaksisuuntainen puhe", + "disable": "Poista kaksisuuntainen puhe käytöstä" + }, + "cameraAudio": { + "enable": "Ota kameran ääni käyttöön", + "disable": "Poista kameran ääni käytöstä" + }, + "ptz": { + "move": { + "clickMove": { + "label": "Napsauta ruutua keskittääksesi kameran", + "enable": "Ota käyttöön napsauttamalla siirtäminen", + "disable": "Poista napsauttamalla siirtäminen" + }, + "left": { + "label": "Siirrä PTZ-kameraa vasemmalle" + }, + "up": { + "label": "Siirrä PTZ-kameraa ylös" + }, + "down": { + "label": "Siirrä PTZ-kameraa alas" + }, + "right": { + "label": "Siirrä PTZ-kameraa oikealle" + } + }, + "zoom": { + "out": { + "label": "Zoomaa PTZ-kamera ulos" + }, + "in": { + "label": "Zoomaa PTZ-kamera sisään" + } + }, + "frame": { + "center": { + "label": "Napsauta kehystä keskittääksesi PTZ-kamera" + } + }, + "presets": "PTZ-kameroiden esiasetukset" + }, + "camera": { + "enable": "Ota kamera käyttöön", + "disable": "Poista kamera käytöstä" + }, + "muteCameras": { + "enable": "Mykistä kaikki kamerat", + "disable": "Poista kaikkien kameroiden mykistys" + }, + "detect": { + "enable": "Ota tunnistus käyttöön", + "disable": "Poista tunnistus käytöstä" + }, + "recording": { + "enable": "Ota tallennus käyttöön", + "disable": "Poista tallennus käytöstä" + }, + "snapshots": { + "enable": "Ota tilannekuva käyttöön", + "disable": "Poista tilannekuva käytöstä" + }, + "audioDetect": { + "enable": "Ota käyttöön äänen tunnistus", + "disable": "Poista äänen tunnistus käytöstä" + }, + "autotracking": { + "enable": "Ota automaattinen seuranta käyttöön", + "disable": "Poista automaattinen seuranta käytöstä" + }, + "streamStats": { + "enable": "Näytä suoratoiston tilastot", + "disable": "Piilota suoratoiston tilastot" + }, + "manualRecording": { + "title": "Tallennus pyynnöstä", + "tips": "Aloita manuaalinen tapahtuma tämän kameran tallenteen tallennusasetusten perusteella.", + "playInBackground": { + "label": "Toista taustalla", + "desc": "Ota tämä asetus käyttöön, jos haluat jatkaa suoratoistoa kun soitin on piilotettu." + }, + "showStats": { + "label": "Näytä tilastot", + "desc": "Ota tämä asetus käyttöön, jos haluat näyttää suoratoistotilastot kamerasyötteen päällä." + }, + "debugView": "Virheenkorjausnäkymä", + "start": "Aloita tallennus pyynnöstä", + "started": "Manuaalinen pyynnöstätallennus aloitettu.", + "failedToStart": "Manuaalisen pyynnöstätallennuksen aloittaminen epäonnistui.", + "recordDisabledTips": "Koska tallennus on poistettu käytöstä tai rajoitettu tämän kameran asetuksissa, vain tilannekuva tallennetaan.", + "end": "Lopeta pyynnöstätallennus", + "ended": "Manuaalinen on-demand-tallennus lopetettu.", + "failedToEnd": "Manuaalisen pyynnöstätallennuksen lopettaminen epäonnistui." + }, + "streamingSettings": "Suoratoistoasetukset", + "notifications": "Ilmoitukset", + "audio": "Ääni", + "suspend": { + "forTime": "Keskeytys: " + }, + "stream": { + "title": "Suoratoisto", + "audio": { + "tips": { + "title": "Äänen on oltava kytkettynä kameraan ja määritettynä go2rtc:ssä tätä suoratoistoa varten.", + "documentation": "Lue dokumentaatio " + }, + "available": "Ääni on saatavilla tälle suoratoistolle", + "unavailable": "Ääni ei ole saatavilla tälle suoratoistolle" + }, + "twoWayTalk": { + "tips": "Laitteesi on tuettava ominaisuutta ja WebRTC:n on oltava määritetty kaksisuuntaista ääntä varten.", + "tips.documentation": "Lue dokumentaatio ", + "available": "Kaksisuuntainen ääni on saatavilla tässä suoratoistossa", + "unavailable": "Kaksisuuntainen ääni ei ole käytettävissä tässä suoratoistossa" + }, + "lowBandwidth": { + "tips": "Live-näkymä on matalan kaistanleveyden tilassa puskuroinnin tai suoratoistovirheiden vuoksi.", + "resetStream": "Nollaa suoratoisto" + }, + "playInBackground": { + "label": "Toista taustalla", + "tips": "Ota tämä asetus käyttöön, jos haluat jatkaa suoratoistoa, kun soitin on piilotettu." + } + }, + "cameraSettings": { + "title": "{{camera}} Asetukset", + "cameraEnabled": "Kamera käytössä", + "objectDetection": "Kohteen tunnistus", + "recording": "Nauhoitus", + "snapshots": "Tilannekuvat", + "audioDetection": "Äänen tunnistus", + "autotracking": "Automaattinen seuranta" + }, + "history": { + "label": "Näytä historiallista materiaalia" + }, + "effectiveRetainMode": { + "modes": { + "all": "Kaikki", + "motion": "Liike", + "active_objects": "Aktiiviset kohteet" + }, + "notAllTips": "{{source}}-tallenteiden säilytysmäärityksesi on asetettu tila: {{effectiveRetainMode}}, joten tämä tilattu tallenne säilyttää vain ne osat joiden tyyppi on {{effectiveRetainModeName}}." + }, + "editLayout": { + "label": "Muokkaa asettelua", + "group": { + "label": "Muokkaa kameraryhmää" + }, + "exitEdit": "Poistu muokkauksesta" + } +} diff --git a/web/public/locales/fi/views/recording.json b/web/public/locales/fi/views/recording.json index 0967ef424..84daba26f 100644 --- a/web/public/locales/fi/views/recording.json +++ b/web/public/locales/fi/views/recording.json @@ -1 +1,12 @@ -{} +{ + "calendar": "Kalenteri", + "filter": "Suodatin", + "filters": "Suodattimet", + "toast": { + "error": { + "noValidTimeSelected": "Sopimaton aikaväli valittu", + "endTimeMustAfterStartTime": "Loppuaika täytyy olla aloituksen jälkeen" + } + }, + "export": "Vie" +} diff --git a/web/public/locales/fi/views/settings.json b/web/public/locales/fi/views/settings.json index 0a4d132ba..cc982214d 100644 --- a/web/public/locales/fi/views/settings.json +++ b/web/public/locales/fi/views/settings.json @@ -2,7 +2,7 @@ "documentTitle": { "camera": "Kamera-asetukset - Frigate", "classification": "Klassifiointiasetukset - Frigate", - "masksAndZones": "Maski ja aluemuokkain - Frigate", + "masksAndZones": "Peite ja vyöhykemuokkain - Frigate", "motionTuner": "Liikesäädin - Frigate", "default": "Asetukset - Frigate", "general": "Yleiset asetukset - Frigate", @@ -135,6 +135,11 @@ "toast": { "success": "Klassifiointiasetukset on tallennettu. Käynnistä Frigate uudelleen saadaksesi ne käyttöön.", "error": "Konfiguraatio muutoksia ei voitu tallentaa: {{errorMessage}}" + }, + "restart_required": "Tarvitaan uudelleenkäynnistys (luokitusasetuksia muutettu)", + "birdClassification": { + "title": "Lintujen luokittelu", + "desc": "Lintujen luokittelu tunnistaa tunnetut linnut kvantisoidun Tensorflow-mallin avulla. Kun tunnettu lintu tunnistetaan, sen yleinen nimi lisätään alitunnisteena. Tämä tieto sisältyy käyttöliittymään, suodattimiin ja ilmoituksiin." } }, "camera": { @@ -152,24 +157,27 @@ "reviewClassification": { "title": "Katseluiden klassifiointi", "readTheDocumentation": "Lue dokumentaatio", - "noDefinedZones": "Tälle kameralle ei ole määritelty alueita.", - "objectAlertsTips": "Kaikki {{alertsLabels}} objektit lähteelle {{cameraName}} näytetään Hälytyksinä.", + "noDefinedZones": "Tälle kameralle ei ole määritelty vyöhykkeitä.", + "objectAlertsTips": "Kaikki {{alertsLabels}} objektit lähteelle {{cameraName}} näytetään hälytyksinä.", "zoneObjectAlertsTips": "Kaikki {{alertsLabels}} objektit jotka tunnistetaan alueella {{zone}} lähteessä {{cameraName}} näytetään Hälytyksinä.", - "objectDetectionsTips": "Kaikki {{detectionsLabels}} objektit joita ei ole kategorisoitu lähteessä {{cameraName}} näytetään Tunnistuksina niiden alueesta huolimatta.", + "objectDetectionsTips": "Kaikki {{detectionsLabels}} objektit joita ei ole kategorisoitu lähteessä {{cameraName}} näytetään Tunnistuksina niiden vyöhykkeestä huolimatta.", "zoneObjectDetectionsTips": { - "text": "Kaikki {{detectionsLabels}} objektit joita ei ole kategorisoitu alueella {{zone}} lähteessä {{cameraName}} näytetään Tunnistuksina.", - "notSelectDetections": "Kaikki {{detectionsLabels}} objektit jotka tunnistetaan alueella {{zone}} lähteessä {{cameraName}}, joita ei ole kategorisoitu Hälytyksiksi näytetään Tunnistuksina niiden alueesta huolimatta.", - "regardlessOfZoneObjectDetectionsTips": "Kaikki {{detectionsLabels}} objektit joita ei ole kategorisoitu lähteessä {{cameraName}} näytetään Tunnistuksina niiden alueesta huolimatta." + "text": "Kaikki {{detectionsLabels}} objektit joita ei ole kategorisoitu vyöhykkeellä {{zone}} lähteessä {{cameraName}} näytetään Tunnistuksina.", + "notSelectDetections": "Kaikki {{detectionsLabels}} objektit jotka tunnistetaan vyöhykkeellä {{zone}} lähteessä {{cameraName}}, joita ei ole kategorisoitu Hälytyksiksi näytetään Tunnistuksina niiden vyöhykkeestä huolimatta.", + "regardlessOfZoneObjectDetectionsTips": "Kaikki {{detectionsLabels}} objektit joita ei ole kategorisoitu lähteessä {{cameraName}} näytetään Tunnistuksina niiden vyöhykkeestä huolimatta." }, - "selectAlertsZones": "Valitse alueet Hälytystä varten", + "selectAlertsZones": "Valitse vyöhykkeet Hälytystä varten", "desc": "Frigate kategorisoi tahtumia Hälytyksiksi ja Tunnistuksiksi. Vakiona kaikki henkilö sekä ajoneuvo objektit käsitellään Hälytyksinä. Voit kategorisoida uudelleen katseltavat tapahtumat antamalla niille vaaditut alueet.", - "limitDetections": "Rajoita tunnistukset tiettyihin alueisiin", - "selectDetectionsZones": "Valitse alueet Tunnistusta varten" + "limitDetections": "Rajoita tunnistukset tiettyihin vyöhykkeisiin", + "selectDetectionsZones": "Valitse vyöhykkeet tunnistusta varten", + "toast": { + "success": "Luokittelumäärityksen tarkistus on tallennettu. Käynnistä Frigate uudelleen muutosten käyttöönottamiseksi." + } } }, "masksAndZones": { "filter": { - "all": "Kaikki maskit ja alueet" + "all": "Kaikki peitteet ja vyöhykkeet" }, "form": { "polygonDrawing": { @@ -195,7 +203,7 @@ "mustBeAtLeastTwoCharacters": "Alueen nimen tulee olla vähintään 2 merkin pituinen.", "alreadyExists": "Tämän niminen alue on jo olemassa.", "mustNotContainPeriod": "Alueen nimessä ei saa olla pisteitä.", - "hasIllegalCharacter": "Alueen nimessä on kiellettyjä merkkejä.", + "hasIllegalCharacter": "Vyöhykkeen nimessä on kiellettyjä merkkejä.", "mustNotBeSameWithCamera": "Alueen nimi ei saa olla sama kuin kameran nimi." } }, @@ -217,8 +225,52 @@ } }, "zones": { - "label": "Alueet", - "documentTitle": "Muokkaa alueita - Frigate" + "label": "Vyöhykkeet", + "documentTitle": "Muokkaa vyöhykkeitä - Frigate", + "edit": "Myokkaa vyöhykettä", + "inertia": { + "title": "Inertia", + "desc": "Määrittää, kuinka monta kehystä objektin on oltava vyöhykkeellä, ennen kuin se lasketaan vyöhykkeeksi. Oletus: 3" + }, + "loiteringTime": { + "title": "Oleskeluaika", + "desc": "Asettaa vähimmäisajan sekunteina, jonka objektin on oltava vyöhykkeellä, jotta se aktivoituu. Oletus: 0" + }, + "objects": { + "title": "Kohteet", + "desc": "Luettelo tähän vyöhykkeeseen liittyvistä kohteista." + }, + "desc": { + "title": "Vyöhykkeiden avulla voit määrittää tietyn alueen kuvassa, jotta voit selvittää, onko kohde kyseisellä alueella.", + "documentation": "Dokumentaatio" + }, + "add": "Lisää vyöhyke", + "clickDrawPolygon": "Napsauta piirtääksesi monikulmion kuvaan.", + "name": { + "title": "Nimi", + "inputPlaceHolder": "Anna nimi…", + "tips": "Nimen on oltava vähintään kaksi merkkiä pitkä, eikä se saa olla kameran tai toisen vyöhykkeen nimi." + }, + "point_one": "{{count}} piste", + "point_other": "{{count}} pisteet", + "allObjects": "Kaikki kohteet", + "speedEstimation": { + "title": "Nopeuden arviointi", + "desc": "Ota käyttöön nopeuden arviointi tällä vyöhykkeellä oleville kohteille. Sillä on oltava täsmälleen 4 pistettä." + }, + "speedThreshold": { + "title": "Nopeuskynnys ({{unit}})", + "desc": "Määrittää kohteiden vähimmäisnopeuden, joka otetaan huomioon tässä vyöhykkeessä.", + "toast": { + "error": { + "pointLengthError": "Nopeuden arviointi on poistettu käytöstä tällä vyöhykkeellä. Vyöhykkeillä joilla on nopeuden arviointi, on oltava täsmälleen 4 pistettä.", + "loiteringTimeError": "Vyöhykkeitä, joiden oleskeluajat ovat yli 0, ei tule käyttää nopeuden arvioinnissa." + } + } + }, + "toast": { + "success": "Vyöhyke ({{zoneName}}) on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi." + } }, "toast": { "error": { @@ -227,6 +279,150 @@ "success": { "copyCoordinates": "{{polyName}} - koordinaatit kopioitu leikepöydälle." } + }, + "restart_required": "Uudelleenkäynnistys vaaditaan (peitteitä/vyöhykeitä muutettu)", + "motionMasks": { + "point_one": "{{count}} piste", + "point_other": "{{count}} pisteet", + "clickDrawPolygon": "Napsauta piirtääksesi monikulmion kuvaan.", + "label": "Liikepeitto", + "context": { + "documentation": "Lue dokumentaatio", + "title": "Liikepeittoja käytetään estämään ei-toivottujen liiketyyppien (esimerkiksi puiden oksat, kameroiden aikaleimat) aiheuttamat tunnistukset. Liikepeittoja tulisi käyttää hyvin säästeliäästi, sillä liiallinen maskaus vaikeuttaa kohteiden seurantaa." + }, + "documentTitle": "Muokkaa liikepeittoa - Frigate", + "desc": { + "title": "Liikepeittoa käytetään estämään ei-toivottujen liiketyyppien aiheuttamat tunnistukset. Liiallinen peittäminen vaikeuttaa kohteiden seurantaa.", + "documentation": "Dokumentaatio" + }, + "add": "Uusi liikepeitto", + "edit": "Muokkaa liikepeittoa", + "polygonAreaTooLarge": { + "title": "Liikepeitto peittää {{polygonArea}}% kameran kuvasta. Suuria liikemaskeja ei suositella.", + "tips": "Liikepeitto eivät estä kohteiden havaitsemista. Sinun tulisi sen sijaan käyttää vaadittua vyöhykettä.", + "documentation": "Lue dokumentaatio" + }, + "toast": { + "success": { + "title": "{{polygonName}} on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi.", + "noName": "Liikepeitto on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi." + } + } + }, + "objectMasks": { + "point_one": "{{count}} piste", + "point_other": "{{count}} pisteet", + "label": "Kohdepeitot", + "context": "Objektisuodatinpeittoja käytetään suodattamaan pois väärät positiiviset tulokset tietylle kohdetyypille sijainnin perusteella.", + "objects": { + "title": "Kohteet", + "desc": "Kohdetyyppi, jota käytetään tähän kohdepeittoon.", + "allObjectTypes": "Kaikki kohdetyypit" + }, + "toast": { + "success": { + "title": "{{polygonName}} on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi.", + "noName": "Kohdepeitto on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi." + } + }, + "documentTitle": "Muokkaa kohdepeittoa - Frigate", + "desc": { + "title": "Objektisuodatinpeittoja käytetään suodattamaan pois väärät positiiviset tulokset tietylle kohdetyypille sijainnin perusteella.", + "documentation": "Dokumentaatio" + }, + "add": "Lisää kohdepeitto", + "edit": "Muokkaa kohdepeittoa", + "clickDrawPolygon": "Napsauta piirtääksesi monikulmion kuvaan." + } + }, + "debug": { + "regions": { + "title": "Alueet", + "desc": "Näytä kohdeilmaisimelle lähetetyn kiinnostuksen kohteena olevan alueen laatikko", + "tips": "

Aluelaatikot


Kirkkaanvihreät laatikot peittävät kuvassa olevat kiinnostavat alueet, jotka lähetetään objektinilmaisimelle.

" + }, + "objectShapeFilterDrawing": { + "title": "Objektin muodon suodattimen piirtäminen", + "desc": "Piirrä kuvaan suorakulmio nähdäksesi pinta-alan ja kuvasuhteen tiedot", + "document": "Lue dokumentaatio ", + "score": "Pisteet", + "ratio": "Suhde", + "area": "Alue", + "tips": "Ota tämä asetus käyttöön piirtääksesi kamerakuvaan suorakulmion, joka näyttää sen pinta-alan ja suhteen. Näitä arvoja voidaan sitten käyttää objektin muodon suodatusparametrien asettamiseen asetuksissasi." + }, + "timestamp": { + "title": "Aikaleima", + "desc": "Lisää aikaleima kuvan päälle" + }, + "noObjects": "Ei kohteita", + "zones": { + "title": "Vyöhykkeet", + "desc": "Näytä määriteltyjen vyöhykkeiden ääriviivat" + }, + "boundingBoxes": { + "colors": { + "info": "
  • Käynnistettäessä kullekin kohteen merkinnälle määritetään eri värit
  • Tummansininen ohut viiva osoittaa, että kohdetta ei ole havaittu tällä hetkellä
  • Harmaa ohut viiva osoittaa, että kohde on havaittu paikallaan olevaksi
  • Paksu viiva osoittaa, että kohde on automaattisen seurannan kohteena (kun se on käytössä)
  • " + } + }, + "mask": { + "title": "Liikepeitot", + "desc": "Näytä liikepeiton monikulmiot" + }, + "motion": { + "title": "Liikelaatikot", + "desc": "Näytä laatikot alueiden ympärillä, joilla liikettä havaitaan", + "tips": "

    Liikelaatikot


    Punaiset laatikot peittävät ruudun alueet, joilla liikettä havaitaan parhaillaan.

    " + } + }, + "users": { + "title": "Käyttäjät", + "management": { + "title": "Käyttäjien hallinta", + "desc": "Hallinnoi tämän Frigate-instanssin käyttäjätilejä." + }, + "addUser": "Lisää käyttäjä", + "updatePassword": "Päivitä salasana", + "toast": { + "success": { + "roleUpdated": "Rooli päivitetty käyttäjälle {{user}}", + "createUser": "Käyttäjä {{user}} luotu onnistuneesti", + "deleteUser": "Käyttäjä {{user}} poistettu onnistuneesti", + "updatePassword": "Salasana päivitetty onnistuneesti." + }, + "error": { + "setPasswordFailed": "Salasanan tallentaminen epäonnistui: {{errorMessage}}", + "createUserFailed": "Käyttäjän luonti epäonnistui: {{errorMessage}}", + "roleUpdateFailed": "Roolin päivittäminen epäonnistui: {{errorMessage}}", + "deleteUserFailed": "Käyttäjän poisto epäonistui: {{errorMessage}}" + } + }, + "table": { + "username": "Käyttäjänimi", + "actions": "Toiminnot", + "noUsers": "Käyttäjiä ei löytynyt.", + "changeRole": "Vaihda käyttäjäroolia", + "password": "Salasana", + "deleteUser": "Poista tili", + "role": "Rooli" + }, + "dialog": { + "form": { + "user": { + "desc": "Vain kirjaimet, numerot, pisteet ja alaviivat sallitaan.", + "placeholder": "Syötä käyttäjätunnus", + "title": "Käyttäjätunnus" + } + } + } + }, + "motionDetectionTuner": { + "title": "Liiketunnistuksen säätäminen", + "desc": { + "title": "Frigate käyttää liiketunnistusta ensimmäisenä tarkistuksena nähdäkseen, tapahtuuko kuvassa jotain, mikä kannattaisi tarkistaa objektitunnistuksella.", + "documentation": "Lue liikkeensäädön opas" + }, + "Threshold": { + "title": "Kynnys" } } } diff --git a/web/public/locales/fi/views/system.json b/web/public/locales/fi/views/system.json index 0967ef424..78138fc41 100644 --- a/web/public/locales/fi/views/system.json +++ b/web/public/locales/fi/views/system.json @@ -1 +1,9 @@ -{} +{ + "logs": { + "type": { + "timestamp": "Aikaleima", + "tag": "Tagi", + "message": "Viesti" + } + } +} diff --git a/web/public/locales/fr/audio.json b/web/public/locales/fr/audio.json index f7b4b3839..9388b1307 100644 --- a/web/public/locales/fr/audio.json +++ b/web/public/locales/fr/audio.json @@ -1,5 +1,5 @@ { - "speech": "Discours", + "speech": "Conversation", "babbling": "Babillage", "yell": "Crier", "bicycle": "Vélo", @@ -16,7 +16,7 @@ "whoop": "Cri", "sigh": "Soupir", "singing": "Chant", - "choir": "Choral", + "choir": "Chorale", "yodeling": "Yodel", "chant": "Chant", "mantra": "Mantra", diff --git a/web/public/locales/fr/common.json b/web/public/locales/fr/common.json index 843470442..32cb68df5 100644 --- a/web/public/locales/fr/common.json +++ b/web/public/locales/fr/common.json @@ -47,8 +47,8 @@ "day_other": "{{time}} jours", "1hour": "1 heure", "formattedTimestamp": { - "12hour": "%b %-d, %I:%M:%S %p", - "24hour": "%d %b, %H:%M:%S" + "12hour": "d MMM HH:mm:ss", + "24hour": "d MMM HH:mm:ss" }, "formattedTimestampWithYear": { "24hour": "%b %-d %Y, %H:%M", @@ -60,8 +60,29 @@ "24hour": "%b %-d, %H:%M" }, "formattedTimestamp2": { - "12hour": "%m/%d %I:%M:%S%P", - "24hour": "%d %b %H:%M:%S" + "12hour": "dd/MM HH:mm:ss", + "24hour": "d MMM HH:mm:ss" + }, + "formattedTimestampHourMinute": { + "24hour": "HH:mm", + "12hour": "HH:mm" + }, + "formattedTimestampMonthDay": "d MMM", + "formattedTimestampFilename": { + "12hour": "dd-MM-yy-HH-mm-ss", + "24hour": "dd-MM-yy-HH-mm-ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "d MMM HH:mm", + "24hour": "d MMM HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "24hour": "HH:mm:ss", + "12hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "d MMM yyyy, HH:mm", + "24hour": "d MMM yyyy HH:mm" } }, "button": { @@ -69,7 +90,7 @@ "reset": "Réinitialiser", "disabled": "Désactivé", "save": "Enregistrer", - "saving": "Enregistrement...", + "saving": "Enregistrement…", "close": "Fermer", "copy": "Copier", "back": "Retour", @@ -134,7 +155,8 @@ "pt": "Português (Portugais)", "sk": "Slovenčina (Slovaque)", "uk": "Українська (Ukrainien)", - "vi": "Tiếng Việt (Vietnamien)" + "vi": "Tiếng Việt (Vietnamien)", + "yue": "粵語 (Cantonais)" }, "appearance": "Apparence", "darkMode": { @@ -171,7 +193,8 @@ "nord": "Nord", "red": "Rouge", "default": "Défaut", - "label": "Thème" + "label": "Thème", + "highcontrast": "Contraste élevé" }, "systemMetrics": "Indicateurs systèmes", "settings": "Paramètres", diff --git a/web/public/locales/fr/components/camera.json b/web/public/locales/fr/components/camera.json index 4e19451c3..0c959889b 100644 --- a/web/public/locales/fr/components/camera.json +++ b/web/public/locales/fr/components/camera.json @@ -11,7 +11,7 @@ } }, "name": { - "placeholder": "Saisissez un nom...", + "placeholder": "Saisissez un nom…", "label": "Nom", "errorMessage": { "mustLeastCharacters": "Le nom du groupe de caméras doit comporter au moins 2 caractères.", diff --git a/web/public/locales/fr/components/dialog.json b/web/public/locales/fr/components/dialog.json index 7bcf40a07..e88b206a9 100644 --- a/web/public/locales/fr/components/dialog.json +++ b/web/public/locales/fr/components/dialog.json @@ -29,6 +29,12 @@ }, "state": { "submitted": "Soumis" + }, + "question": { + "label": "Confirmez cette étiquette pour Frigate Plus", + "ask_an": "Est-ce que cet objet est un {{label}} ?", + "ask_a": "Est-ce un objet pour un {{label}} ?", + "ask_full": "Est-ce-que cet objet est un(e) {{untranslatedLabel}} ({{translatedLabel}}) ?" } } }, @@ -90,7 +96,7 @@ "restreaming": { "disabled": "Le renvoi du flux n'est pas activé pour cette caméra.", "desc": { - "readTheDocumentation": "Lire la documentation ", + "readTheDocumentation": "Lire la documentation", "title": "Installer go2rtc pour accéder à des options supplémentaires de visionnage en direct et l'audio pour cette caméra." } }, diff --git a/web/public/locales/fr/components/filter.json b/web/public/locales/fr/components/filter.json index 2114f7218..06b629963 100644 --- a/web/public/locales/fr/components/filter.json +++ b/web/public/locales/fr/components/filter.json @@ -105,9 +105,9 @@ "allLogs": "Tous les journaux" }, "recognizedLicensePlates": { - "placeholder": "Tapez pour rechercher des plaques d'immatriculation...", + "placeholder": "Tapez pour rechercher des plaques d'immatriculation…", "noLicensePlatesFound": "Aucune plaque d'immatriculation trouvée.", - "loading": "Chargement des plaques d'immatriculation reconnues...", + "loading": "Chargement des plaques d'immatriculation reconnues…", "title": "Plaques d'immatriculation reconnues", "loadFailed": "Échec du chargement des plaques d'immatriculation reconnues.", "selectPlatesFromList": "Sélectionner une ou plusieurs plaques d'immatriculation dans la liste." diff --git a/web/public/locales/fr/components/icons.json b/web/public/locales/fr/components/icons.json index 40d8cef3c..90ce0bb1f 100644 --- a/web/public/locales/fr/components/icons.json +++ b/web/public/locales/fr/components/icons.json @@ -1,7 +1,7 @@ { "iconPicker": { "search": { - "placeholder": "Chercher une icône..." + "placeholder": "Chercher une icône…" }, "selectIcon": "Sélectionnez une icône" } diff --git a/web/public/locales/fr/views/events.json b/web/public/locales/fr/views/events.json index e98eb6f4e..3d1675192 100644 --- a/web/public/locales/fr/views/events.json +++ b/web/public/locales/fr/views/events.json @@ -31,5 +31,8 @@ "label": "Afficher les nouveaux éléments à évaluer" }, "camera": "Caméra", - "markTheseItemsAsReviewed": "Marquer ces éléments comme évalués" + "markTheseItemsAsReviewed": "Marquer ces éléments comme évalués", + "selected": "{{count}} sélectionné(s)", + "selected_other": "{{count}} sélectionné(s)", + "selected_one": "{{count}} sélectionné(s)" } diff --git a/web/public/locales/fr/views/explore.json b/web/public/locales/fr/views/explore.json index 98b559e96..28ba131fa 100644 --- a/web/public/locales/fr/views/explore.json +++ b/web/public/locales/fr/views/explore.json @@ -7,7 +7,7 @@ "estimatedTime": "Temps restant estimé :", "finishingShortly": "Termine bientôt", "context": "L'exploration peut être utilisée une fois la réindexation des objets suivis terminée.", - "startingUp": "Démarrage...", + "startingUp": "Démarrage…", "step": { "thumbnailsEmbedded": "Vignettes intégrées : ", "descriptionsEmbedded": "Descriptions intégrées : ", @@ -124,7 +124,12 @@ "gone": "{{label}} parti", "heard": "{{label}} entendu", "external": "{{label}} détecté", - "active": "{{label}} est devenu actif" + "active": "{{label}} est devenu actif", + "header": { + "zones": "Zones", + "area": "Aire", + "ratio": "Ratio" + } }, "annotationSettings": { "title": "Paramètres d'annotation", diff --git a/web/public/locales/fr/views/faceLibrary.json b/web/public/locales/fr/views/faceLibrary.json index 3b151965b..439a06ec0 100644 --- a/web/public/locales/fr/views/faceLibrary.json +++ b/web/public/locales/fr/views/faceLibrary.json @@ -30,7 +30,9 @@ "addFace": "Ajouter un visage", "uploadImage": "Téléverser une image", "deleteFaceAttempts": "Supprimer les tentatives de reconnaissance faciale", - "reprocessFace": "Réanalyser le visage" + "reprocessFace": "Réanalyser le visage", + "renameFace": "Renommer le visage", + "deleteFace": "Supprimer le visage" }, "selectItem": "Sélectionner {{item}}", "deleteFaceLibrary": { @@ -38,7 +40,7 @@ "desc": "Etes-vous certain de vouloir supprimer la collection {{name}} ? Cette action supprimera définitivement tous les visages associés." }, "imageEntry": { - "dropActive": "Déposez l'image ici...", + "dropActive": "Déposez l'image ici…", "dropInstructions": "Glissez et déposez une image ici, ou cliquez pour sélectionner", "maxSize": "Taille max : {{size}}MB", "validation": { @@ -57,7 +59,8 @@ "deletedFace_one": "{{count}} visage a été supprimé avec succès.", "deletedFace_many": "{{count}} visages ont été supprimés avec succès.", "deletedFace_other": "{{count}} visages ont été supprimés avec succès.", - "trainedFace": "Visage entraîné avec succès." + "trainedFace": "Visage entraîné avec succès.", + "renamedFace": "Visage renommé avec succés en {{name}}" }, "error": { "uploadingImageFailed": "Échec du téléversement de l'image : {{errorMessage}}", @@ -65,7 +68,8 @@ "trainFailed": "Échec de l'entrainement : {{errorMessage}}", "updateFaceScoreFailed": "Échec de la mise à jour du score du visage : {{errorMessage}}", "addFaceLibraryFailed": "Échec du nommage du visage : {{errorMessage}}", - "deleteNameFailed": "Échec de la suppression du nom : {{errorMessage}}" + "deleteNameFailed": "Échec de la suppression du nom : {{errorMessage}}", + "renameFaceFailed": "Échec du renommage du visage : {{errorMessage}}" } }, "trainFaceAs": "Entraîner un visage comme :", @@ -74,5 +78,9 @@ "uploadFace": "Téléverser l'image de visage", "faceName": "Entrer un nom pour le visage", "nextSteps": "Prochaines étapes" + }, + "renameFace": { + "title": "Renommer le visage", + "desc": "Saisissez un nouveau nom pour {{name}}" } } diff --git a/web/public/locales/fr/views/search.json b/web/public/locales/fr/views/search.json index 5d14657b8..cfb650cd4 100644 --- a/web/public/locales/fr/views/search.json +++ b/web/public/locales/fr/views/search.json @@ -52,7 +52,14 @@ "desc": { "text": "Les filtres vous aident à affiner vos résultats de recherche. Voici comment les utiliser dans le champ de saisie :", "example": "Exemple: cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM ", - "step": "" + "step": "", + "step1": "Saisissez un nom de clé de filtre suivi de deux points (par exemple, \"cameras:\").", + "step2": "Sélectionnez une valeur pour la suggestion ou saisissez la vôtre.", + "step3": "Utilisez plusieurs filtres en les ajoutant les uns après les autres avec un espace entre.", + "step5": "Le filtre de plage de temps utilise le format {{exampleTime}}.", + "step6": "Supprimer les filtres en cliquant sur le 'x' à côté d'eux.", + "step4": "Filtres de dates (avant : et après :) utilisez le format {{DateFormat}}.", + "exampleLabel": "Exemple :" } } }, @@ -62,6 +69,6 @@ "clear": "Effacer la recherche par similarité" }, "placeholder": { - "search": "Rechercher..." + "search": "Rechercher…" } } diff --git a/web/public/locales/fr/views/settings.json b/web/public/locales/fr/views/settings.json index f0868fe8c..23995bdef 100644 --- a/web/public/locales/fr/views/settings.json +++ b/web/public/locales/fr/views/settings.json @@ -7,8 +7,9 @@ "motionTuner": "Réglages du mouvement - Frigate", "general": "Paramètres généraux - Frigate", "masksAndZones": "Éditeur de masques et de zones - Frigate", - "object": "Paramètres d'objets - Frigate", - "frigatePlus": "Paramètres Frigate+ - Frigate" + "object": "Débogage - Frigate", + "frigatePlus": "Paramètres Frigate+ - Frigate", + "notifications": "Paramètres de notification - Frigate" }, "menu": { "ui": "Interface utilisateur", @@ -89,7 +90,8 @@ "12hours": "Suspendre pendant 12 heures", "5minutes": "Suspendre pendant 5 minutes", "1hour": "Suspendre pendant 1 heure", - "30minutes": "Suspendre pendant 30 minutes" + "30minutes": "Suspendre pendant 30 minutes", + "suspend": "Suspendre" }, "toast": { "success": { @@ -109,7 +111,7 @@ "notificationUnavailable": { "title": "Notifications indisponibles", "documentation": "Lire la Documentation", - "desc": "Les notifications push Web nécessitent un contexte sécurisé (https://...). Il s'agit d'une limitation du navigateur. Accédez à Frigate en toute sécurité pour utiliser les notifications." + "desc": "Les notifications push Web nécessitent un contexte sécurisé (https://…). Il s'agit d'une limitation du navigateur. Accédez à Frigate en toute sécurité pour utiliser les notifications." }, "globalSettings": { "title": "Paramètres globaux", @@ -158,19 +160,24 @@ "modelType": "Type de Modèle", "cameras": "Caméras", "supportedDetectors": "Détecteurs pris en charge", - "loading": "Chargement des informations sur le modèle...", + "loading": "Chargement des informations sur le modèle…", "title": "Informations sur le modèle", "trainDate": "Date d'entrainement", "error": "Échec au chargement des informations du modèle", "availableModels": "Modèles disponibles", "dimensions": "Dimensions", - "loadingAvailableModels": "Chargement des modèles disponibles...", - "modelSelect": "Vous pouvez sélectionner ici vos modèles disponibles sur Frigate+. Notez que seuls les modèles compatibles avec votre configuration de détecteur actuelle peuvent être sélectionnés." + "loadingAvailableModels": "Chargement des modèles disponibles…", + "modelSelect": "Vous pouvez sélectionner ici vos modèles disponibles sur Frigate+. Notez que seuls les modèles compatibles avec votre configuration de détecteur actuelle peuvent être sélectionnés.", + "plusModelType": { + "baseModel": "Modèle de base", + "userModel": "Optimisé" + } }, "toast": { "success": "Les paramètres de Frigate+ ont été enregistrés. Redémarrez Frigate pour appliquer les modifications.", "error": "Échec de l'enregistrement des modifications de configuration : {{errorMessage}}" - } + }, + "restart_required": "Redémarrage requis (modèle Frigate+ changé)" }, "classification": { "title": "Paramètres de classification", @@ -230,7 +237,8 @@ "birdClassification": { "title": "Classification des oiseaux", "desc": "La classification des oiseaux identifie les oiseaux connus à l'aide d'un modèle Tensorflow quantifié. Lorsqu'un oiseau connu est reconnu, son nom commun sera ajouté en tant que sous-étiquette. Cette information est incluse dans l'interface utilisateur, les filtres, ainsi que dans les notifications." - } + }, + "restart_required": "Redémarrage requis (paramètres de classification changés)" }, "camera": { "title": "Paramètres de la caméra", @@ -321,7 +329,7 @@ "edit": "Modifier une Zone", "name": { "title": "Nom", - "inputPlaceHolder": "Entrer un nom...", + "inputPlaceHolder": "Entrer un nom…", "tips": "Le nom doit comporter au moins 2 caractères et ne doit pas être le nom d'une caméra ou d'une autre zone." }, "loiteringTime": { @@ -365,7 +373,7 @@ "documentTitle": "Modifier Masque de Mouvement - Frigate", "context": { "documentation": "Lire la Documentation", - "title": "Les masques de mouvement servent à empêcher les mouvements indésirables de déclencher la détection (par exemple : branches d'arbres, horodatage des caméras). Ils doivent être utilisés avec parcimonie, car un surmasquage complique le suivi des objets." + "title": "Les masques de mouvement servent à empêcher les mouvements indésirables de déclencher la détection (par exemple : branches d'arbres, horodatage des caméras). Ils doivent être utilisés avec parcimonie, car un surmasquage complique le suivi des objets." }, "polygonAreaTooLarge": { "title": "Le masque de mouvement couvre {{polygonArea}} % du cadre de la caméra. Les grands masques de mouvement ne sont pas recommandés.", @@ -425,7 +433,8 @@ "error": { "copyCoordinatesFailed": "Impossible de copier les coordonnées dans le presse-papiers." } - } + }, + "restart_required": "Redémarrage requis (masques/zones changés)" }, "motionDetectionTuner": { "title": "Réglage de la détection de mouvement", @@ -475,12 +484,12 @@ "motion": { "desc": "Afficher des cadres autour des zones où un mouvement est détecté", "title": "Cadres de mouvement", - "tips": "

    Cadres de mouvement


    Des cadres rouges seront superposées sur les zones de l'image où un mouvement est actuellement détecté

    " + "tips": "

    Cadres de mouvement


    Des cadres rouges seront superposées sur les zones de l'image où un mouvement est actuellement détecté

    " }, "regions": { "title": "Régions", "desc": "Afficher une boîte de la région d'intérêt envoyée au détecteur d'objet", - "tips": "

    Cadres de région


    Des cadres verts lumineux seront superposés sur les zones d'intérêt de l'image qui sont envoyées au détecteur d'objets.

    " + "tips": "

    Cadres de région


    Des cadres verts lumineux seront superposés sur les zones d'intérêt de l'image qui sont envoyées au détecteur d'objets.

    " }, "objectShapeFilterDrawing": { "title": "Dessin de filtre de forme d'objet", @@ -563,7 +572,7 @@ "deleteUser": { "title": "Supprimer un utilisateur", "desc": "Cette action est irréversible. Elle supprimera définitivement le compte utilisateur et toutes les données associées.", - "warn": "Êtes-vous sûr de vouloir supprimer {{username}} ?" + "warn": "Êtes-vous sûr de vouloir supprimer {{username}} ?" }, "passwordSetting": { "updatePassword": "Mettre à jour le mot de passe pour {{username}}", @@ -572,8 +581,14 @@ }, "changeRole": { "title": "Changer le rôle de l'utilisateur", - "desc": "Mettre à jour les autorisations pour {{username}}", - "roleInfo": "

    Sélectionnez le rôle approprié pour cet utilisateur :

    " + "desc": "Mettre à jour les autorisations pour {{username}}", + "roleInfo": { + "intro": "Sélectionnez le rôle approprié pour cet utilisateur :", + "admin": "Administrateur", + "adminDesc": "Accès complet à l'ensemble des fonctionnalités.", + "viewer": "Observateur", + "viewerDesc": "Limité aux tableaux de bord Direct, Examiner, Explorer et Exports." + } }, "createUser": { "title": "Créer un nouvel utilisateur", diff --git a/web/public/locales/fr/views/system.json b/web/public/locales/fr/views/system.json index 762bd8a50..562ab047d 100644 --- a/web/public/locales/fr/views/system.json +++ b/web/public/locales/fr/views/system.json @@ -41,7 +41,8 @@ "title": "Détecteurs", "inferenceSpeed": "Vitesse d'inférence du détecteur", "cpuUsage": "Utilisation CPU Détecteur", - "memoryUsage": "Utilisation Mémoire Détecteur" + "memoryUsage": "Utilisation Mémoire Détecteur", + "temperature": "Température du détecteur" }, "hardwareInfo": { "title": "Info Matériel", @@ -72,7 +73,9 @@ "closeInfo": { "label": "Information de fermeture du GPU" } - } + }, + "npuUsage": "Utilisation NPU", + "npuMemory": "Mémoire NPU" }, "otherProcesses": { "title": "Autres tâches", @@ -124,8 +127,17 @@ "camera": "caméra", "detect": "Détecter", "skipped": "ignoré", - "ffmpeg": "ffmpeg", - "capture": "capture" + "ffmpeg": "FFmpeg", + "capture": "capture", + "cameraFfmpeg": "{{camName}} FFmpeg", + "cameraSkippedDetectionsPerSecond": "{{camName}} détections manquées par seconde", + "overallDetectionsPerSecond": "Moyenne de détections par seconde", + "overallFramesPerSecond": "Moyenne d'images par seconde", + "overallSkippedDetectionsPerSecond": "Moyenne de détections manquées par seconde", + "cameraCapture": "{{camName}} capture", + "cameraDetect": "{{camName}} détection", + "cameraFramesPerSecond": "{{camName}} images par seconde", + "cameraDetectionsPerSecond": "{{camName}} détections par seconde" }, "overview": "Prévisualisation", "toast": { @@ -139,10 +151,13 @@ }, "lastRefreshed": "Dernier rafraichissement : ", "stats": { - "ffmpegHighCpuUsage": "{{camera}} a un taux élevé d'utilisation CPU par FFMPEG ({{ffmpegAvg}}%)", + "ffmpegHighCpuUsage": "{{camera}} a un taux élevé d'utilisation CPU par FFmpeg ({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} a un taux élevé d'utilisation CPU ({{detectAvg}}%)", "healthy": "Le système est sain", - "reindexingEmbeddings": "Réindexation des données complémentaires ({{processed}}% complété)" + "reindexingEmbeddings": "Réindexation des données complémentaires ({{processed}}% complété)", + "cameraIsOffline": "{{camera}} est hors ligne", + "detectIsSlow": "{{detect}} est lent ({{speed}} ms)", + "detectIsVerySlow": "{{detect}} est très lent ({{speed}} ms)" }, "enrichments": { "title": "Améliorations", @@ -151,7 +166,14 @@ "face_embedding_speed": "Vitesse de capture des données complémentaires de visage", "text_embedding_speed": "Vitesse de capture des données complémentaire de texte", "image_embedding_speed": "Vitesse de capture des données complémentaires à l'image", - "plate_recognition_speed": "Vitesse de reconnaissance des plaques d'immatriculation" + "plate_recognition_speed": "Vitesse de reconnaissance des plaques d'immatriculation", + "face_recognition_speed": "Vitesse de reconnaissance faciale", + "plate_recognition": "Reconnaissance de plaques d'immatriculation", + "image_embedding": "Représentation vectorielle d'image", + "yolov9_plate_detection": "Détection de plaques d'immatriculation YOLOv9", + "face_recognition": "Reconnaissance faciale", + "text_embedding": "Représentation vectorielle de texte", + "yolov9_plate_detection_speed": "Vitesse de détection de plaques d'immatriculation YOLOv9" } } } diff --git a/web/public/locales/hi/audio.json b/web/public/locales/hi/audio.json index a8a255d1d..afffaf44a 100644 --- a/web/public/locales/hi/audio.json +++ b/web/public/locales/hi/audio.json @@ -138,5 +138,6 @@ "exciting_music": "रोमांचक संगीत", "raindrop": "बारिश की बूंद", "rowboat": "चप्पू वाली नाव", - "aircraft": "विमान" + "aircraft": "विमान", + "bicycle": "साइकिल" } diff --git a/web/public/locales/hi/common.json b/web/public/locales/hi/common.json index 0967ef424..392c9a844 100644 --- a/web/public/locales/hi/common.json +++ b/web/public/locales/hi/common.json @@ -1 +1,7 @@ -{} +{ + "time": { + "untilForTime": "{{time}} तक", + "untilForRestart": "जब तक फ्रिगेट पुनः रीस्टार्ट नहीं हो जाता।", + "untilRestart": "रीस्टार्ट होने में" + } +} diff --git a/web/public/locales/hi/components/camera.json b/web/public/locales/hi/components/camera.json index 0967ef424..37c5b27ed 100644 --- a/web/public/locales/hi/components/camera.json +++ b/web/public/locales/hi/components/camera.json @@ -1 +1,7 @@ -{} +{ + "group": { + "label": "कैमरा समूह", + "add": "कैमरा समूह जोड़ें", + "edit": "कैमरा समूह संपादित करें" + } +} diff --git a/web/public/locales/hi/components/dialog.json b/web/public/locales/hi/components/dialog.json index 0967ef424..dce6983b5 100644 --- a/web/public/locales/hi/components/dialog.json +++ b/web/public/locales/hi/components/dialog.json @@ -1 +1,9 @@ -{} +{ + "restart": { + "title": "क्या आप निश्चित हैं कि आप फ्रिगेट को रीस्टार्ट करना चाहते हैं?", + "button": "रीस्टार्ट", + "restarting": { + "title": "फ्रिगेट रीस्टार्ट हो रहा है" + } + } +} diff --git a/web/public/locales/hi/components/filter.json b/web/public/locales/hi/components/filter.json index 0967ef424..214179375 100644 --- a/web/public/locales/hi/components/filter.json +++ b/web/public/locales/hi/components/filter.json @@ -1 +1,9 @@ -{} +{ + "filter": "फ़िल्टर", + "labels": { + "label": "लेबल", + "all": { + "title": "सभी लेबल" + } + } +} diff --git a/web/public/locales/hi/components/player.json b/web/public/locales/hi/components/player.json index 0967ef424..9b4ed4389 100644 --- a/web/public/locales/hi/components/player.json +++ b/web/public/locales/hi/components/player.json @@ -1 +1,5 @@ -{} +{ + "noRecordingsFoundForThisTime": "इस समय का कोई रिकॉर्डिंग नहीं मिला", + "noPreviewFound": "कोई प्रीव्यू नहीं मिला", + "noPreviewFoundFor": "{{cameraName}} के लिए कोई पूर्वावलोकन नहीं मिला" +} diff --git a/web/public/locales/hi/objects.json b/web/public/locales/hi/objects.json index 4c6a4f946..436a57668 100644 --- a/web/public/locales/hi/objects.json +++ b/web/public/locales/hi/objects.json @@ -11,5 +11,7 @@ "bird": "पक्षी", "mouse": "चूहा", "vehicle": "वाहन", - "car": "गाड़ी" + "car": "गाड़ी", + "person": "व्यक्ति", + "bicycle": "साइकिल" } diff --git a/web/public/locales/hi/views/events.json b/web/public/locales/hi/views/events.json index 0967ef424..b6fba2aa1 100644 --- a/web/public/locales/hi/views/events.json +++ b/web/public/locales/hi/views/events.json @@ -1 +1,4 @@ -{} +{ + "alerts": "अलर्टस", + "detections": "खोजें" +} diff --git a/web/public/locales/hi/views/explore.json b/web/public/locales/hi/views/explore.json index 0967ef424..bb214ba12 100644 --- a/web/public/locales/hi/views/explore.json +++ b/web/public/locales/hi/views/explore.json @@ -1 +1,4 @@ -{} +{ + "documentTitle": "अन्वेषण करें - फ्रिगेट", + "generativeAI": "जनरेटिव ए आई" +} diff --git a/web/public/locales/hi/views/exports.json b/web/public/locales/hi/views/exports.json index 0967ef424..97a0f0e53 100644 --- a/web/public/locales/hi/views/exports.json +++ b/web/public/locales/hi/views/exports.json @@ -1 +1,4 @@ -{} +{ + "documentTitle": "निर्यात - फ्रिगेट", + "search": "खोजें" +} diff --git a/web/public/locales/hi/views/faceLibrary.json b/web/public/locales/hi/views/faceLibrary.json index 0967ef424..5c8de952e 100644 --- a/web/public/locales/hi/views/faceLibrary.json +++ b/web/public/locales/hi/views/faceLibrary.json @@ -1 +1,6 @@ -{} +{ + "description": { + "addFace": "फेस लाइब्रेरी में नया संग्रह जोड़ने की प्रक्रिया को आगे बढ़ाएं।", + "placeholder": "इस संग्रह का नाम बताएं" + } +} diff --git a/web/public/locales/hi/views/live.json b/web/public/locales/hi/views/live.json index 0967ef424..86d2a9235 100644 --- a/web/public/locales/hi/views/live.json +++ b/web/public/locales/hi/views/live.json @@ -1 +1,4 @@ -{} +{ + "documentTitle": "लाइव - फ्रिगेट", + "documentTitle.withCamera": "{{camera}} - लाइव - फ्रिगेट" +} diff --git a/web/public/locales/hi/views/recording.json b/web/public/locales/hi/views/recording.json index bd35fbaf5..a9846e445 100644 --- a/web/public/locales/hi/views/recording.json +++ b/web/public/locales/hi/views/recording.json @@ -6,5 +6,6 @@ "endTimeMustAfterStartTime": "समाप्ति समय प्रारंभ समय के बाद होना चाहिए" } }, - "export": "निर्यात" + "export": "निर्यात", + "filter": "फ़िल्टर" } diff --git a/web/public/locales/hi/views/search.json b/web/public/locales/hi/views/search.json index 0967ef424..b38dd11af 100644 --- a/web/public/locales/hi/views/search.json +++ b/web/public/locales/hi/views/search.json @@ -1 +1,4 @@ -{} +{ + "search": "खोजें", + "savedSearches": "सहेजी गई खोजें" +} diff --git a/web/public/locales/hi/views/settings.json b/web/public/locales/hi/views/settings.json index 0967ef424..5fe3a3233 100644 --- a/web/public/locales/hi/views/settings.json +++ b/web/public/locales/hi/views/settings.json @@ -1 +1,6 @@ -{} +{ + "documentTitle": { + "default": "सेटिंग्स - फ्रिगेट", + "authentication": "प्रमाणीकरण सेटिंग्स - फ्रिगेट" + } +} diff --git a/web/public/locales/hi/views/system.json b/web/public/locales/hi/views/system.json index 0967ef424..b29ff9abb 100644 --- a/web/public/locales/hi/views/system.json +++ b/web/public/locales/hi/views/system.json @@ -1 +1,6 @@ -{} +{ + "documentTitle": { + "cameras": "कैमरा आँकड़े - फ्रिगेट", + "storage": "भंडारण आँकड़े - फ्रिगेट" + } +} diff --git a/web/public/locales/hu/audio.json b/web/public/locales/hu/audio.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/audio.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/common.json b/web/public/locales/hu/common.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/common.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/components/auth.json b/web/public/locales/hu/components/auth.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/components/auth.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/components/camera.json b/web/public/locales/hu/components/camera.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/components/camera.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/components/dialog.json b/web/public/locales/hu/components/dialog.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/components/dialog.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/components/filter.json b/web/public/locales/hu/components/filter.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/components/filter.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/components/icons.json b/web/public/locales/hu/components/icons.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/components/icons.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/components/input.json b/web/public/locales/hu/components/input.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/components/input.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/components/player.json b/web/public/locales/hu/components/player.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/components/player.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/objects.json b/web/public/locales/hu/objects.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/objects.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/configEditor.json b/web/public/locales/hu/views/configEditor.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/configEditor.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/events.json b/web/public/locales/hu/views/events.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/events.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/explore.json b/web/public/locales/hu/views/explore.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/explore.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/exports.json b/web/public/locales/hu/views/exports.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/exports.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/faceLibrary.json b/web/public/locales/hu/views/faceLibrary.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/faceLibrary.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/live.json b/web/public/locales/hu/views/live.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/live.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/recording.json b/web/public/locales/hu/views/recording.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/recording.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/search.json b/web/public/locales/hu/views/search.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/search.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/settings.json b/web/public/locales/hu/views/settings.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/settings.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/hu/views/system.json b/web/public/locales/hu/views/system.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/hu/views/system.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/audio.json b/web/public/locales/id/audio.json new file mode 100644 index 000000000..829dac589 --- /dev/null +++ b/web/public/locales/id/audio.json @@ -0,0 +1,25 @@ +{ + "yell": "Teriakan", + "speech": "Bahasa", + "babbling": "Ocehan", + "bellow": "Di bawah", + "whoop": "Teriakan", + "whispering": "Bisikan", + "snicker": "Tertawa", + "crying": "Menangis", + "sigh": "Mendesah", + "choir": "Paduan Suara", + "yodeling": "Bernyanyi Yodel", + "chant": "Nyanyian", + "child_singing": "Anak bernyanyi", + "rapping": "Mengetuk", + "humming": "Bersenandung", + "groan": "Mengerang", + "grunt": "Mendengus", + "breathing": "Bernafas", + "laughter": "Tertawa", + "singing": "Nyanyian", + "mantra": "Mantra", + "synthetic_singing": "Nyanyian sintesis", + "whistling": "Siulan" +} diff --git a/web/public/locales/id/common.json b/web/public/locales/id/common.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/common.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/components/auth.json b/web/public/locales/id/components/auth.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/components/auth.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/components/camera.json b/web/public/locales/id/components/camera.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/components/camera.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/components/dialog.json b/web/public/locales/id/components/dialog.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/components/dialog.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/components/filter.json b/web/public/locales/id/components/filter.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/components/filter.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/components/icons.json b/web/public/locales/id/components/icons.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/components/icons.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/components/input.json b/web/public/locales/id/components/input.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/components/input.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/components/player.json b/web/public/locales/id/components/player.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/components/player.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/objects.json b/web/public/locales/id/objects.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/objects.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/configEditor.json b/web/public/locales/id/views/configEditor.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/configEditor.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/events.json b/web/public/locales/id/views/events.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/events.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/explore.json b/web/public/locales/id/views/explore.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/explore.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/exports.json b/web/public/locales/id/views/exports.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/exports.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/faceLibrary.json b/web/public/locales/id/views/faceLibrary.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/faceLibrary.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/live.json b/web/public/locales/id/views/live.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/live.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/recording.json b/web/public/locales/id/views/recording.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/recording.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/search.json b/web/public/locales/id/views/search.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/search.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/settings.json b/web/public/locales/id/views/settings.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/settings.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/id/views/system.json b/web/public/locales/id/views/system.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/id/views/system.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/it/audio.json b/web/public/locales/it/audio.json index 1909ab471..eb9b98a5b 100644 --- a/web/public/locales/it/audio.json +++ b/web/public/locales/it/audio.json @@ -169,7 +169,7 @@ "drum_machine": "Drum Machine", "tabla": "Tabla", "cymbal": "Piatto", - "hi_hat": "Hi-Hat", + "hi_hat": "Charleston", "wood_block": "Blocco di legno", "tambourine": "Tamburello", "maraca": "Maracas", @@ -179,7 +179,7 @@ "marimba": "Marimba", "glockenspiel": "Glockenspiel", "vibraphone": "Vibrafono", - "steelpan": "Steel pan", + "steelpan": "Tamburo d'acciaio", "orchestra": "Orchestra", "brass_instrument": "Ottoni", "trumpet": "Tromba", @@ -327,11 +327,11 @@ "railroad_car": "Vagone ferroviario", "train_wheels_squealing": "Ruote del treno che stridono", "subway": "Metropolitana", - "aircraft": "Aeronave", + "aircraft": "Aeromobile", "aircraft_engine": "Motore aeronautico", "jet_engine": "Motore a reazione", "propeller": "Elica", - "fixed-wing_aircraft": "Aeronave ad ala fissa", + "fixed-wing_aircraft": "Aeromobile ad ala fissa", "skateboard": "Skateboard", "light_engine": "Motore leggero", "dental_drill's_drill": "Trapano dentale", @@ -379,7 +379,7 @@ "writing": "Scrivere", "alarm": "Allarme", "telephone": "Telefono", - "telephone_bell_ringing": "Il campanello del telefono squilla", + "telephone_bell_ringing": "Telefono che squilla", "telephone_dialing": "Composizione telefonica", "dial_tone": "Tono di linea", "busy_signal": "Segnale di occupato", @@ -412,8 +412,8 @@ "artillery_fire": "Fuoco di artiglieria", "cap_gun": "Pistola a fumogeni", "fireworks": "Fuochi d'artificio", - "burst": "Scoppio", - "boom": "Scoppio (boom)", + "burst": "Esplosione", + "boom": "Scoppio", "wood": "Legno", "chop": "Taglio", "splinter": "Scheggia", diff --git a/web/public/locales/it/common.json b/web/public/locales/it/common.json index bc850eb87..b2f6ebe59 100644 --- a/web/public/locales/it/common.json +++ b/web/public/locales/it/common.json @@ -47,12 +47,12 @@ "m": "{{time}}min", "s": "{{time}}sec", "formattedTimestamp": { - "12hour": "%b %-d, %I:%M:%S %p", - "24hour": "%b %-d, %H:%M:%S" + "12hour": "MMM d, h:mm:ss aaa", + "24hour": "MMM d, HH:mm:ss" }, "formattedTimestamp2": { - "12hour": "%m/%d %I:%M:%S%P", - "24hour": "%d %b %H:%M:%S" + "12hour": "MM/dd h:mm:ssa", + "24hour": "d MMM HH:mm:ss" }, "formattedTimestampExcludeSeconds": { "12hour": "%b %-d, %I:%M %p", @@ -62,7 +62,28 @@ "12hour": "%b %-d %Y, %I:%M %p", "24hour": "%b %-d %Y, %H:%M" }, - "formattedTimestampOnlyMonthAndDay": "%b %-d" + "formattedTimestampOnlyMonthAndDay": "%b %-d", + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "MMM d, h:mm aaa", + "24hour": "MMM d, HH:mm" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "MMM d yyyy, h:mm aaa", + "24hour": "MMM d yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "MMM d", + "formattedTimestampFilename": { + "24hour": "MM-dd-yy-HH-mm-ss", + "12hour": "MM-dd-yy-h-mm-ss-a" + } }, "button": { "cancel": "Annulla", @@ -80,7 +101,7 @@ "done": "Fatto", "enabled": "Abilitato", "enable": "Abilita", - "saving": "Salvataggio...", + "saving": "Salvataggio…", "copy": "Copia", "history": "Storico", "exitFullscreen": "Esci da schermo intero", @@ -98,7 +119,7 @@ "close": "Chiudi", "back": "Indietro", "pictureInPicture": "Immagine nell'immagine", - "twoWayTalk": "Comunicazione a 2 vie", + "twoWayTalk": "Comunicazione bidirezionale", "cameraAudio": "Audio della telecamera" }, "unit": { @@ -149,7 +170,8 @@ "pl": "Polski (Polacco)", "de": "Deutsch (Tedesco)", "he": "עברית (Ebraico)", - "it": "Italiano (Italiano)" + "it": "Italiano (Italiano)", + "yue": "粵語 (Cantonese)" }, "darkMode": { "label": "Modalità scura", @@ -167,7 +189,8 @@ "green": "Verde", "default": "Predefinito", "red": "Rosso", - "nord": "Nord" + "nord": "Nord", + "highcontrast": "Contrasto elevato" }, "live": { "cameras": { @@ -215,8 +238,8 @@ "role": { "title": "Ruolo", "admin": "Amministratore", - "viewer": "Osservatore", - "desc": "Gli Amministratori hanno accesso completo a tutte le funzionalità dell'interfaccia di Frigate. Gli Osservatori sono limitati alla sola visualizzazione delle telecamere, rivedono gli oggetti e le registrazioni storiche nell'interfaccia utente." + "viewer": "Spettatore", + "desc": "Gli Amministratori hanno accesso completo a tutte le funzionalità dell'interfaccia di Frigate. Gli Spettatori sono limitati alla sola visualizzazione delle telecamere, rivedono gli oggetti e le registrazioni storiche nell'interfaccia utente." }, "accessDenied": { "desc": "Non hai i permessi per visualizzare questa pagina.", diff --git a/web/public/locales/it/components/camera.json b/web/public/locales/it/components/camera.json index 80b6a3fa1..f9a243cd2 100644 --- a/web/public/locales/it/components/camera.json +++ b/web/public/locales/it/components/camera.json @@ -12,7 +12,7 @@ "edit": "Modifica gruppo di telecamere", "name": { "label": "Nome", - "placeholder": "Inserisci un nome...", + "placeholder": "Inserisci un nome…", "errorMessage": { "exists": "Il nome scelto per il gruppo telecamere è già presente.", "invalid": "Nome del gruppo di telecamere non valido.", @@ -36,12 +36,12 @@ "label": "Trasmissione continua", "desc": { "warning": "La trasmissione continua può causare un elevato utilizzo di larghezza di banda e problemi di prestazioni. Da usare con cautela.", - "title": "L'immagine della telecamera sarà sempre trasmessa dal vivo quando è visibile sul cruscotto, anche se non viene rilevata alcuna attività." + "title": "L'immagine della telecamera sarà sempre trasmessa dal vivo quando è visibile sulla schermata, anche se non viene rilevata alcuna attività." } }, "noStreaming": { "label": "Nessuna trasmissione", - "desc": "Le immagini delle telecamere verranno aggiornate solo una volta al minuto e non verrà effettuato alcuna trasmissione dal vivo." + "desc": "Le immagini delle telecamere verranno aggiornate solo una volta al minuto e non verrà effettuata alcuna trasmissione dal vivo." } } }, @@ -56,7 +56,7 @@ } }, "audioIsUnavailable": "L'audio non è disponibile per questo flusso", - "desc": "Modifica le opzioni di trasmissione dal vivo per il cruscotto di questo gruppo di telecamere. TQueste impostazioni sono specifiche del dispositivo/browser." + "desc": "Modifica le opzioni di trasmissione dal vivo per la schermata di questo gruppo di telecamere. Queste impostazioni sono specifiche del dispositivo/browser." } }, "cameras": { diff --git a/web/public/locales/it/components/dialog.json b/web/public/locales/it/components/dialog.json index 2e95248c1..4a44a877f 100644 --- a/web/public/locales/it/components/dialog.json +++ b/web/public/locales/it/components/dialog.json @@ -29,6 +29,12 @@ }, "state": { "submitted": "Inviato" + }, + "question": { + "label": "Conferma questa etichetta per Frigate Plus", + "ask_a": "Questo oggetto è un {{label}}?", + "ask_an": "Questo oggetto è un {{label}}?", + "ask_full": "Questo oggetto è un {{untranslatedLabel}} ({{translatedLabel}})?" } } }, @@ -74,15 +80,15 @@ "streaming": { "label": "Trasmissione", "showStats": { - "label": "Mostra statistiche della trasmissione", + "label": "Mostra statistiche di trasmissione", "desc": "Abilita questa opzione per visualizzare le statistiche della trasmissione come sovrapposizione sul flusso della telecamera." }, - "debugView": "Vista di debug", + "debugView": "Vista correzioni", "restreaming": { "disabled": "La ritrasmissione non è abilitata per questa telecamera.", "desc": { "title": "Imposta go2rtc per opzioni aggiuntive di visualizzazione dal vivo e audio per questa telecamera.", - "readTheDocumentation": "Leggi la documentazione " + "readTheDocumentation": "Leggi la documentazione" } } }, diff --git a/web/public/locales/it/components/filter.json b/web/public/locales/it/components/filter.json index 5f1c73a96..a5503af46 100644 --- a/web/public/locales/it/components/filter.json +++ b/web/public/locales/it/components/filter.json @@ -95,8 +95,8 @@ "title": "Targhe riconosciute", "selectPlatesFromList": "Seleziona una o più targhe dall'elenco.", "loadFailed": "Impossibile caricare le targhe riconosciute.", - "loading": "Caricamento targhe riconosciute...", - "placeholder": "Digita per cercare le targhe...", + "loading": "Caricamento targhe riconosciute…", + "placeholder": "Digita per cercare le targhe…", "noLicensePlatesFound": "Nessuna targa trovata." }, "timeRange": "Intervallo di tempo", diff --git a/web/public/locales/it/components/icons.json b/web/public/locales/it/components/icons.json index 81fb9bb0a..18778862b 100644 --- a/web/public/locales/it/components/icons.json +++ b/web/public/locales/it/components/icons.json @@ -1,7 +1,7 @@ { "iconPicker": { "search": { - "placeholder": "Cerca un'icona..." + "placeholder": "Cerca un'icona…" }, "selectIcon": "Seleziona un'icona" } diff --git a/web/public/locales/it/components/player.json b/web/public/locales/it/components/player.json index d4702e9fd..2aee1a781 100644 --- a/web/public/locales/it/components/player.json +++ b/web/public/locales/it/components/player.json @@ -36,7 +36,7 @@ "droppedFrameRate": "Percentuali fotogrammi persi:" }, "streamOffline": { - "desc": "Nessun frame ricevuto sul flusso detect di {{cameraName}}, controlla i registri degli errori", + "desc": "Nessun fotogramma ricevuto sul flusso detect di {{cameraName}}, controlla i registri degli errori", "title": "Trasmissione disconnessa" }, "toast": { diff --git a/web/public/locales/it/views/events.json b/web/public/locales/it/views/events.json index 650311e22..9f41519c5 100644 --- a/web/public/locales/it/views/events.json +++ b/web/public/locales/it/views/events.json @@ -1,6 +1,6 @@ { "alerts": "Avvisi", - "detections": "Rilevazioni", + "detections": "Rilevamento", "motion": { "label": "Movimento", "only": "Solo movimento" @@ -31,5 +31,8 @@ "calendarFilter": { "last24Hours": "Ultime 24 ore" }, - "camera": "Telecamera" + "camera": "Telecamera", + "selected": "{{count}} selezionati", + "selected_one": "{{count}} selezionati", + "selected_other": "{{count}} selezionati" } diff --git a/web/public/locales/it/views/explore.json b/web/public/locales/it/views/explore.json index c6da4a063..f1a2c8d95 100644 --- a/web/public/locales/it/views/explore.json +++ b/web/public/locales/it/views/explore.json @@ -10,7 +10,7 @@ "thumbnailsEmbedded": "Miniature incorporate: ", "trackedObjectsProcessed": "Oggetti tracciati elaborati: " }, - "startingUp": "Avvio...", + "startingUp": "Avvio…", "estimatedTime": "Tempo rimanente stimato:", "finishingShortly": "Completamento a breve" }, @@ -126,7 +126,12 @@ "visible": "{{label}} rilevato", "entered_zone": "{{label}} è entrato in {{zones}}", "active": "{{label}} è diventato attivo", - "stationary": "{{label}} è diventato stazionario" + "stationary": "{{label}} è diventato stazionario", + "header": { + "ratio": "Rapporto", + "area": "Area", + "zones": "Zone" + } }, "title": "Ciclo di vita dell'oggetto", "createObjectMask": "Crea maschera oggetto", diff --git a/web/public/locales/it/views/faceLibrary.json b/web/public/locales/it/views/faceLibrary.json index d0172783c..51cf4508b 100644 --- a/web/public/locales/it/views/faceLibrary.json +++ b/web/public/locales/it/views/faceLibrary.json @@ -19,7 +19,9 @@ "addFace": "Aggiungi volto", "deleteFaceAttempts": "Elimina tentativi di riconoscimento facciale", "uploadImage": "Carica immagine", - "reprocessFace": "Rielabora il volto" + "reprocessFace": "Rielabora il volto", + "deleteFace": "Elimina volto", + "renameFace": "Rinomina volto" }, "trainFace": "Addestra il volto", "toast": { @@ -33,7 +35,8 @@ "deletedFace_other": "Eliminati con successo {{count}} volti.", "updatedFaceScore": "Punteggio del volto aggiornato con successo.", "uploadedImage": "Immagine caricata correttamente.", - "addFaceLibrary": "{{name}} è stato aggiunto con successo alla Libreria dei Volti!" + "addFaceLibrary": "{{name}} è stato aggiunto con successo alla Libreria dei Volti!", + "renamedFace": "Rinominato correttamente il volto in {{name}}" }, "error": { "addFaceLibraryFailed": "Impossibile impostare il nome del volto: {{errorMessage}}", @@ -41,11 +44,12 @@ "deleteFaceFailed": "Impossibile eliminare: {{errorMessage}}", "trainFailed": "Impossibile addestrare: {{errorMessage}}", "updateFaceScoreFailed": "Impossibile aggiornare il punteggio del volto: {{errorMessage}}", - "deleteNameFailed": "Impossibile eliminare il nome: {{errorMessage}}" + "deleteNameFailed": "Impossibile eliminare il nome: {{errorMessage}}", + "renameFaceFailed": "Impossibile rinominare il volto: {{errorMessage}}" } }, "imageEntry": { - "dropActive": "Rilascia l'immagine qui...", + "dropActive": "Rilascia l'immagine qui…", "dropInstructions": "Trascina e rilascia un'immagine qui oppure fai clic per selezionarla", "maxSize": "Dimensione massima: {{size}} MB", "validation": { @@ -74,5 +78,9 @@ "faceName": "Inserisci il nome del volto", "nextSteps": "Prossimi passi", "uploadFace": "Carica l'immagine del volto" + }, + "renameFace": { + "title": "Rinomina volto", + "desc": "Inserisci un nuovo nome per {{name}}" } } diff --git a/web/public/locales/it/views/live.json b/web/public/locales/it/views/live.json index 603b05273..b8a44ae27 100644 --- a/web/public/locales/it/views/live.json +++ b/web/public/locales/it/views/live.json @@ -1,21 +1,158 @@ { "documentTitle": "Dal vivo - Frigate", - "documentTitle.withCamera": "{{camera}} - Dal Vivo - Frigate", - "lowBandwidthMode": "Modalità banda-ridotta", + "documentTitle.withCamera": "{{camera}} - Dal vivo - Frigate", + "lowBandwidthMode": "Modalità a bassa larghezza di banda", "twoWayTalk": { - "enable": "Abilita Audio a 2 Vie" + "enable": "Abilita audio bidirezionale", + "disable": "Disabilita audio bidirezionale" }, "snapshots": { "enable": "Abilita istantanee", "disable": "Disabilita istantanee" }, "manualRecording": { - "recordDisabledTips": "Poiché la registrazione è disabilitata o limitata nella configurazione di questa telecamera, verrà salvata solo un'istantanea." + "recordDisabledTips": "Poiché la registrazione è disabilitata o limitata nella configurazione di questa telecamera, verrà salvata solo un'istantanea.", + "title": "Registrazione su richiesta", + "tips": "Avvia un evento manuale in base alle impostazioni di conservazione della registrazione di questa telecamera.", + "playInBackground": { + "label": "Riproduci in sottofondo", + "desc": "Abilita questa opzione per continuare la trasmissione quando il lettore è nascosto." + }, + "showStats": { + "label": "Mostra statistiche", + "desc": "Abilita questa opzione per visualizzare le statistiche della trasmissione come sovrapposizione sul flusso della telecamera." + }, + "debugView": "Vista correzioni", + "start": "Avvia la registrazione su richiesta", + "started": "Registrazione manuale su richiesta avviata.", + "failedToStart": "Impossibile avviare la registrazione manuale su richiesta.", + "end": "Termina la registrazione su richiesta", + "ended": "Registrazione manuale su richiesta terminata.", + "failedToEnd": "Impossibile terminare la registrazione manuale su richiesta." }, "cameraSettings": { - "snapshots": "Istantanee" + "snapshots": "Istantanee", + "autotracking": "Tracciamento automatico", + "title": "Impostazioni di {{camera}}", + "cameraEnabled": "Telecamera abilitata", + "objectDetection": "Rilevamento di oggetti", + "recording": "Registrazione", + "audioDetection": "Rilevamento audio" }, "history": { "label": "Mostra filmati storici" + }, + "notifications": "Notifiche", + "streamingSettings": "Impostazioni di trasmissione", + "audio": "Audio", + "cameraAudio": { + "enable": "Abilita audio della telecamera", + "disable": "Disabilita audio della telecamera" + }, + "ptz": { + "move": { + "clickMove": { + "enable": "Abilita clic per spostare", + "disable": "Disabilita il clic per spostare", + "label": "Fai clic nella cornice per centrare la telecamera" + }, + "left": { + "label": "Sposta la telecamera PTZ a sinistra" + }, + "up": { + "label": "Sposta la telecamera PTZ verso l'alto" + }, + "down": { + "label": "Sposta la telecamera PTZ verso il basso" + }, + "right": { + "label": "Sposta la telecamera PTZ a destra" + } + }, + "zoom": { + "in": { + "label": "Ingrandisci la telecamera PTZ" + }, + "out": { + "label": "Riduci la telecamera PTZ" + } + }, + "frame": { + "center": { + "label": "Fai clic nella cornice per centrare la telecamera PTZ" + } + }, + "presets": "Preimpostazioni della telecamera PTZ" + }, + "camera": { + "enable": "Abilita telecamera", + "disable": "Disabilita telecamera" + }, + "muteCameras": { + "enable": "Muta tutte le telecamere", + "disable": "Attiva audio di tutte le telecamere" + }, + "detect": { + "enable": "Abilita rilevamento", + "disable": "Disabilita rilevamento" + }, + "recording": { + "enable": "Abilita registrazione", + "disable": "Disabilita registrazione" + }, + "audioDetect": { + "enable": "Abilita rilevamento audio", + "disable": "Disabilita rilevamento audio" + }, + "autotracking": { + "enable": "Abilita il tracciamento automatico", + "disable": "Disabilita il tracciamento automatico" + }, + "streamStats": { + "enable": "Mostra statistiche di trasmissione", + "disable": "Nascondi statistiche di trasmissione" + }, + "suspend": { + "forTime": "Sospendi per: " + }, + "stream": { + "title": "Trasmissione", + "audio": { + "tips": { + "title": "L'audio deve essere trasmesso dalla tua telecamera e configurato in go2rtc per questa trasmissione.", + "documentation": "Leggi la documentazione " + }, + "unavailable": "L'audio non è disponibile per questo flusso", + "available": "L'audio è disponibile per questo flusso" + }, + "twoWayTalk": { + "tips": "Il dispositivo deve supportare la funzionalità e WebRTC deve essere configurato per la comunicazione bidirezionale.", + "tips.documentation": "Leggi la documentazione ", + "unavailable": "La comunicazione bidirezionale non è disponibile per questo flusso", + "available": "La comunicazione bidirezionale è disponibile per questo flusso" + }, + "playInBackground": { + "tips": "Abilita questa opzione per continuare la trasmissione quando il lettore è nascosto.", + "label": "Riproduci in sottofondo" + }, + "lowBandwidth": { + "tips": "La visualizzazione dal vivo è in modalità a bassa larghezza di banda a causa di errori di caricamento o di trasmissione.", + "resetStream": "Reimposta flusso" + } + }, + "effectiveRetainMode": { + "modes": { + "all": "Tutto", + "motion": "Movimento", + "active_objects": "Oggetti attivi" + }, + "notAllTips": "La configurazione di conservazione della registrazione di {{source}} è impostata su mode: {{effectiveRetainMode}}, quindi questa registrazione su richiesta conserverà solo i segmenti con {{effectiveRetainModeName}}." + }, + "editLayout": { + "label": "Modifica formato", + "group": { + "label": "Modifica gruppo telecamere" + }, + "exitEdit": "Esci dalla modifica" } } diff --git a/web/public/locales/it/views/search.json b/web/public/locales/it/views/search.json index f24c88f53..873ef007c 100644 --- a/web/public/locales/it/views/search.json +++ b/web/public/locales/it/views/search.json @@ -1,13 +1,72 @@ { "search": "Cerca", - "savedSearches": "Ricerche Salvate", + "savedSearches": "Ricerche salvate", "searchFor": "Cerca {{inputValue}}", "button": { - "clear": "Azzera Ricerca" + "clear": "Cancella ricerca", + "save": "Salva ricerca", + "delete": "Elimina la ricerca salvata", + "filterInformation": "Informazioni sul filtro", + "filterActive": "Filtri attivi" }, "filter": { "label": { - "has_snapshot": "Contiene istantanea" + "has_snapshot": "Contiene istantanea", + "cameras": "Telecamere", + "search_type": "Tipo di ricerca", + "has_clip": "Contiene video", + "before": "Prima", + "labels": "Etichette", + "min_score": "Punteggio minimo", + "zones": "Zone", + "max_score": "Punteggio massimo", + "min_speed": "Velocità minima", + "time_range": "Intervallo di tempo", + "after": "Dopo", + "max_speed": "Velocità massima", + "recognized_license_plate": "Targa riconosciuta", + "sub_labels": "Sottoetichette" + }, + "tips": { + "desc": { + "step3": "Puoi utilizzare più filtri aggiungendoli uno dopo l'altro, lasciando uno spazio in mezzo.", + "step5": "Il filtro intervallo di tempo utilizza il formato {{exampleTime}}.", + "exampleLabel": "Esempio:", + "step1": "Digita un nome chiave di filtro seguito da due punti (ad esempio, \"telecamere:\").", + "step2": "Seleziona un valore dai suggerimenti oppure digita il tuo valore.", + "step4": "I filtri data (prima: e dopo:) utilizzano il formato {{DateFormat}}.", + "step6": "Rimuovi i filtri cliccando sulla \"x\" accanto ad essi.", + "text": "I filtri ti aiutano a restringere i risultati della ricerca. Ecco come usarli nel campo di inserimento:" + }, + "title": "Come utilizzare i filtri di testo" + }, + "toast": { + "error": { + "minScoreMustBeLessOrEqualMaxScore": "Il 'punteggio minimo' deve essere minore o uguale del 'punteggio massimo'.", + "beforeDateBeLaterAfter": "La data 'prima' deve essere successiva alla data 'dopo'.", + "minSpeedMustBeLessOrEqualMaxSpeed": "La 'velocità minima' deve essere minore o uguale della 'velocità massima'.", + "afterDatebeEarlierBefore": "La data 'dopo' deve essere precedente alla data 'prima'.", + "maxScoreMustBeGreaterOrEqualMinScore": "Il 'punteggio massimo' deve essere maggiore o uguale del 'punteggio minimo'.", + "maxSpeedMustBeGreaterOrEqualMinSpeed": "La 'velocità massima' deve essere maggiore o uguale della 'velocità minima'." + } + }, + "searchType": { + "thumbnail": "Miniatura", + "description": "Descrizione" + }, + "header": { + "noFilters": "Filtri", + "activeFilters": "Filtri attivi", + "currentFilterType": "Valori del filtro" } - } + }, + "similaritySearch": { + "clear": "Cancella ricerca di somiglianza", + "title": "Ricerca di somiglianza", + "active": "Ricerca di somiglianza attiva" + }, + "placeholder": { + "search": "Ricerca…" + }, + "trackedObjectId": "ID oggetto tracciato" } diff --git a/web/public/locales/it/views/settings.json b/web/public/locales/it/views/settings.json index 1dfb0f0d1..0600bbf20 100644 --- a/web/public/locales/it/views/settings.json +++ b/web/public/locales/it/views/settings.json @@ -1,9 +1,15 @@ { "documentTitle": { - "authentication": "Impostazioni di Autenticazione - Frigate", + "authentication": "Impostazioni di autenticazione - Frigate", "default": "Impostazioni - Frigate", - "classification": "Impostazioni di Classificazione - Frigate", - "camera": "Impostazioni Telecamera - Frigate" + "classification": "Impostazioni di classificazione - Frigate", + "camera": "Impostazioni telecamera - Frigate", + "masksAndZones": "Editor di maschere e zone - Frigate", + "motionTuner": "Regolatore di movimento - Frigate", + "object": "Correzioni - Frigate", + "general": "Impostazioni generali - Frigate", + "frigatePlus": "Impostazioni Frigate+ - Frigate", + "notifications": "Impostazioni di notifiche - Frigate" }, "frigatePlus": { "snapshotConfig": { @@ -14,20 +20,580 @@ "cleanCopySnapshots": "clean_copy Istantanee" }, "desc": "Per inviare a Frigate+ è necessario che nella configurazione siano abilitate sia le istantanee che le istantanee clean_copy.", - "documentation": "Leggi la documentazione" - } + "documentation": "Leggi la documentazione", + "title": "Configurazione istantanee" + }, + "apiKey": { + "title": "Chiave API Frigate+", + "validated": "La chiave API Frigate+ è stata rilevata e convalidata", + "notValidated": "La chiave API Frigate+ non è stata rilevata o non è stata convalidata", + "desc": "La chiave API Frigate+ consente l'integrazione con il servizio Frigate+.", + "plusLink": "Scopri di più su Frigate+" + }, + "modelInfo": { + "trainDate": "Data addestramento", + "baseModel": "Modello base", + "cameras": "Telecamere", + "plusModelType": { + "userModel": "Messa a punto fine", + "baseModel": "Modello base" + }, + "availableModels": "Modelli disponibili", + "loadingAvailableModels": "Caricamento dei modelli disponibili…", + "supportedDetectors": "Rilevatori supportati", + "error": "Impossibile caricare le informazioni sul modello", + "modelType": "Tipo di modello", + "modelSelect": "Qui puoi selezionare i modelli disponibili su Frigate+. Nota: puoi selezionare solo i modelli compatibili con la configurazione attuale del tuo rilevatore.", + "title": "Informazioni sul modello", + "loading": "Caricamento informazioni sul modello…" + }, + "toast": { + "error": "Impossibile salvare le modifiche alla configurazione: {{errorMessage}}", + "success": "Le impostazioni di Frigate+ sono state salvate. Riavvia Frigate per applicare le modifiche." + }, + "title": "Impostazioni Frigate+", + "restart_required": "Riavvio richiesto (modello Frigate+ modificato)" }, "debug": { "timestamp": { "desc": "Sovrapponi l'orario all'immagine", "title": "Orario" + }, + "objectShapeFilterDrawing": { + "tips": "Abilita questa opzione per disegnare un rettangolo sull'immagine della telecamera per mostrarne l'area e il rapporto. Questi valori possono quindi essere utilizzati per impostare i parametri del filtro forma oggetto nella configurazione.", + "area": "Area", + "title": "Disegno del filtro della forma dell'oggetto", + "desc": "Disegna un rettangolo sull'immagine per visualizzare i dettagli dell'area e del rapporto", + "document": "Leggi la documentazione ", + "score": "Punteggio", + "ratio": "Rapporto" + }, + "detectorDesc": "Frigate utilizza i tuoi rilevatori ({{detectors}}) per rilevare oggetti nel flusso video della tua telecamera.", + "boundingBoxes": { + "colors": { + "info": "
  • All'avvio, a ciascuna etichetta dell'oggetto verranno assegnati colori diversi
  • Una linea sottile blu scuro indica che l'oggetto non è stato rilevato in questo momento
  • Una linea sottile grigia indica che l'oggetto è stato rilevato come stazionario
  • Una linea spessa indica che l'oggetto è oggetto di tracciamento automatico (se abilitato)
  • ", + "label": "Colori del riquadro di delimitazione dell'oggetto" + }, + "desc": "Mostra i riquadri di delimitazione attorno agli oggetti tracciati", + "title": "Riquadri di delimitazione" + }, + "regions": { + "tips": "

    Riquadri di regione


    I riquadri di colore verde brillante verranno sovrapposte alle aree di interesse nel fotogramma che viene inviato al rilevatore di oggetti.

    ", + "title": "Regioni", + "desc": "Mostra un riquadro della regione di interesse inviata al rilevatore di oggetti" + }, + "noObjects": "Nessun oggetto", + "title": "Correzioni", + "desc": "La vista di correzione mostra una vista in tempo reale degli oggetti tracciati e delle relative statistiche. L'elenco degli oggetti mostra un riepilogo ritardato degli oggetti rilevati.", + "debugging": "Correzioni", + "objectList": "Elenco degli oggetti", + "mask": { + "desc": "Mostra i poligoni della maschera di movimento", + "title": "Maschere di movimento" + }, + "motion": { + "title": "Riquadri di movimento", + "desc": "Mostra i riquadri attorno alle aree in cui viene rilevato il movimento", + "tips": "

    Riquadri di movimento


    I riquadri rossi verranno sovrapposti alle aree dell'inquadratura in cui viene attualmente rilevato un movimento

    " + }, + "zones": { + "title": "Zone", + "desc": "Mostra un contorno di tutte le zone definite" } }, "masksAndZones": { "motionMasks": { "context": { - "title": "Le maschere di movimento vengono utilizzate per impedire che tipi di movimento indesiderati attivino il rilevamento (ad esempio: rami di alberi, orari di telecamere). Le maschere di movimento dovrebbero essere utilizzate con molta parsimonia: un uso eccessivo renderebbe più difficile il tracciamento degli oggetti." + "title": "Le maschere di movimento vengono utilizzate per impedire che tipi di movimento indesiderati attivino il rilevamento (ad esempio: rami di alberi, orari di telecamere). Le maschere di movimento dovrebbero essere utilizzate con molta parsimonia: un uso eccessivo renderebbe più difficile il tracciamento degli oggetti.", + "documentation": "Leggi la documentazione" + }, + "desc": { + "title": "Le maschere di movimento vengono utilizzate per impedire che movimenti indesiderati attivino il rilevamento. Un mascheramento eccessivo renderà più difficile il tracciamento degli oggetti.", + "documentation": "Documentazione" + }, + "label": "Maschera di movimento", + "edit": "Modifica maschera di movimento", + "clickDrawPolygon": "Fai clic per disegnare un poligono sull'immagine.", + "polygonAreaTooLarge": { + "title": "La maschera di movimento copre il {{polygonArea}}% dell'inquadratura. Si sconsiglia di utilizzare maschere di movimento di grandi dimensioni.", + "documentation": "Leggi la documentazione", + "tips": "Le maschere di movimento non impediscono il rilevamento degli oggetti. È consigliabile utilizzare una zona specifica." + }, + "point_one": "{{count}} punto", + "point_many": "{{count}} punti", + "point_other": "{{count}} punti", + "documentTitle": "Modifica maschera movimento - Frigate", + "add": "Nuova maschera di movimento", + "toast": { + "success": { + "title": "{{polygonName}} è stato salvato. Riavvia Frigate per applicare le modifiche.", + "noName": "La maschera di movimento è stata salvata. Riavvia Frigate per applicare le modifiche." + } + } + }, + "form": { + "zoneName": { + "error": { + "hasIllegalCharacter": "Il nome della zona contiene caratteri non validi.", + "mustNotBeSameWithCamera": "Il nome della zona non deve essere uguale al nome della telecamera.", + "mustBeAtLeastTwoCharacters": "Il nome della zona deve essere composto da almeno 2 caratteri.", + "alreadyExists": "Per questa telecamera esiste già una zona con questo nome.", + "mustNotContainPeriod": "Il nome della zona non deve contenere punti." + } + }, + "distance": { + "error": { + "text": "La distanza deve essere maggiore o uguale a 0.1.", + "mustBeFilled": "Per utilizzare la stima della velocità è necessario compilare tutti i campi relativi alla distanza." + } + }, + "polygonDrawing": { + "delete": { + "title": "Conferma eliminazione", + "desc": "Sei sicuro di voler eliminare {{type}} {{name}}?", + "success": "{{name}} è stato eliminato." + }, + "removeLastPoint": "Rimuovi l'ultimo punto", + "reset": { + "label": "Cancella tutti i punti" + }, + "snapPoints": { + "true": "Aggancia punti", + "false": "Non agganciare punti" + }, + "error": { + "mustBeFinished": "Prima di salvare, è necessario terminare il disegno del poligono." + } + }, + "inertia": { + "error": { + "mustBeAboveZero": "L'inerzia deve essere superiore a 0." + } + }, + "loiteringTime": { + "error": { + "mustBeGreaterOrEqualZero": "Il tempo di permanenza deve essere maggiore o uguale a 0." + } + } + }, + "filter": { + "all": "Tutte le maschere e zone" + }, + "toast": { + "success": { + "copyCoordinates": "Coordinate per {{polyName}} copiate negli appunti." + }, + "error": { + "copyCoordinatesFailed": "Impossibile copiare le coordinate negli appunti." + } + }, + "zones": { + "speedEstimation": { + "desc": "Abilita la stima della velocità per gli oggetti in questa zona. La zona deve avere esattamente 4 punti.", + "title": "Stima della velocità" + }, + "add": "Aggiungi zona", + "speedThreshold": { + "desc": "Specifica una velocità minima affinché gli oggetti vengano presi in considerazione in questa zona.", + "toast": { + "error": { + "pointLengthError": "La stima della velocità è stata disattivata per questa zona. Le zone con stima della velocità devono avere esattamente 4 punti.", + "loiteringTimeError": "Le zone con tempi di permanenza superiori a 0 non devono essere utilizzate per la stima della velocità." + } + }, + "title": "Soglia di velocità ({{unit}})" + }, + "desc": { + "title": "Le zone consentono di definire un'area specifica dell'inquadratura, in modo da poter determinare se un oggetto si trova o meno all'interno di un'area particolare.", + "documentation": "Documentazione" + }, + "edit": "Modifica zona", + "name": { + "inputPlaceHolder": "Inserisci un nome…", + "title": "Nome", + "tips": "Il nome deve essere composto da almeno 2 caratteri e non deve essere il nome di una telecamera o di un'altra zona." + }, + "clickDrawPolygon": "Fai clic per disegnare un poligono sull'immagine.", + "point_one": "{{count}} punto", + "point_many": "{{count}} punti", + "point_other": "{{count}} punti", + "label": "Zone", + "documentTitle": "Modifica zona - Frigate", + "inertia": { + "title": "Inerzia", + "desc": "Specifica quanti fotogrammi deve avere un oggetto in una zona prima di essere considerato nella zona. Predefinito: 3" + }, + "loiteringTime": { + "title": "Tempo di permanenza", + "desc": "Imposta un intervallo di tempo minimo in secondi per cui l'oggetto deve trovarsi nella zona affinché venga attivato. Predefinito: 0" + }, + "objects": { + "title": "Oggetti", + "desc": "Elenco degli oggetti che si applicano a questa zona." + }, + "allObjects": "Tutti gli oggetti", + "toast": { + "success": "La zona ({{zoneName}}) è stata salvata. Riavvia Frigate per applicare le modifiche." + } + }, + "objectMasks": { + "desc": { + "title": "Le maschere di filtro degli oggetti vengono utilizzate per filtrare i falsi positivi per un determinato tipo di oggetto in base alla posizione.", + "documentation": "Documentazione" + }, + "context": "Le maschere di filtro degli oggetti vengono utilizzate per filtrare i falsi positivi per un determinato tipo di oggetto in base alla posizione.", + "point_one": "{{count}} punto", + "point_many": "{{count}} punti", + "point_other": "{{count}} punti", + "add": "Aggiungi maschera oggetti", + "clickDrawPolygon": "Fai clic per disegnare un poligono sull'immagine.", + "edit": "Modifica maschera oggetti", + "objects": { + "desc": "Il tipo di oggetto che si applica a questa maschera di oggetti.", + "title": "Oggetti", + "allObjectTypes": "Tutti i tipi di oggetti" + }, + "toast": { + "success": { + "noName": "La maschera oggetto è stata salvata. Riavvia Frigate per applicare le modifiche.", + "title": "{{polygonName}} è stato salvato. Riavvia Frigate per applicare le modifiche." + } + }, + "label": "Maschere di oggetti", + "documentTitle": "Modifica maschera oggetti - Frigate" + }, + "restart_required": "Riavvio richiesto (maschere/zone modificate)" + }, + "cameraSetting": { + "camera": "Telecamera", + "noCamera": "Nessuna telecamera" + }, + "camera": { + "reviewClassification": { + "limitDetections": "Limita i rilevamenti a zone specifiche", + "objectDetectionsTips": "Tutti gli oggetti {{detectionsLabels}} non categorizzati su {{cameraName}} verranno mostrati come Rilevamenti, indipendentemente dalla zona in cui si trovano.", + "zoneObjectDetectionsTips": { + "text": "Tutti gli oggetti {{detectionsLabels}} non categorizzati in {{zone}} su {{cameraName}} verranno mostrati come Rilevamenti.", + "notSelectDetections": "Tutti gli oggetti {{detectionsLabels}} rilevati in {{zone}} su {{cameraName}} non classificati come Avvisi verranno mostrati come Rilevamenti, indipendentemente dalla zona in cui si trovano.", + "regardlessOfZoneObjectDetectionsTips": "Tutti gli oggetti {{detectionsLabels}} non categorizzati su {{cameraName}} verranno mostrati come Rilevamenti, indipendentemente dalla zona in cui si trovano." + }, + "title": "Classificazione della revisione", + "desc": "Frigate categorizza gli elementi di revisione come Avvisi e Rilevamenti. Per impostazione predefinita, tutti gli oggetti persona e auto sono considerati Avvisi. Puoi perfezionare la categorizzazione degli elementi di revisione configurando le zone desiderate.", + "objectAlertsTips": "Tutti gli oggetti {{alertsLabels}} su {{cameraName}} verranno mostrati come Avvisi.", + "toast": { + "success": "La configurazione della classificazione di revisione è stata salvata. Riavvia Frigate per applicare le modifiche." + }, + "readTheDocumentation": "Leggi la documentazione", + "noDefinedZones": "Per questa telecamera non sono definite zone.", + "zoneObjectAlertsTips": "Tutti gli oggetti {{alertsLabels}} rilevati in {{zone}} su {{cameraName}} verranno visualizzati come Avvisi.", + "selectAlertsZones": "Seleziona le zone per gli Avvisi", + "selectDetectionsZones": "Seleziona le zone per i Rilevamenti" + }, + "streams": { + "desc": "La disattivazione completa di una telecamera interrompe l'elaborazione dei flussi da parte di Frigate. Rilevamento, registrazione e correzioni non saranno disponibili.
    Nota: questa operazione non disabilita le ritrasmissioni di go2rtc.", + "title": "Flussi" + }, + "title": "Impostazioni telecamera", + "review": { + "title": "Rivedi", + "desc": "Abilita/disabilita avvisi e rilevamenti per questa telecamera. Se disabilitati, non verranno generati nuovi elementi di revisione.", + "alerts": "Avvisi ", + "detections": "Rilevamenti " + } + }, + "menu": { + "motionTuner": "Regolatore di movimento", + "notifications": "Notifiche", + "ui": "Interfaccia utente", + "classification": "Classificazione", + "cameras": "Impostazioni telecamera", + "masksAndZones": "Maschere / Zone", + "debug": "Correzioni", + "users": "Utenti", + "frigateplus": "Frigate+" + }, + "users": { + "dialog": { + "changeRole": { + "roleInfo": { + "viewerDesc": "Limitato solo alle schermate dal vivo, alle revisioni, alle esplorazioni e alle esportazioni.", + "intro": "Seleziona il ruolo appropriato per questo utente:", + "admin": "Amministratore", + "adminDesc": "Accesso completo a tutte le funzionalità.", + "viewer": "Spettatore" + }, + "title": "Cambia ruolo utente", + "desc": "Aggiorna i permessi per {{username}}" + }, + "deleteUser": { + "warn": "Sei sicuro di voler eliminare {{username}}?", + "title": "Elimina utente", + "desc": "Questa azione non può essere annullata. L'account utente verrà eliminato definitivamente e tutti i dati associati verranno rimossi." + }, + "form": { + "user": { + "placeholder": "Inserisci il nome utente", + "title": "Nome utente", + "desc": "Sono consentiti solo lettere, numeri, punti e caratteri di sottolineatura." + }, + "password": { + "confirm": { + "title": "Conferma password", + "placeholder": "Conferma password" + }, + "strength": { + "title": "Forza della password: ", + "weak": "Debole", + "medium": "Media", + "strong": "Forte", + "veryStrong": "Molto forte" + }, + "title": "Password", + "placeholder": "Inserisci la password", + "match": "Le password corrispondono", + "notMatch": "Le password non corrispondono" + }, + "newPassword": { + "title": "Nuova password", + "placeholder": "Inserisci la nuova password", + "confirm": { + "placeholder": "Reinserisci la nuova password" + } + }, + "usernameIsRequired": "Il nome utente è obbligatorio" + }, + "createUser": { + "desc": "Aggiungi un nuovo account utente e specifica un ruolo per l'accesso alle aree dell'interfaccia utente di Frigate.", + "title": "Crea nuovo utente", + "usernameOnlyInclude": "Il nome utente può contenere solo lettere, numeri, . o _" + }, + "passwordSetting": { + "updatePassword": "Aggiorna la password per {{username}}", + "setPassword": "Imposta password", + "desc": "Crea una password complessa per proteggere questo account." + } + }, + "table": { + "password": "Password", + "username": "Nome utente", + "actions": "Azioni", + "role": "Ruolo", + "noUsers": "Nessun utente trovato.", + "changeRole": "Cambia ruolo utente", + "deleteUser": "Elimina utente" + }, + "toast": { + "error": { + "roleUpdateFailed": "Impossibile aggiornare il ruolo: {{errorMessage}}", + "setPasswordFailed": "Impossibile salvare la password: {{errorMessage}}", + "createUserFailed": "Impossibile creare l'utente: {{errorMessage}}", + "deleteUserFailed": "Impossibile eliminare l'utente: {{errorMessage}}" + }, + "success": { + "createUser": "Utente {{user}} creato con successo", + "updatePassword": "Password aggiornata con successo.", + "deleteUser": "Utente {{user}} eliminato con successo", + "roleUpdated": "Ruolo aggiornato per {{user}}" + } + }, + "title": "Utenti", + "management": { + "title": "Gestione utenti", + "desc": "Gestisci gli account utente di questa istanza Frigate." + }, + "addUser": "Aggiungi utente", + "updatePassword": "Aggiorna password" + }, + "general": { + "liveDashboard": { + "automaticLiveView": { + "desc": "Passa automaticamente alla visualizzazione dal vivodi una telecamera quando viene rilevata attività. Disattivando questa opzione, le immagini statiche della telecamera nella schermata dal vivo verranno aggiornate solo una volta al minuto.", + "label": "Visualizzazione automatica dal vivo" + }, + "playAlertVideos": { + "label": "Riproduci video di avvisi", + "desc": "Per impostazione predefinita, gli avvisi recenti nella schermata dal vivo vengono riprodotti come brevi video in ciclo. Disattiva questa opzione per visualizzare solo un'immagine statica degli avvisi recenti su questo dispositivo/browser." + }, + "title": "Schermata dal vivo" + }, + "title": "Impostazioni generali", + "storedLayouts": { + "title": "Formati memorizzati", + "desc": "La disposizione delle telecamere in un gruppo può essere trascinata/ridimensionata. Le posizioni vengono salvate nella memoria locale del browser.", + "clearAll": "Cancella tutti i formati" + }, + "cameraGroupStreaming": { + "title": "Impostazioni di trasmissione del gruppo di telecamere", + "desc": "Le impostazioni di trasmissione per ciascun gruppo di telecamere vengono salvate nella memoria locale del browser.", + "clearAll": "Cancella tutte le impostazioni di trasmissione" + }, + "recordingsViewer": { + "title": "Visualizzatore di registrazioni", + "defaultPlaybackRate": { + "label": "Velocità di riproduzione predefinita", + "desc": "Velocità di riproduzione predefinita per la riproduzione delle registrazioni." + } + }, + "calendar": { + "title": "Calendario", + "firstWeekday": { + "label": "Primo giorno della settimana", + "desc": "Giorno in cui iniziano le settimane del calendario di revisione.", + "sunday": "Domenica", + "monday": "Lunedi" + } + }, + "toast": { + "success": { + "clearStoredLayout": "Formato memorizzato cancellato per {{cameraName}}", + "clearStreamingSettings": "Cancellate le impostazioni di trasmissione per tutti i gruppi di telecamere." + }, + "error": { + "clearStoredLayoutFailed": "Impossibile cancellare il formato memorizzato: {{errorMessage}}", + "clearStreamingSettingsFailed": "Impossibile cancellare le impostazioni di trasmissione: {{errorMessage}}" } } + }, + "classification": { + "licensePlateRecognition": { + "desc": "Frigate può riconoscere le targhe dei veicoli e aggiungere automaticamente i caratteri rilevati al campo recognized_license_plate o un nome noto come sub_label agli oggetti di tipo \"automobile\". Un caso d'uso comune potrebbe essere la lettura delle targhe delle auto che entrano in un vialetto o che transitano lungo una strada.", + "title": "Riconoscimento della targa", + "readTheDocumentation": "Leggi la documentazione" + }, + "title": "Impostazioni di classificazione", + "semanticSearch": { + "title": "Ricerca semantica", + "desc": "La ricerca semantica in Frigate consente di trovare gli oggetti tracciati all'interno degli elementi della recensione utilizzando l'immagine stessa, una descrizione testuale definita dall'utente o una generata automaticamente.", + "readTheDocumentation": "Leggi la documentazione", + "modelSize": { + "large": { + "title": "grande", + "desc": "L'utilizzo di large sfrutta il modello Jina completo e, se applicabile, verrà eseguito automaticamente sulla GPU." + }, + "small": { + "desc": "L'utilizzo di small sfrutta una versione quantizzata del modello che utilizza meno RAM ed è più veloce sulla CPU con una differenza davvero trascurabile nella qualità di incorporamento.", + "title": "piccolo" + }, + "label": "Dimensioni del modello", + "desc": "Dimensioni del modello utilizzato per gli incorporamenti della ricerca semantica." + }, + "reindexNow": { + "label": "Reindicizza ora", + "desc": "La reindicizzazione rigenererà gli incorporamenti per tutti gli oggetti tracciati. Questo processo viene eseguito in sottofondo e potrebbe impegnare al massimo la CPU e richiedere un tempo considerevole, a seconda del numero di oggetti tracciati.", + "confirmTitle": "Conferma reindicizzazione", + "confirmDesc": "Vuoi davvero reindicizzare tutti gli incorporamenti di oggetti tracciati? Questo processo verrà eseguito in sottofondo, ma potrebbe impegnare al massimo la CPU e richiedere molto tempo. Puoi monitorare l'avanzamento nella pagina Esplora.", + "confirmButton": "Reindicizza", + "success": "Reindicizzazione avviata con successo.", + "alreadyInProgress": "La reindicizzazione è già in corso.", + "error": "Impossibile avviare la reindicizzazione: {{errorMessage}}" + } + }, + "faceRecognition": { + "title": "Riconoscimento facciale", + "desc": "Il riconoscimento facciale consente di assegnare un nome alle persone e, quando il volto viene riconosciuto, Frigate assegnerà il nome della persona come sottoetichetta. Queste informazioni sono incluse nell'interfaccia utente, nei filtri e nelle notifiche.", + "modelSize": { + "desc": "Dimensioni del modello utilizzato per il riconoscimento facciale.", + "small": { + "title": "piccolo", + "desc": "L'utilizzo di small sfrutta un modello di incorporamento di volti FaceNet che funziona in modo efficiente sulla maggior parte delle CPU." + }, + "large": { + "title": "grande", + "desc": "L'utilizzo di large sfrutta un modello di incorporamento di volti ArcFace e verrà eseguito automaticamente sulla GPU, se applicabile." + }, + "label": "Dimensioni del modello" + }, + "readTheDocumentation": "Leggi la documentazione" + }, + "toast": { + "error": "Impossibile salvare le modifiche alla configurazione: {{errorMessage}}", + "success": "Le impostazioni di classificazione sono state salvate. Riavvia Frigate per applicare le modifiche." + }, + "birdClassification": { + "desc": "La classificazione degli uccelli identifica gli uccelli noti utilizzando un modello Tensorflow quantizzato. Quando un uccello noto viene riconosciuto, il suo nome comune viene aggiunto come sub_label. Queste informazioni sono incluse nell'interfaccia utente, nei filtri e nelle notifiche.", + "title": "Classificazione degli uccelli" + }, + "restart_required": "Riavvio richiesto (impostazioni di classificazione modificate)" + }, + "dialog": { + "unsavedChanges": { + "title": "Ci sono modifiche non salvate.", + "desc": "Vuoi salvare le modifiche prima di continuare?" + } + }, + "motionDetectionTuner": { + "improveContrast": { + "title": "Migliora il contrasto", + "desc": "Migliora il contrasto nelle scene più scure. Predefinito: ATTIVO" + }, + "desc": { + "title": "Frigate utilizza il rilevamento del movimento come primo controllo per verificare se nell'inquadratura si verifica qualcosa che valga la pena verificare tramite il rilevamento degli oggetti.", + "documentation": "Leggi la Guida alla Regolazione del Movimento" + }, + "title": "Regolatore di rilevamento del movimento", + "contourArea": { + "title": "Area di contorno", + "desc": "Il valore dell'area di contorno viene utilizzato per decidere quali gruppi di pixel modificati possono essere considerati movimento. Predefinito: 10" + }, + "Threshold": { + "title": "Soglia", + "desc": "Il valore di soglia determina l'entità della variazione di luminanza di un pixel necessaria per essere considerato movimento. Predefinito: 30" + }, + "toast": { + "success": "Le impostazioni di movimento sono state salvate." + } + }, + "notification": { + "email": { + "placeholder": "es. esempio@email.com", + "desc": "È richiesto un indirizzo email valido che verrà utilizzato per avvisarti in caso di problemi con il servizio push.", + "title": "E-mail" + }, + "cameras": { + "title": "Telecamere", + "noCameras": "Nessuna telecamera disponibile", + "desc": "Seleziona per quali telecamere abilitare le notifiche." + }, + "unregisterDevice": "Annulla la registrazione di questo dispositivo", + "sendTestNotification": "Invia una notifica di prova", + "active": "Notifiche attive", + "suspended": "Notifiche sospese {{time}}", + "suspendTime": { + "5minutes": "Sospendi per 5 minuti", + "30minutes": "Sospendi per 30 minuti", + "10minutes": "Sospendi per 10 minuti", + "1hour": "Sospendi per 1 ora", + "12hours": "Sospendi per 12 ore", + "24hours": "Sospendi per 24 ore", + "untilRestart": "Sospendi fino al riavvio", + "suspend": "Sospendi" + }, + "globalSettings": { + "desc": "Sospendi temporaneamente le notifiche per telecamere specifiche su tutti i dispositivi registrati.", + "title": "Impostazioni globali" + }, + "registerDevice": "Registra questo dispositivo", + "notificationUnavailable": { + "desc": "Le notifiche push web richiedono un contesto sicuro (https://...). Questa è una limitazione del browser. Accedi a Frigate in modo sicuro per utilizzare le notifiche.", + "documentation": "Leggi la documentazione", + "title": "Notifiche non disponibili" + }, + "deviceSpecific": "Impostazioni specifiche del dispositivo", + "toast": { + "success": { + "registered": "Registrazione per le notifiche completata con successo. È necessario riavviare Frigate prima di poter inviare qualsiasi notifica (inclusa una notifica di prova).", + "settingSaved": "Le impostazioni di notifica sono state salvate." + }, + "error": { + "registerFailed": "Impossibile salvare la registrazione della notifica." + } + }, + "title": "Notifiche", + "notificationSettings": { + "title": "Impostazioni notifiche", + "desc": "Frigate può inviare notifiche push in modo nativo al tuo dispositivo quando è in esecuzione nel browser o installato come PWA.", + "documentation": "Leggi la documentazione" + }, + "cancelSuspension": "Annulla sospensione" } } diff --git a/web/public/locales/it/views/system.json b/web/public/locales/it/views/system.json index 0f6692861..319165eba 100644 --- a/web/public/locales/it/views/system.json +++ b/web/public/locales/it/views/system.json @@ -1,16 +1,179 @@ { "documentTitle": { "cameras": "Statistiche telecamere - Frigate", - "enrichments": "Statistiche di arricchimento - Frigate", - "storage": "Statistiche di archiviazione - Frigate", + "enrichments": "Statistiche arricchimento - Frigate", + "storage": "Statistiche archiviazione - Frigate", "general": "Statistiche generali - Frigate", "logs": { - "frigate": "Registri Frigate - Frigate" + "frigate": "Registri Frigate - Frigate", + "go2rtc": "Registri Go2RTC - Frigate", + "nginx": "Registri Nginx - Frigate" } }, "logs": { "type": { - "timestamp": "Orario" + "timestamp": "Orario", + "label": "Tipo", + "tag": "Etichetta", + "message": "Messaggio" + }, + "tips": "I registri vengono trasmessi dal server", + "toast": { + "error": { + "whileStreamingLogs": "Errore durante la trasmissione dei registri: {{errorMessage}}", + "fetchingLogsFailed": "Errore durante il recupero dei registri: {{errorMessage}}" + } + }, + "download": { + "label": "Scarica registri" + }, + "copy": { + "label": "Copia negli appunti", + "success": "Registri copiati negli appunti", + "error": "Impossibile copiare i registri negli appunti" } - } + }, + "general": { + "hardwareInfo": { + "gpuInfo": { + "nvidiaSMIOutput": { + "cudaComputerCapability": "Capacità di elaborazione CUDA: {{cuda_compute}}", + "title": "Risultati Nvidia SMI", + "name": "Nome: {{name}}", + "driver": "Driver: {{driver}}", + "vbios": "Informazioni VBios: {{vbios}}" + }, + "vainfoOutput": { + "title": "Risultati Vainfo", + "returnCode": "Codice di ritorno: {{code}}", + "processOutput": "Risultati del processo:", + "processError": "Errore del processo:" + }, + "closeInfo": { + "label": "Chiudi informazioni GPU" + }, + "copyInfo": { + "label": "Copia informazioni GPU" + }, + "toast": { + "success": "Informazioni GPU copiate negli appunti" + } + }, + "title": "Informazioni hardware", + "gpuDecoder": "Decodificatore GPU", + "gpuEncoder": "Codificatore GPU", + "gpuUsage": "Utilizzo GPU", + "gpuMemory": "Memoria GPU", + "npuUsage": "Utilizzo NPU", + "npuMemory": "Memoria NPU" + }, + "detector": { + "inferenceSpeed": "Velocità inferenza rilevatore", + "title": "Rilevatori", + "cpuUsage": "Utilizzo CPU rilevatore", + "memoryUsage": "Utilizzo memoria rilevatore", + "temperature": "Temperatura del rilevatore" + }, + "title": "Generale", + "otherProcesses": { + "title": "Altri processi", + "processCpuUsage": "Utilizzo CPU processo", + "processMemoryUsage": "Utilizzo memoria processo" + } + }, + "enrichments": { + "embeddings": { + "face_embedding_speed": "Velocità incorporazione volti", + "plate_recognition_speed": "Velocità riconoscimento targhe", + "image_embedding_speed": "Velocità incorporazione immagini", + "text_embedding_speed": "Velocità incorporazione testo", + "face_recognition_speed": "Velocità di riconoscimento facciale", + "face_recognition": "Riconoscimento facciale", + "plate_recognition": "Riconoscimento delle targhe", + "yolov9_plate_detection_speed": "Velocità di rilevamento della targa con YOLOv9", + "yolov9_plate_detection": "Rilevamento della targa con YOLOv9", + "image_embedding": "Incorporamento di immagini", + "text_embedding": "Incorporamento di testo" + }, + "title": "Arricchimenti", + "infPerSecond": "Inferenze al secondo" + }, + "cameras": { + "info": { + "fetching": "Recupero dati della telecamera", + "streamDataFromFFPROBE": "I dati del flusso vengono ottenuti con ffprobe.", + "cameraProbeInfo": "Informazioni analisi telecamera {{camera}}", + "stream": "Flusso {{idx}}", + "video": "Video:", + "codec": "Codec:", + "resolution": "Risoluzione:", + "fps": "FPS:", + "unknown": "Sconosciuto", + "audio": "Audio:", + "error": "Errore: {{error}}", + "tips": { + "title": "Informazioni analisi telecamera" + } + }, + "title": "Telecamere", + "overview": "Sommario", + "framesAndDetections": "Fotogrammi / Rilevamenti", + "label": { + "camera": "telecamera", + "detect": "rileva", + "skipped": "saltato", + "ffmpeg": "FFmpeg", + "capture": "cattura", + "overallFramesPerSecond": "fotogrammi totali al secondo", + "overallDetectionsPerSecond": "rilevamenti totali al secondo", + "overallSkippedDetectionsPerSecond": "rilevamenti totali saltati al secondo", + "cameraCapture": "{{camName}} cattura", + "cameraDetect": "{{camName}} rileva", + "cameraFramesPerSecond": "{{camName}} fotogrammi al secondo", + "cameraDetectionsPerSecond": "{{camName}} rilevamenti al secondo", + "cameraSkippedDetectionsPerSecond": "{{camName}} rilevamenti saltati al secondo", + "cameraFfmpeg": "{{camName}} FFmpeg" + }, + "toast": { + "success": { + "copyToClipboard": "Dati di analisi copiati negli appunti." + }, + "error": { + "unableToProbeCamera": "Impossibile analizzare la telecamera: {{errorMessage}}" + } + } + }, + "stats": { + "detectHighCpuUsage": "{{camera}} ha un utilizzo elevato della CPU con il rilevamento ({{detectAvg}}%)", + "ffmpegHighCpuUsage": "{{camera}} ha un elevato utilizzo della CPU con FFmpeg ({{ffmpegAvg}}%)", + "healthy": "Il sistema è integro", + "reindexingEmbeddings": "Reindicizzazione degli incorporamenti (completata al {{processed}}%)", + "cameraIsOffline": "{{camera}} è disconnessa", + "detectIsSlow": "{{detect}} è lento ({{speed}} ms)", + "detectIsVerySlow": "{{detect}} è molto lento ({{speed}} ms)" + }, + "title": "Sistema", + "metrics": "Metriche di sistema", + "storage": { + "title": "Archiviazione", + "overview": "Sommario", + "recordings": { + "title": "Registrazioni", + "tips": "Questo valore rappresenta lo spazio di archiviazione totale utilizzato dalle registrazioni nel database di Frigate. Frigate non tiene traccia dell'utilizzo dello spazio di archiviazione per tutti i file presenti sul disco.", + "earliestRecording": "Prima registrazione disponibile:" + }, + "cameraStorage": { + "title": "Archiviazione della telecamera", + "camera": "Telecamera", + "unusedStorageInformation": "Informazioni spazio di archiviazione non utilizzato", + "storageUsed": "Archiviazione", + "percentageOfTotalUsed": "Percentuale del totale", + "bandwidth": "Larghezza di banda", + "unused": { + "title": "Liberi", + "tips": "Questo valore potrebbe non rappresentare accuratamente lo spazio libero disponibile per Frigate se nel disco sono archiviati altri file oltre alle registrazioni di Frigate. Frigate non tiene traccia dell'utilizzo dello spazio di archiviazione al di fuori delle sue registrazioni." + } + } + }, + "lastRefreshed": "Ultimo aggiornamento: " } diff --git a/web/public/locales/nb-NO/common.json b/web/public/locales/nb-NO/common.json index 5a85e0b03..c6f40e7d6 100644 --- a/web/public/locales/nb-NO/common.json +++ b/web/public/locales/nb-NO/common.json @@ -45,18 +45,39 @@ "hour_other": "{{time}} timer", "m": "{{time}}m", "formattedTimestamp": { - "12hour": "%-d. %b, %I:%M:%S %p", - "24hour": "%-d. %b, %H:%M:%S" + "12hour": "d. MMM, h:mm:ss aaa", + "24hour": "d. MMM, HH:mm:ss" }, "formattedTimestamp2": { - "12hour": "%m/%d %I:%M:%S%P", - "24hour": "%d. %b %H:%M:%S" + "12hour": "dd/MM h:mm:ssa", + "24hour": "d. MMM HH:mm:ss" }, "formattedTimestampWithYear": { "12hour": "%-d. %b %Y, %I:%M %p", "24hour": "%-d. %b %Y, %H:%M" }, - "formattedTimestampOnlyMonthAndDay": "%-d. %b" + "formattedTimestampOnlyMonthAndDay": "%-d. %b", + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "d. MMM, h:mm aaa", + "24hour": "d. MMM, HH:mm" + }, + "formattedTimestampFilename": { + "12hour": "dd-MM-yy-h-mm-ss-a", + "24hour": "dd-MM-yy-HH-mm-ss" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "d. MMM yyyy, h:mm aaa", + "24hour": "d. MMM yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "d. MMM" }, "button": { "copy": "Kopier", @@ -69,7 +90,7 @@ "disabled": "Deaktivert", "disable": "Deaktiver", "save": "Lagre", - "saving": "Lagrer...", + "saving": "Lagrer…", "cancel": "Avbryt", "close": "Lukk", "back": "Tilbake", @@ -137,7 +158,7 @@ "withSystem": { "label": "Bruk systemets språkinnstillinger" }, - "fr": "Fransk (Français)", + "fr": "Français (Fransk)", "es": "Español (Spansk)", "hi": "हिन्दी (Hindi)", "ar": "العربية (Arabisk)", @@ -162,7 +183,8 @@ "da": "Dansk (Dansk)", "sk": "Slovenčina (Slovensk)", "pl": "Polski (Polsk)", - "uk": "Українська (Ukrainiansk)" + "uk": "Українська (Ukrainsk)", + "yue": "粵語 (Kantonesisk)" }, "appearance": "Utseende", "darkMode": { @@ -181,7 +203,8 @@ "nord": "Nord", "red": "Rød", "contrast": "Høy kontrast", - "default": "Standard" + "default": "Standard", + "highcontrast": "Høy kontrast" } }, "pagination": { @@ -219,7 +242,7 @@ "title": "Rolle", "admin": "Administrator", "viewer": "Visningsbruker", - "desc": "Administratorer har full tilgang til alle funksjoner i Frigate brukergrensesnitt. Visningsbrukere er begrenset til å se kameraer, inspisere elementer og historisk opptak i brukergrensesnittet." + "desc": "Administratorer har full tilgang til alle funksjoner i Frigate brukergrensesnittet. Visningsbrukere er begrenset til å se kameraer, inspisere elementer og se historiske opptak." }, "accessDenied": { "documentTitle": "Ingen tilgang – Frigate", diff --git a/web/public/locales/nb-NO/components/camera.json b/web/public/locales/nb-NO/components/camera.json index 75cc26e49..21596c716 100644 --- a/web/public/locales/nb-NO/components/camera.json +++ b/web/public/locales/nb-NO/components/camera.json @@ -2,7 +2,7 @@ "group": { "label": "Kameragrupper", "name": { - "placeholder": "Skriv inn et navn...", + "placeholder": "Skriv inn et navn…", "errorMessage": { "mustLeastCharacters": "Navnet på kameragruppen må være minst 2 tegn.", "exists": "Navnet på kameragruppen finnes allerede.", diff --git a/web/public/locales/nb-NO/components/dialog.json b/web/public/locales/nb-NO/components/dialog.json index ad8865774..76641f33b 100644 --- a/web/public/locales/nb-NO/components/dialog.json +++ b/web/public/locales/nb-NO/components/dialog.json @@ -27,6 +27,12 @@ "label": "Ikke bekreft denne merkelappen for Frigate Plus", "false_one": "Dette er ikke en {{label}}", "false_other": "Dette er ikke en {{label}}" + }, + "question": { + "label": "Bekreft denne merkelapp for Frigate Plus", + "ask_an": "Er dette objekt en {{label}}?", + "ask_a": "Er dette objektet en {{label}}?", + "ask_full": "Er dette objekt en {{untranslatedLabel}} ({{translatedLabel}})?" } } }, @@ -73,7 +79,7 @@ "restreaming": { "disabled": "Restrømming er ikke aktivert for dette kameraet.", "desc": { - "readTheDocumentation": "Les dokumentasjonen ", + "readTheDocumentation": "Les dokumentasjonen", "title": "Konfigurer go2rtc for flere direktestrømmingsalternativer og lyd for dette kameraet." } }, diff --git a/web/public/locales/nb-NO/components/filter.json b/web/public/locales/nb-NO/components/filter.json index aceb5aaf9..1e13b5c5f 100644 --- a/web/public/locales/nb-NO/components/filter.json +++ b/web/public/locales/nb-NO/components/filter.json @@ -3,7 +3,7 @@ "labels": { "label": "Merkelapper", "all": { - "title": "Alle merkelapper", + "title": "Alle masker / soner", "short": "Merkelapper" }, "count": "{{count}} merkelapper", @@ -83,8 +83,8 @@ "selectPlatesFromList": "Velg ett eller flere kjennemerker fra listen.", "title": "Gjenkjente kjennemerker", "loadFailed": "Kunne ikke laste inn gjenkjente kjennemerker.", - "loading": "Laster inn gjenkjente kjennemerker...", - "placeholder": "Skriv for å søke etter kjennemerker..." + "loading": "Laster inn gjenkjente kjennemerker…", + "placeholder": "Skriv for å søke etter kjennemerker…" }, "dates": { "all": { diff --git a/web/public/locales/nb-NO/components/icons.json b/web/public/locales/nb-NO/components/icons.json index 20cdcf75e..937a8d052 100644 --- a/web/public/locales/nb-NO/components/icons.json +++ b/web/public/locales/nb-NO/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "Velg et ikon", "search": { - "placeholder": "Søk etter et ikon..." + "placeholder": "Søk etter et ikon…" } } } diff --git a/web/public/locales/nb-NO/views/events.json b/web/public/locales/nb-NO/views/events.json index 2bf8bc97c..8bf579502 100644 --- a/web/public/locales/nb-NO/views/events.json +++ b/web/public/locales/nb-NO/views/events.json @@ -31,5 +31,7 @@ "last24Hours": "Siste 24 timer" }, "markAsReviewed": "Merk som inspisert", - "markTheseItemsAsReviewed": "Merk disse elementene som inspiserte" + "markTheseItemsAsReviewed": "Merk disse elementene som inspiserte", + "selected_one": "{{count}} valgt", + "selected_other": "{{count}} valgt" } diff --git a/web/public/locales/nb-NO/views/explore.json b/web/public/locales/nb-NO/views/explore.json index 883107278..c8eafda04 100644 --- a/web/public/locales/nb-NO/views/explore.json +++ b/web/public/locales/nb-NO/views/explore.json @@ -4,7 +4,7 @@ "exploreIsUnavailable": { "title": "Utforsk er utilgjengelig", "embeddingsReindexing": { - "startingUp": "Starter opp...", + "startingUp": "Starter opp…", "estimatedTime": "Estimert gjenværende tid:", "context": "Utforsk kan brukes etter at reindekseringen av vektorrepresentasjoner for sporede objekter er fullført.", "finishingShortly": "Avsluttes snart", @@ -31,7 +31,7 @@ }, "objectLifecycle": { "createObjectMask": "Lag objektmaske", - "adjustAnnotationSettings": "Juster annotasjonsinnstillinger", + "adjustAnnotationSettings": "Juster annoteringsinnstillinger", "scrollViewTips": "Rull for å se de viktigste øyeblikkene i dette objektets livssyklus.", "autoTrackingTips": "Posisjoner for omsluttende boks vil være unøyaktige for kameraer med automatisk sporing.", "lifecycleItemDesc": { @@ -45,19 +45,24 @@ "external": "{{label}} oppdaget", "entered_zone": "{{label}} gikk inn i {{zones}}", "active": "{{label}} ble aktiv", - "stationary": "{{label}} ble stasjonær" + "stationary": "{{label}} ble stasjonær", + "header": { + "zones": "Soner", + "ratio": "Forhold", + "area": "Areal" + } }, "annotationSettings": { - "title": "Annotasjonsinnstillinger", + "title": "Annoteringsinnstillinger", "showAllZones": { "title": "Vis alle soner", "desc": "Vis alltid soner på bilder der objekter har gått inn i en sone." }, "offset": { "documentation": "Les dokumentasjonen ", - "label": "Annotasjonsforskyvning", + "label": "Annoteringsforskyvning", "desc": "Disse dataene kommer fra kameraets deteksjonsstrøm, men legges over bilder fra opptaksstrømmen. Det er usannsynlig at de to strømmene er perfekt synkronisert. Som et resultat vil ikke den omsluttende boksen og opptakene stemme perfekt overens. Imidlertid kan feltet annotation_offset brukes til å justere dette.", - "millisecondsToOffset": "Millisekunder for å forskyve annotasjonsdata. Standard: 0", + "millisecondsToOffset": "Millisekunder å forskyve annoteringsdata. Standard: 0", "tips": "TIPS: Tenk deg et hendelsesklipp med en person som går fra venstre til høyre. Hvis den omsluttende boksen i hendelsestidslinjen konsekvent er til venstre for personen, bør verdien reduseres. Tilsvarende, hvis en person går fra venstre til høyre og den omsluttende boksen konsekvent er foran personen, bør verdien økes." } }, diff --git a/web/public/locales/nb-NO/views/faceLibrary.json b/web/public/locales/nb-NO/views/faceLibrary.json index ec2f33919..5e7aa3c5f 100644 --- a/web/public/locales/nb-NO/views/faceLibrary.json +++ b/web/public/locales/nb-NO/views/faceLibrary.json @@ -35,7 +35,8 @@ "trainFailed": "Kunne ikke trene: {{errorMessage}}", "updateFaceScoreFailed": "Kunne ikke oppdatere ansiktsskåring: {{errorMessage}}", "addFaceLibraryFailed": "Kunne ikke angi ansiktsnavn: {{errorMessage}}", - "deleteNameFailed": "Kunne ikke slette navn: {{errorMessage}}" + "deleteNameFailed": "Kunne ikke slette navn: {{errorMessage}}", + "renameFaceFailed": "Kunne ikke gi nytt navn til ansikt: {{errorMessage}}" }, "success": { "deletedFace_one": "Slettet {{count}} ansikt.", @@ -45,11 +46,12 @@ "trainedFace": "Ansiktet ble trent.", "updatedFaceScore": "Ansiktsskåring ble oppdatert.", "uploadedImage": "Bildet ble lastet opp.", - "addFaceLibrary": "{{name}} ble lagt til i ansiktsbiblioteket!" + "addFaceLibrary": "{{name}} ble lagt til i ansiktsbiblioteket!", + "renamedFace": "Nytt navn ble gitt til ansikt {{name}}" } }, "imageEntry": { - "dropActive": "Slipp bildet her...", + "dropActive": "Slipp bildet her…", "dropInstructions": "Dra og slipp et bilde her, eller klikk for å velge", "maxSize": "Maks størrelse: {{size}}MB", "validation": { @@ -61,7 +63,9 @@ "addFace": "Legg til ansikt", "uploadImage": "Last opp bilde", "deleteFaceAttempts": "Slett ansiktsforsøk", - "reprocessFace": "Prosesser ansiktet på nytt" + "reprocessFace": "Prosesser ansiktet på nytt", + "deleteFace": "Slett ansikt", + "renameFace": "Gi nytt navn til ansikt" }, "uploadFaceImage": { "desc": "Last opp et bilde for å skanne etter ansikter og inkludere det for {{pageToggle}}", @@ -72,5 +76,9 @@ "faceName": "Skriv inn ansiktsnavn", "uploadFace": "Last opp ansiktsbilde", "nextSteps": "Neste trinn" + }, + "renameFace": { + "desc": "Skriv inn et nytt navn for {{name}}", + "title": "Gi nytt navn til ansikt" } } diff --git a/web/public/locales/nb-NO/views/search.json b/web/public/locales/nb-NO/views/search.json index 62e9f67bf..baf25a900 100644 --- a/web/public/locales/nb-NO/views/search.json +++ b/web/public/locales/nb-NO/views/search.json @@ -46,7 +46,14 @@ "desc": { "text": "Filtre hjelper deg med å begrense søkeresultatene dine. Slik bruker du dem i inndatafeltet:", "example": "Eksempel: cameras:inngangsdør label:person before:01012024 time_range:3:00PM-4:00PM ", - "step": "" + "step": "", + "step2": "Velg en verdi fra forslagene eller skriv inn din egen.", + "step4": "Dato-filtre (before: and after:) bruker {{DateFormat}} format.", + "step5": "Tidsintervall-filter bruker {{exampleTime}} format.", + "step6": "Fjern filtre ved å klikke på 'x'en ved siden av dem.", + "exampleLabel": "Eksempel:", + "step1": "Skriv inn et filter-nøkkelnavn etterfulgt av et kolon (f.eks \"cameras:\").", + "step3": "Bruk flere filtre ved å legge dem til en etter en, med mellomrom." } }, "header": { @@ -56,7 +63,7 @@ } }, "placeholder": { - "search": "Søk..." + "search": "Søk…" }, "trackedObjectId": "Sporings-ID for objekt", "similaritySearch": { diff --git a/web/public/locales/nb-NO/views/settings.json b/web/public/locales/nb-NO/views/settings.json index ac0a2d108..a68f765f8 100644 --- a/web/public/locales/nb-NO/views/settings.json +++ b/web/public/locales/nb-NO/views/settings.json @@ -4,18 +4,19 @@ "authentication": "Autentiseringsinnstillinger - Frigate", "camera": "Kamerainnstillinger - Frigate", "masksAndZones": "Maske- og soneeditor - Frigate", - "motionTuner": "Bevegelsestilpasning - Frigate", - "object": "Objektinnstillinger - Frigate", + "motionTuner": "Bevegelsesjustering - Frigate", + "object": "Test og feilsøk - Frigate", "general": "Generelle innstillinger - Frigate", "classification": "Klassifiseringsinnstillinger - Frigate", - "frigatePlus": "Frigate+ innstillinger - Frigate" + "frigatePlus": "Frigate+ innstillinger - Frigate", + "notifications": "Meldingsvarsler Innstillinger - Frigate" }, "menu": { "classification": "Klassifisering", "cameras": "Kamerainnstillinger", "masksAndZones": "Masker / Soner", - "motionTuner": "Bevegelsestilpasning", - "debug": "Feilsøking", + "motionTuner": "Finjustering av bevegelse", + "debug": "Test og feilsøk", "users": "Brukere", "frigateplus": "Frigate+", "ui": "Brukergrensesnitt", @@ -92,7 +93,7 @@ "confirmButton": "Reindekser", "success": "Reindeksering startet.", "alreadyInProgress": "Reindeksering pågår allerede.", - "desc": "Reindeksering vil regenerere vektorrepresentasjoner for alle sporede objekter. Prosessen kjøres i bakgrunnen og kan belaste CPU-en maksimalt og ta tid avhengig av antall sporede objekter.", + "desc": "Reindeksering vil regenerere vektorrepresentasjoner for alle sporede objekter. Prosessen kjøres i bakgrunnen, kan belaste CPU-en maksimalt og ta mye tid avhengig av antall sporede objekter.", "confirmDesc": "Er du sikker på at du vil reindeksere vektorrepresentasjoner for alle sporede objekter? Dette vil kjøres i bakgrunnen, men kan bruke all CPU og ta tid. Du kan følge fremdriften på Utforsk-siden." }, "readTheDocumentation": "Les dokumentasjonen", @@ -139,7 +140,8 @@ "birdClassification": { "title": "Artsbestemmelse for fugler", "desc": "Artsbestemmelse identifiserer kjente fugler ved hjelp av en kvantisert TensorFlow-modell. Når en kjent fugl gjenkjennes, legges det vanlige navnet til som en under-merkelapp. Denne informasjonen vises i brukergrensesnittet, i filtre, samt i meldingsvarsler." - } + }, + "restart_required": "Omstart påkrevd (Klassifiseringsinnstillinger endret)" }, "camera": { "streams": { @@ -249,7 +251,7 @@ "add": "Legg til sone", "name": { "title": "Navn", - "inputPlaceHolder": "Skriv inn et navn...", + "inputPlaceHolder": "Skriv inn et navn…", "tips": "Navnet må være minst 2 tegn langt og må ikke være det samme som et kamera- eller sone-navn." }, "loiteringTime": { @@ -280,7 +282,7 @@ } }, "motionMasks": { - "label": "Bevegelsesmaske", + "label": "Bevegelsesmasker", "desc": { "documentation": "Dokumentasjon", "title": "Bevegelsesmasker brukes til å hindre uønsket type bevegelse fra å utløse deteksjon. For mye maskering kan gjøre det vanskeligere å spore objekter." @@ -331,10 +333,11 @@ "noName": "Objektmasken er lagret. Start Frigate på nytt for å bruke endringene." } } - } + }, + "restart_required": "Omstart påkrevd (masker/soner endret)" }, "motionDetectionTuner": { - "title": "Tilpasning for bevegelsesdeteksjon", + "title": "Finjustering av bevegelsesdeteksjon", "Threshold": { "title": "Terskel", "desc": "Terskelverdien bestemmer hvor mye endring i en piksels lysstyrke som kreves for å bli betraktet som bevegelse. Standard: 30" @@ -349,14 +352,14 @@ }, "desc": { "title": "Frigate bruker bevegelsesdeteksjon som en første sjekk for å se om det skjer noe i bildet som er verdt å sjekke med objektdeteksjon.", - "documentation": "Les guiden for bevegelsestilpasning" + "documentation": "Les guiden for bevegelsesjustering" }, "toast": { "success": "Bevegelsesinnstillingene er lagret." } }, "debug": { - "title": "Feilsøking", + "title": "Test og feilsøking", "objectList": "Objektliste", "noObjects": "Ingen objekter", "boundingBoxes": { @@ -377,11 +380,11 @@ }, "motion": { "desc": "Vis bokser rundt områder der bevegelse er detektert", - "tips": "

    Bevegelsesbokser


    Røde bokser vil vises på områder i bildet hvor bevegelse for øyeblikket blir detektert

    ", + "tips": "

    Bevegelsesbokser


    Røde bokser vil vises på områder i bildet hvor bevegelse for øyeblikket blir detektert

    ", "title": "Bevegelsesbokser" }, "regions": { - "tips": "

    Regionbokser


    Lysegrønne bokser vil vises på områder av interesse i bildet som blir sendt til objektdetektoren.

    ", + "tips": "

    Regionbokser


    Lysegrønne bokser vil vises på områder av interesse i bildet som blir sendt til objektdetektoren.

    ", "title": "Regioner", "desc": "Vis en boks for interesseområdet sendt til objektdetektoren" }, @@ -395,8 +398,8 @@ "tips": "Aktiver dette alternativet for å tegne et rektangel på kamerabildet for å vise området og forholdet. Disse verdiene kan deretter brukes til å sette filterparametere for objektform i konfigurasjonen." }, "detectorDesc": "Frigate bruker dine detektorer ({{detectors}}) for å oppdage objekter i kameraets videostrøm.", - "desc": "Feilsøkingsvisningen viser sporede objekter i sanntid og deres statistikk. Objektlisten viser en tidsforsinket oppsummering av detekterte objekter.", - "debugging": "Feilsøking", + "desc": "Test og feilsøk viser sporede objekter i sanntid og deres statistikk. Objektlisten viser en tidsforsinket oppsummering av detekterte objekter.", + "debugging": "Test og feilsøk", "mask": { "title": "Bevegelsesmasker", "desc": "Vis polygoner for bevegelsesmasker" @@ -458,9 +461,15 @@ "usernameIsRequired": "Brukernavn er påkrevd" }, "changeRole": { - "desc": "Oppdater tillatelser for {{username}}", + "desc": "Oppdater tillatelser for {{username}}", "title": "Endre brukerrolle", - "roleInfo": "

    Velg riktig rolle for denne brukeren:

    " + "roleInfo": { + "intro": "Velg en passende rolle for denne bruker:", + "admin": "Administrator", + "adminDesc": "Full tilgang til alle funksjoner.", + "viewer": "Visningsbruker", + "viewerDesc": "Begrenset til kun Direkte-dashbord, Inspiser, Utforsk og Eksporter." + } }, "createUser": { "title": "Opprett ny bruker", @@ -470,7 +479,7 @@ "deleteUser": { "title": "Slett bruker", "desc": "Denne handlingen kan ikke angres. Dette vil permanent slette brukerkontoen og fjerne alle tilknyttede data.", - "warn": "Er du sikker på at du vil slette {{username}}?" + "warn": "Er du sikker på at du vil slette {{username}}?" }, "passwordSetting": { "updatePassword": "Oppdater passord for {{username}}", @@ -497,7 +506,7 @@ "notificationUnavailable": { "documentation": "Les dokumentasjonen", "title": "Meldingsvarsler utilgjengelig", - "desc": "Nettleser push-varsler krever et sikkert miljø (https://...). Dette er en nettleserbegrensning. Få tilgang til Frigate på en sikker måte for å bruke meldingsvarsler." + "desc": "Nettleser push-varsler krever et sikkert miljø (https://…). Dette er en nettleserbegrensning. Få tilgang til Frigate på en sikker måte for å bruke meldingsvarsler." }, "email": { "title": "E-post", @@ -519,7 +528,8 @@ "1hour": "Suspender i 1 time", "12hours": "Suspender i 12 timer", "24hours": "Suspender i 24 timer", - "untilRestart": "Suspender til omstart" + "untilRestart": "Suspender til omstart", + "suspend": "Suspender" }, "suspended": "Meldingsvarsler suspendert {{time}}", "toast": { @@ -551,16 +561,20 @@ "modelInfo": { "trainDate": "Treningsdato", "baseModel": "Basismodell", - "loading": "Laster modellinformasjon...", + "loading": "Laster modellinformasjon…", "error": "Kunne ikke laste modellinformasjon", - "loadingAvailableModels": "Laster tilgjengelige modeller...", + "loadingAvailableModels": "Laster tilgjengelige modeller…", "title": "Modellinformasjon", "modelType": "Modelltype", "supportedDetectors": "Støttede detektorer", "dimensions": "Dimensjoner", "cameras": "Kameraer", "availableModels": "Tilgjengelige modeller", - "modelSelect": "Dine tilgjengelige modeller på Frigate+ kan velges her. Merk at bare modeller som er kompatible med din nåværende detektorkonfigurasjon kan velges." + "modelSelect": "Dine tilgjengelige modeller på Frigate+ kan velges her. Merk at bare modeller som er kompatible med din nåværende detektorkonfigurasjon kan velges.", + "plusModelType": { + "userModel": "Finjustert", + "baseModel": "Basismodell" + } }, "title": "Frigate+ Innstillinger", "snapshotConfig": { @@ -577,6 +591,7 @@ "toast": { "success": "Frigate+ innstillingene er lagret. Start Frigate på nytt for å bruke endringene.", "error": "Kunne ikke lagre konfigurasjonsendringer: {{errorMessage}}" - } + }, + "restart_required": "Omstart påkrevd (Frigate+ modell endret)" } } diff --git a/web/public/locales/nb-NO/views/system.json b/web/public/locales/nb-NO/views/system.json index 3e84d0a57..31d8d0183 100644 --- a/web/public/locales/nb-NO/views/system.json +++ b/web/public/locales/nb-NO/views/system.json @@ -39,11 +39,12 @@ "inferenceSpeed": "Detektor inferenshastighet", "title": "Detektorer", "cpuUsage": "Detektor CPU-belastning", - "memoryUsage": "Detektor minnebruk" + "memoryUsage": "Detektor minnebruk", + "temperature": "Detektor temperatur" }, "hardwareInfo": { "gpuMemory": "GPU-minne", - "gpuEncoder": "GPU-koder", + "gpuEncoder": "GPU-enkoder", "gpuDecoder": "GPU-dekoder", "gpuInfo": { "nvidiaSMIOutput": { @@ -70,7 +71,9 @@ } }, "title": "Maskinvareinformasjon", - "gpuUsage": "GPU-belastning" + "gpuUsage": "GPU-belastning", + "npuMemory": "NPU minne", + "npuUsage": "NPU belastning" }, "otherProcesses": { "title": "Andre prosesser", @@ -81,7 +84,7 @@ "storage": { "overview": "Oversikt", "recordings": { - "earliestRecording": "Tidligste tilgjengelige opptak:", + "earliestRecording": "Tidligste opptak tilgjengelig:", "title": "Opptak", "tips": "Denne verdien representerer total lagringsplass brukt av opptakene i Frigates database. Frigate sporer ikke lagringsbruk for alle filer på disken din." }, @@ -91,7 +94,7 @@ "title": "Kameralagring", "camera": "Kamera", "unusedStorageInformation": "Ubrukt lagringsinformasjon", - "percentageOfTotalUsed": "Prosentandel av totalt brukt", + "percentageOfTotalUsed": "Prosentandel av tilgjengelig", "unused": { "title": "Ubrukt", "tips": "Denne verdien representerer kanskje ikke nøyaktig den ledige plassen Frigate har tilgang til, dersom det finnes andre filer lagret på disken. Frigate sporer kun lagring brukt av egne opptak." @@ -122,9 +125,18 @@ "label": { "camera": "kamera", "detect": "detekter", - "skipped": "hoppet over", - "ffmpeg": "ffmpeg", - "capture": "fangst" + "skipped": "forkastet", + "ffmpeg": "FFmpeg", + "capture": "fangst", + "cameraDetectionsPerSecond": "{{camName}} deteksjoner per sekund", + "cameraSkippedDetectionsPerSecond": "{{camName}} forkastede deteksjoner per sekund", + "cameraFramesPerSecond": "{{camName}} bilder per sekund", + "cameraCapture": "{{camName}} fangst", + "cameraDetect": "{{camName}} detekt", + "cameraFfmpeg": "{{camName}} FFmpeg", + "overallDetectionsPerSecond": "totale deteksjoner per sekund", + "overallSkippedDetectionsPerSecond": "totalt forkastede deteksjoner per sekund", + "overallFramesPerSecond": "totalt bilder per sekund" }, "toast": { "success": { @@ -137,10 +149,17 @@ }, "enrichments": { "embeddings": { - "plate_recognition_speed": "Indekseringshastighet for kjennemerke", - "face_embedding_speed": "Indekseringshastighet for ansikt", - "text_embedding_speed": "Indekseringshastighet for tekst", - "image_embedding_speed": "Indekseringshastighet for bilde" + "plate_recognition_speed": "Hastighet for kjennemerkegjenkjenning", + "face_embedding_speed": "Hastighet ansikt-vektorrepresentasjon", + "text_embedding_speed": "Hastighet tekst-vektorrepresentasjoner", + "image_embedding_speed": "Hastighet bilde-vektorrepresentasjoner", + "face_recognition_speed": "Hastighet for ansiktsgjenkjenning", + "image_embedding": "Bilde-vektorrepresentasjoner", + "face_recognition": "Ansiktsgjenkjenning", + "text_embedding": "Tekst-vektorrepresentasjoner", + "plate_recognition": "Kjennemerke gjenkjenning", + "yolov9_plate_detection_speed": "Hastighet for YOLOv9 kjennemerkedeteksjon", + "yolov9_plate_detection": "YOLOv9 kjennemerkedeteksjon" }, "title": "Utvidelser", "infPerSecond": "Inferenser per sekund" @@ -149,9 +168,12 @@ "metrics": "Systemmålinger", "lastRefreshed": "Sist oppdatert: ", "stats": { - "ffmpegHighCpuUsage": "{{camera}} har høy CPU-belastning for FFMPEG ({{ffmpegAvg}}%)", + "ffmpegHighCpuUsage": "{{camera}} har høy CPU-belastning for FFmpeg ({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} har høy CPU-belastning for detektering ({{detectAvg}}%)", "healthy": "Systemet fungerer som det skal", - "reindexingEmbeddings": "Reindeksering av vektorrepresentasjoner ({{processed}}% fullført)" + "reindexingEmbeddings": "Reindeksering av vektorrepresentasjoner ({{processed}}% fullført)", + "cameraIsOffline": "{{camera}} er frakoblet", + "detectIsSlow": "{{detect}} er treg ({{speed}} ms)", + "detectIsVerySlow": "{{detect}} er veldig treg ({{speed}} ms)" } } diff --git a/web/public/locales/nl/common.json b/web/public/locales/nl/common.json index 7e725a8ca..6de5b1227 100644 --- a/web/public/locales/nl/common.json +++ b/web/public/locales/nl/common.json @@ -29,13 +29,13 @@ "month_one": "{{time}} maand", "month_other": "{{time}} maanden", "formattedTimestamp2": { - "12hour": "%d-%m %H:%M:%S", - "24hour": "%d %b %H:%M:%S" + "12hour": "dd-MM HH:mm:ss", + "24hour": "d MMM HH:mm:ss" }, "s": "{{time}}s", "formattedTimestamp": { - "12hour": "%d %b %H:%M:%S", - "24hour": "%-d %b, %H:%M:%S" + "12hour": "d MMMM, HH:mm:ss", + "24hour": "d MMM, HH:mm:ss" }, "formattedTimestampOnlyMonthAndDay": "%-d %b", "d": "{{time}}dag", @@ -44,7 +44,7 @@ "h": "{{time}}u", "hour_one": "{{time}} uur", "hour_other": "{{time}} uren", - "m": "{{time}} min", + "m": "{{time}}min", "formattedTimestampWithYear": { "12hour": "%-d %b %Y, %H:%M", "24hour": "%-d %b %Y, %H:%M" @@ -56,7 +56,28 @@ "minute_one": "{{time}} minuut", "minute_other": "{{time}} minuten", "second_one": "{{time}} seconde", - "second_other": "{{time}} seconden" + "second_other": "{{time}} seconden", + "formattedTimestampHourMinute": { + "24hour": "HH:mm", + "12hour": "HH:mm" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "d MMMM yyyy, HH:mm", + "24hour": "d MMMM yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "d MMM", + "formattedTimestampFilename": { + "12hour": "dd-MM-yy-HH-mm-ss", + "24hour": "dd-MM-yy-HH-mm-ss" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "HH:mm:ss", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "d MMMM, HH:mm", + "24hour": "d MMMM, HH:mm" + } }, "button": { "enabled": "Ingeschakeld", @@ -69,17 +90,17 @@ "close": "Sluiten", "copy": "Kopieer", "done": "Klaar", - "saving": "Opslaan...", + "saving": "Opslaan…", "disable": "Uitschakelen", "save": "Opslaan", "history": "Geschiedenis", "fullscreen": "Volledig scherm", - "pictureInPicture": "Foto in foto", + "pictureInPicture": "Pop-up venster", "twoWayTalk": "Tweerichtingsgesprek", "cameraAudio": "Camera geluid", "on": "aan", "copyCoordinates": "Coördinaten kopiëren", - "delete": "Verwijderen", + "delete": "Verwijder", "yes": "Ja", "no": "Nee", "suspended": "Opgeschort", @@ -143,7 +164,8 @@ "es": "Español (Spaans)", "vi": "Tiếng Việt (Vietnamees)", "hi": "हिन्दी (Hindi)", - "ja": "日本語 (Japans)" + "ja": "日本語 (Japans)", + "yue": "粵語 (Kantonees)" }, "darkMode": { "label": "Donkere modus", @@ -161,7 +183,8 @@ "green": "Groen", "nord": "Nord", "red": "Rood", - "default": "Standaard" + "default": "Standaard", + "highcontrast": "Hoog contrast" }, "withSystem": "Systeem", "help": "Help", @@ -179,7 +202,7 @@ "title": "Documentatie", "label": "Frigate documentatie" }, - "review": "Beoordeel", + "review": "Beoordelen", "explore": "Verkennen", "export": "Exporteren", "uiPlayground": "Testgebied voor gebruikersinterface", diff --git a/web/public/locales/nl/components/camera.json b/web/public/locales/nl/components/camera.json index 1cd238420..a7f5e2f5a 100644 --- a/web/public/locales/nl/components/camera.json +++ b/web/public/locales/nl/components/camera.json @@ -12,7 +12,7 @@ }, "name": { "label": "Naam", - "placeholder": "Voer een naam in...", + "placeholder": "Voer een naam in…", "errorMessage": { "exists": "De cameragroepnaam bestaat al.", "invalid": "Ongeldige cameragroepnaam.", @@ -45,7 +45,7 @@ "label": "Continue streaming", "desc": { "title": "Het camerabeeld is altijd een live stream wanneer het zichtbaar is op het dashboard, zelfs als er geen activiteit wordt gedetecteerd.", - "warning": "Continue streaming kan leiden tot hoog bandbreedtegebruik en prestatieproblemen. Gebruik met voorzichtigheid." + "warning": "Let op: continu streamen kan leiden tot hoog bandbreedtegebruik en prestatieproblemen." } }, "noStreaming": { diff --git a/web/public/locales/nl/components/dialog.json b/web/public/locales/nl/components/dialog.json index 9a55c97aa..da8f36797 100644 --- a/web/public/locales/nl/components/dialog.json +++ b/web/public/locales/nl/components/dialog.json @@ -27,6 +27,12 @@ }, "state": { "submitted": "Ingediend" + }, + "question": { + "ask_an": "Is dit object een {{label}}?", + "label": "Bevestig dit label voor Frigate Plus", + "ask_a": "Is dit object een {{label}}?", + "ask_full": "Is dit object een {{untranslatedLabel}} ({{translatedLabel}})?" } } }, @@ -73,7 +79,7 @@ "restreaming": { "desc": { "title": "Stel go2rtc in voor extra liveweergaveopties en audio voor deze camera.", - "readTheDocumentation": "Lees de documentatie " + "readTheDocumentation": "Lees de documentatie" }, "disabled": "Herstreamen is niet ingeschakeld voor deze camera." }, diff --git a/web/public/locales/nl/components/filter.json b/web/public/locales/nl/components/filter.json index 46dd81c87..306d6e502 100644 --- a/web/public/locales/nl/components/filter.json +++ b/web/public/locales/nl/components/filter.json @@ -32,7 +32,7 @@ } }, "review": { - "showReviewed": "Toon beoordeelden" + "showReviewed": "Toon beoordeelde items" }, "motion": { "showMotionOnly": "Alleen bewegingen weergeven" @@ -70,11 +70,11 @@ }, "recognizedLicensePlates": { "loadFailed": "Het laden van herkende kentekenplaten is mislukt.", - "placeholder": "Type om kentekens te zoeken...", + "placeholder": "Type om kentekens te zoeken…", "title": "Herkende kentekenplaten", "noLicensePlatesFound": "Geen kentekenplaten gevonden.", "selectPlatesFromList": "Selecteer een of meer kentekens uit de lijst.", - "loading": "Herkende kentekenplaten laden..." + "loading": "Herkende kentekenplaten laden…" }, "score": "Score", "sort": { diff --git a/web/public/locales/nl/components/icons.json b/web/public/locales/nl/components/icons.json index 69ad0c8f7..af65664d6 100644 --- a/web/public/locales/nl/components/icons.json +++ b/web/public/locales/nl/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "Selecteer een pictogram", "search": { - "placeholder": "Zoek naar een pictogram..." + "placeholder": "Zoek naar een pictogram…" } } } diff --git a/web/public/locales/nl/views/events.json b/web/public/locales/nl/views/events.json index b9825ecba..2ae919a34 100644 --- a/web/public/locales/nl/views/events.json +++ b/web/public/locales/nl/views/events.json @@ -11,7 +11,7 @@ }, "timeline": "Tijdlijn", "empty": { - "alert": "Er zijn geen mededelingen om te beoordelen", + "alert": "Er zijn geen meldingen om te beoordelen", "detection": "Er zijn geen detecties om te beoordelen", "motion": "Geen bewegingsgegevens gevonden" }, @@ -23,7 +23,7 @@ "calendarFilter": { "last24Hours": "Laatste 24 uur" }, - "alerts": "Mededelingen", + "alerts": "Meldingen", "motion": { "label": "Bewegingen", "only": "Alleen bewegingen" @@ -31,5 +31,7 @@ "allCameras": "Alle camera's", "markAsReviewed": "Markeren als beoordeeld", "detections": "Detecties", - "markTheseItemsAsReviewed": "Markeer deze items als beoordeling" + "markTheseItemsAsReviewed": "Markeer deze items als beoordeeld", + "selected_other": "{{count}} geselecteerd", + "selected_one": "{{count}} geselecteerd" } diff --git a/web/public/locales/nl/views/explore.json b/web/public/locales/nl/views/explore.json index 767f442ec..dfe37ea13 100644 --- a/web/public/locales/nl/views/explore.json +++ b/web/public/locales/nl/views/explore.json @@ -10,7 +10,7 @@ }, "context": "Verkennen kan worden gebruikt nadat de embeddings van gevolgde objecten opnieuw zijn geïndexeerd.", "estimatedTime": "Geschatte resterende tijd:", - "startingUp": "Opstarten..." + "startingUp": "Opstarten…" }, "downloadingModels": { "setup": { @@ -26,7 +26,7 @@ "documentation": "Lees de documentatie" } }, - "title": "Explore is niet beschikbaar" + "title": "Verkennen is niet beschikbaar" }, "trackedObjectDetails": "Details getraceerd object", "type": { @@ -48,7 +48,12 @@ "gone": "{{label}} Links", "active": "{{label}} Werd actief", "stationary": "{{label}} werd stationair", - "external": "{{label}} gedetecteerd" + "external": "{{label}} gedetecteerd", + "header": { + "zones": "Zones", + "ratio": "Verhouding", + "area": "Gebied" + } }, "annotationSettings": { "title": "Annotatie-instellingen", diff --git a/web/public/locales/nl/views/faceLibrary.json b/web/public/locales/nl/views/faceLibrary.json index 16fe10a97..3a9b3d2fe 100644 --- a/web/public/locales/nl/views/faceLibrary.json +++ b/web/public/locales/nl/views/faceLibrary.json @@ -24,7 +24,8 @@ "deleteNameFailed": "Naam verwijderen is niet gelukt: {{errorMessage}}", "updateFaceScoreFailed": "Niet gelukt om gezichtsscore bij te werken: {{errorMessage}}", "uploadingImageFailed": "Afbeelding uploaden mislukt: {{errorMessage}}", - "trainFailed": "Trainen mislukt: {{errorMessage}}" + "trainFailed": "Trainen mislukt: {{errorMessage}}", + "renameFaceFailed": "Het is niet gelukt om het gezicht te hernoemen: {{errorMessage}}" }, "success": { "deletedFace_one": "{{count}} gezicht is succesvol verwijderd.", @@ -34,11 +35,12 @@ "deletedName_one": "{{count}} gezicht is succesvol verwijderd.", "deletedName_other": "{{count}} gezichten zijn succesvol verwijderd.", "uploadedImage": "Afbeelding succesvol geüpload.", - "addFaceLibrary": "{{name}} is succesvol toegevoegd aan de Gezichtenbibliotheek!" + "addFaceLibrary": "{{name}} is succesvol toegevoegd aan de Gezichtenbibliotheek!", + "renamedFace": "Gezicht succesvol hernoemd naar {{name}}" } }, "imageEntry": { - "dropActive": "Zet de afbeelding hier neer...", + "dropActive": "Zet de afbeelding hier neer…", "dropInstructions": "Sleep een afbeelding hierheen of klik om te selecteren", "maxSize": "Maximale grootte: {{size}}MB", "validation": { @@ -55,11 +57,13 @@ "addFace": "Gezicht toevoegen", "uploadImage": "Afbeelding uploaden", "deleteFaceAttempts": "Pogingen tot gezichtsherkenning verwijderen", - "reprocessFace": "Herverwerk gezicht" + "reprocessFace": "Herverwerk gezicht", + "renameFace": "Gezicht hernoemen", + "deleteFace": "Gezicht verwijderen" }, "uploadFaceImage": { "desc": "Upload een afbeelding om te scannen op gezichten en op te nemen voor {{pageToggle}}", - "title": "Upload gezichtsafbeelding" + "title": "Upload een afbeelding van het gezicht" }, "deleteFaceLibrary": { "title": "Verwijder Naam", @@ -70,7 +74,11 @@ "readTheDocs": "Lees de documentatie", "steps": { "nextSteps": "Volgende stappen", - "faceName": "Voer gezichtsnaam in", - "uploadFace": "Upload gezichtsafbeelding" + "faceName": "Voer een naam in", + "uploadFace": "Upload een afbeelding van het gezicht" + }, + "renameFace": { + "title": "Gezicht hernoemen", + "desc": "Voer een nieuwe naam in voor {{name}}" } } diff --git a/web/public/locales/nl/views/search.json b/web/public/locales/nl/views/search.json index 5c6df23e3..d91159fd7 100644 --- a/web/public/locales/nl/views/search.json +++ b/web/public/locales/nl/views/search.json @@ -43,7 +43,14 @@ "desc": { "example": "Voorbeeld: camera's:voordeur label:persoon vóór:01012024 tijdsbereik:15:00-16:00", "text": "Filters helpen je om je zoekresultaten te beperken. Zo gebruik je ze in het invoerveld:", - "step": "" + "step": "", + "step3": "Gebruik meerdere filters door ze achter elkaar toe te voegen met een spatie ertussen.", + "step4": "Datumfilters (voor: en na:) gebruiken het {{DateFormat}} formaat.", + "step5": "Het tijdsfilter gebruikt het {{exampleTime}} als formaat.", + "step2": "Selecteer een waarde uit de suggesties of voer je eigen waarde in.", + "step1": "Typ een filtersleutelnaam gevolgd door een dubbele punt (bijv. \"camera's:\").", + "step6": "Verwijder filters door op de 'x' naast de filteroptie te klikken.", + "exampleLabel": "Voorbeeld:" } }, "searchType": { @@ -62,6 +69,6 @@ "clear": "Gelijksoortige zoekopdracht wissen" }, "placeholder": { - "search": "Zoek..." + "search": "Zoek…" } } diff --git a/web/public/locales/nl/views/settings.json b/web/public/locales/nl/views/settings.json index ff548f4ea..847b01c93 100644 --- a/web/public/locales/nl/views/settings.json +++ b/web/public/locales/nl/views/settings.json @@ -6,16 +6,17 @@ "motionTuner": "Motion Tuner - Frigate", "classification": "Classificatie-instellingen - Frigate", "masksAndZones": "Masker- en zone-editor - Frigate", - "object": "Objectinstellingen - Frigate", + "object": "Foutopsporing Frigate", "general": "Algemene instellingen - Frigate", - "frigatePlus": "Frigate+ Instellingen - Frigate" + "frigatePlus": "Frigate+ Instellingen - Frigate", + "notifications": "Meldingsinstellingen - Frigate" }, "menu": { "ui": "Gebruikersinterface", "classification": "Classificatie", "masksAndZones": "Maskers / Zones", - "motionTuner": "Bewegingsafsteller", - "debug": "Debug", + "motionTuner": "Bewegingsdetectie-afstellen", + "debug": "foutopsporing", "users": "Gebruikers", "notifications": "Meldingen", "cameras": "Camera-instellingen", @@ -139,7 +140,8 @@ "birdClassification": { "title": "Vogelclassificatie", "desc": "Vogelclassificatie herkent bekende vogels met behulp van een gequantiseerd TensorFlow-model. Wanneer een bekende vogel wordt herkend, wordt de algemene naam toegevoegd als sublabel. Deze informatie wordt weergegeven in de interface, is beschikbaar in filters en wordt ook opgenomen in meldingen." - } + }, + "restart_required": "Opnieuw opstarten vereist (Classificatie-instellingen gewijzigd)" }, "camera": { "review": { @@ -149,14 +151,14 @@ "desc": "Schakel waarschuwingen en detecties voor deze camera in of uit. Wanneer deze zijn uitgeschakeld, worden er geen nieuwe beoordelingsitems aangemaakt." }, "reviewClassification": { - "objectAlertsTips": "Alle {{alertsLabels}}-objecten op {{cameraName}} worden weergegeven als waarschuwingen.", - "zoneObjectAlertsTips": "Alle {{alertsLabels}}-objecten die zijn gedetecteerd in {{zone}} op {{cameraName}} worden weergegeven als waarschuwingen.", + "objectAlertsTips": "Alle {{alertsLabels}}-objecten op {{cameraName}} worden weergegeven als meldingen.", + "zoneObjectAlertsTips": "Alle {{alertsLabels}}-objecten die zijn gedetecteerd in {{zone}} op {{cameraName}} worden weergegeven als meldingen.", "zoneObjectDetectionsTips": { "text": "Alle {{detectionsLabels}}-objecten die in {{zone}} op {{cameraName}} niet zijn gecategoriseerd, worden weergegeven als detecties.", "notSelectDetections": "Alle {{detectionsLabels}}-objecten die in {{zone}} op {{cameraName}} worden gedetecteerd en niet als waarschuwing zijn gecategoriseerd, worden weergegeven als detecties – ongeacht in welke zone ze zich bevinden.", "regardlessOfZoneObjectDetectionsTips": "Alle {{detectionsLabels}}-objecten die op {{cameraName}} niet zijn gecategoriseerd, worden weergegeven als detecties – ongeacht in welke zone ze zich bevinden." }, - "selectAlertsZones": "Zones selecteren voor waarschuwingen", + "selectAlertsZones": "Zones selecteren voor meldingen", "selectDetectionsZones": "Selecteer zones voor detecties", "limitDetections": "Beperk detecties tot specifieke zones", "toast": { @@ -241,7 +243,7 @@ "clickDrawPolygon": "Klik om een polygoon op de afbeelding te tekenen.", "name": { "title": "Naam", - "inputPlaceHolder": "Voer een naam in...", + "inputPlaceHolder": "Voer een naam in…", "tips": "De naam moet minimaal 2 tekens lang zijn en mag niet gelijk zijn aan de naam van een camera of een andere zone." }, "inertia": { @@ -331,7 +333,8 @@ "clickDrawPolygon": "Klik om een polygoon op de afbeelding te tekenen.", "context": "Objectfiltermaskers worden gebruikt om valse positieven uit te filteren voor een bepaald objecttype op basis van locatie.", "edit": "Objectmasker bewerken" - } + }, + "restart_required": "Herstart vereist (maskers/zones gewijzigd)" }, "motionDetectionTuner": { "title": "Bewegingsdetectie-afsteller", @@ -384,12 +387,12 @@ "motion": { "title": "Bewegingskaders", "desc": "Toon kaders rondom gebieden waar beweging wordt gedetecteerd", - "tips": "

    Bewegingskaders


    Rode kaders worden over het beeld geplaatst op de plekken waar momenteel beweging wordt gedetecteerd.

    " + "tips": "

    Bewegingskaders


    Rode kaders worden over het beeld geplaatst op de plekken waar momenteel beweging wordt gedetecteerd.

    " }, "regions": { "title": "Regio's", "desc": "Toon een kader rond het interessegebied dat naar de objectdetector wordt gestuurd", - "tips": "

    Interessekaders


    Heldergroene kaders worden over het beeld geplaatst op de interessegebieden die naar de objectdetector worden gestuurd.

    " + "tips": "

    Interessekaders


    Heldergroene kaders worden over het beeld geplaatst op de interessegebieden die naar de objectdetector worden gestuurd.

    " }, "objectShapeFilterDrawing": { "title": "Objectvormfilter tekenen", @@ -473,13 +476,19 @@ }, "deleteUser": { "title": "Verwijder gebruiker", - "warn": "Weet je zeker dat je {{username}} wilt verwijderen?", + "warn": "Weet je zeker dat je {{username}} wilt verwijderen?", "desc": "Deze actie kan niet ongedaan worden gemaakt. Het gebruikersaccount wordt permanent verwijderd, samen met alle bijbehorende gegevens." }, "changeRole": { - "desc": "Machtigingen bijwerken voor {{username}}", + "desc": "Machtigingen bijwerken voor {{username}}", "title": "Gebruikersrol wijzigen", - "roleInfo": "

    Selecteer de juiste rol voor deze gebruiker:

    " + "roleInfo": { + "intro": "Selecteer een gepaste rol voor deze gebruiker:", + "admin": "Beheerder", + "adminDesc": "Volledige toegang tot alle functies.", + "viewer": "Gebruiker", + "viewerDesc": "Alleen toegang tot Live-dashboards, Beoordelen, Verkennen en Exports." + } }, "passwordSetting": { "setPassword": "Wachtwoord instellen", @@ -490,14 +499,14 @@ }, "notification": { "notificationSettings": { - "title": "Notificatie-instellingen", + "title": "Meldingen instellen", "desc": "Frigate kan rechtstreeks pushmeldingen naar uw apparaat verzenden als het in de browser actief is of als een PWA geïnstalleerd is.", "documentation": "Lees de documentatie" }, "notificationUnavailable": { "title": "Meldingen niet beschikbaar", "documentation": "Lees de documentatie", - "desc": "Webpushmeldingen vereisen een veilige omgeving (https://...). Dit is een beperking van de browser. Open Frigate via een beveiligde verbinding om meldingen te kunnen ontvangen." + "desc": "Webpushmeldingen vereisen een veilige omgeving (https://…). Dit is een beperking van de browser. Open Frigate via een beveiligde verbinding om meldingen te kunnen ontvangen." }, "globalSettings": { "title": "Globale instellingen", @@ -522,7 +531,8 @@ "12hours": "Onderbreek voor 12 uur", "24hours": "Onderbreek voor 24 uur", "untilRestart": "Opschorten tot herstart", - "10minutes": "Onderbreek voor 10 minuten" + "10minutes": "Onderbreek voor 10 minuten", + "suspend": "Pauzeren" }, "cancelSuspension": "Onderbreking annuleren", "toast": { @@ -567,16 +577,21 @@ "baseModel": "Basismodel", "cameras": "Camera's", "error": "Het laden van modelinformatie is mislukt", - "loadingAvailableModels": "Beschikbare modellen laden...", + "loadingAvailableModels": "Beschikbare modellen laden…", "modelSelect": "Je beschikbare modellen op Frigate+ kunnen hier worden geselecteerd. Houd er rekening mee dat alleen modellen die compatibel zijn met je huidige detectorconfiguratie geselecteerd kunnen worden.", "dimensions": "Afmetingen", "supportedDetectors": "Ondersteunde detectoren", "availableModels": "Beschikbare modellen", - "loading": "Modelinformatie laden..." + "loading": "Modelinformatie laden…", + "plusModelType": { + "baseModel": "Basismodel", + "userModel": "Verfijnd" + } }, "toast": { "success": "Frigate+ instellingen zijn opgeslagen. Herstart Frigate om de wijzigingen toe te passen.", "error": "Configuratiewijzigingen konden niet worden opgeslagen: {{errorMessage}}" - } + }, + "restart_required": "Herstart vereist (Frigate+ model gewijzigd)" } } diff --git a/web/public/locales/nl/views/system.json b/web/public/locales/nl/views/system.json index d40890ada..073786f9d 100644 --- a/web/public/locales/nl/views/system.json +++ b/web/public/locales/nl/views/system.json @@ -40,7 +40,8 @@ "title": "Detectoren", "cpuUsage": "Detector CPU-verbruik", "memoryUsage": "Detector Geheugen Gebruik", - "inferenceSpeed": "Detector Interferentie Snelheid" + "inferenceSpeed": "Detector Interferentie Snelheid", + "temperature": "Detectortemperatuur" }, "hardwareInfo": { "title": "Systeem Gegevens", @@ -71,7 +72,9 @@ }, "gpuDecoder": "GPU Decodeerder", "gpuEncoder": "GPU Encodeerder", - "gpuMemory": "GPU-geheugen" + "gpuMemory": "GPU-geheugen", + "npuUsage": "NPU-gebruik", + "npuMemory": "NPU-geheugen" }, "otherProcesses": { "processMemoryUsage": "Process Geheugen Gebruik", @@ -125,8 +128,17 @@ "camera": "camera", "detect": "detectie", "skipped": "overgeslagen", - "ffmpeg": "ffmpeg", - "capture": "registratie" + "ffmpeg": "FFmpeg", + "capture": "registratie", + "overallSkippedDetectionsPerSecond": "totaal aantal overgeslagen detecties per seconde", + "overallFramesPerSecond": "totale aantal frames per seconde", + "overallDetectionsPerSecond": "totale aantal detecties per seconde", + "cameraFfmpeg": "{{camName}} FFmpeg", + "cameraFramesPerSecond": "{{camName}} frames per seconde", + "cameraDetectionsPerSecond": "{{camName}} detecties per seconde", + "cameraSkippedDetectionsPerSecond": "{{camName}} overgeslagen detecties per seconde", + "cameraCapture": "{{camName}} opname", + "cameraDetect": "{{camName}} detecteren" }, "toast": { "success": { @@ -139,10 +151,13 @@ }, "lastRefreshed": "Voor het laatst vernieuwd: ", "stats": { - "ffmpegHighCpuUsage": "{{camera}} zorgt voor hoge FFMPEG CPU belasting ({{ffmpegAvg}}%)", + "ffmpegHighCpuUsage": "{{camera}} zorgt voor hoge FFmpeg CPU belasting ({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} zorgt voor hoge detectie CPU belasting ({{detectAvg}}%)", "healthy": "Systeem is gezond", - "reindexingEmbeddings": "Herindexering van inbeddingen ({{processed}}% compleet)" + "reindexingEmbeddings": "Herindexering van inbeddingen ({{processed}}% compleet)", + "detectIsSlow": "{{detect}} is traag ({{speed}} ms)", + "detectIsVerySlow": "{{detect}} is erg traag ({{speed}} ms)", + "cameraIsOffline": "{{camera}} is offline" }, "enrichments": { "title": "Verrijkingen", @@ -151,7 +166,14 @@ "image_embedding_speed": "Afbeelding Inplaatsings Snelheid", "face_embedding_speed": "Gezicht Inplaatsings Snelheid", "text_embedding_speed": "Text Inplaatsing Snelheid", - "plate_recognition_speed": "Kentekenplaat Herkenning Snelheid" + "plate_recognition_speed": "Kentekenplaat Herkenning Snelheid", + "face_recognition_speed": "Snelheid van gezichtsherkenning", + "image_embedding": "Afbeelding Inbedden", + "text_embedding": "Tekstinbedden", + "face_recognition": "Gezichtsherkenning", + "yolov9_plate_detection_speed": "YOLOv9 Kentekenplaat Detectiesnelheid", + "yolov9_plate_detection": "YOLOv9 Kentekenplaatdetectie", + "plate_recognition": "Kentekenherkenning" } } } diff --git a/web/public/locales/pl/audio.json b/web/public/locales/pl/audio.json index ffdf67e41..62cd7b465 100644 --- a/web/public/locales/pl/audio.json +++ b/web/public/locales/pl/audio.json @@ -385,7 +385,7 @@ "air_conditioning": "Klimatyzacja", "cash_register": "Kasa fiskalna", "printer": "Drukarka", - "camera": "Aparat", + "camera": "Kamera", "single-lens_reflex_camera": "Lustrzanka jednooobiektywowa", "tools": "Narzędzia", "hammer": "Młotek", diff --git a/web/public/locales/pl/common.json b/web/public/locales/pl/common.json index 2c32f14fb..4b3915685 100644 --- a/web/public/locales/pl/common.json +++ b/web/public/locales/pl/common.json @@ -44,12 +44,12 @@ "minute_few": "{{time}} minuty", "minute_many": "{{time}} minut", "formattedTimestamp": { - "12hour": "%b %-d, %I:%M:%S %p", - "24hour": "%b %-d, %H:%M:%S" + "12hour": "d MMM, h:mm:ss aaa", + "24hour": "MMM d, HH:mm:ss" }, "formattedTimestamp2": { - "12hour": "%m/%d %I:%M:%S%P", - "24hour": "%d %b %H:%M:%S" + "12hour": "MM/dd h:mm:ssa", + "24hour": "d MMM HH:mm:ss" }, "formattedTimestampExcludeSeconds": { "12hour": "%b %-d, %I:%M %p", @@ -62,7 +62,28 @@ "formattedTimestampOnlyMonthAndDay": "%b %-d", "second_one": "{{time}} sekunda", "second_few": "{{time}} sekundy", - "second_many": "{{time}} sekund" + "second_many": "{{time}} sekund", + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "d MMM, h:mm aaa", + "24hour": "d MMM, HH:mm" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "d MMM yyyy, h:mm aaa", + "24hour": "d MMM yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "d MMM", + "formattedTimestampFilename": { + "12hour": "dd-MM-yy-h-mm-ss-a", + "24hour": "dd-MM-yy-HH-mm-ss" + } }, "unit": { "speed": { @@ -99,7 +120,7 @@ "next": "Dalej", "disabled": "Wyłączone", "back": "Wstecz", - "saving": "Zapisywanie...", + "saving": "Zapisywanie…", "on": "WŁĄCZ", "cancel": "Anuluj", "twoWayTalk": "Komunikacja dwustronna", diff --git a/web/public/locales/pl/components/camera.json b/web/public/locales/pl/components/camera.json index 2bc3cee46..7ad57e5ab 100644 --- a/web/public/locales/pl/components/camera.json +++ b/web/public/locales/pl/components/camera.json @@ -11,7 +11,7 @@ } }, "name": { - "placeholder": "Wprowadź nazwę...", + "placeholder": "Wprowadź nazwę…", "label": "Nazwa", "errorMessage": { "mustLeastCharacters": "Nazwa grupy kamer musi mieć co najmniej 2 znaki.", diff --git a/web/public/locales/pl/components/dialog.json b/web/public/locales/pl/components/dialog.json index 3d02678b3..b36d38560 100644 --- a/web/public/locales/pl/components/dialog.json +++ b/web/public/locales/pl/components/dialog.json @@ -29,6 +29,12 @@ }, "state": { "submitted": "Przesłano" + }, + "question": { + "ask_a": "Czy ten obiekt to {{label}}?", + "ask_an": "Czy ten obiekt to {{label}}?", + "ask_full": "Czy ten obiekt to {{untranslatedLabel}} ({{translatedLabel}})?", + "label": "Potwierdź tę etykietę dla Frigate Plus" } } }, @@ -90,7 +96,7 @@ "disabled": "Restreaming nie jest włączony dla tej kamery.", "desc": { "title": "Skonfiguruj go2rtc dla dodatkowych opcji podglądu na żywo i dźwięku dla tej kamery.", - "readTheDocumentation": "Przeczytaj dokumentację· " + "readTheDocumentation": "Przeczytaj dokumentację" } }, "showStats": { diff --git a/web/public/locales/pl/components/filter.json b/web/public/locales/pl/components/filter.json index 519c8c6d9..e85cd00e6 100644 --- a/web/public/locales/pl/components/filter.json +++ b/web/public/locales/pl/components/filter.json @@ -80,8 +80,8 @@ "allLogs": "Wszystkie logi" }, "recognizedLicensePlates": { - "loading": "Ładowanie rozpoznanych tablic rejestracyjnych...", - "placeholder": "Wpisz, aby wyszukać tablice rejestracyjne...", + "loading": "Ładowanie rozpoznanych tablic rejestracyjnych…", + "placeholder": "Wpisz, aby wyszukać tablice rejestracyjne…", "noLicensePlatesFound": "Nie znaleziono tablic rejestracyjnych.", "title": "Rozpoznane Tablice Rejestracyjne", "loadFailed": "Nie udało się załadować rozpoznanych tablic rejestracyjnych.", diff --git a/web/public/locales/pl/components/icons.json b/web/public/locales/pl/components/icons.json index b06575a27..35cbdc1c4 100644 --- a/web/public/locales/pl/components/icons.json +++ b/web/public/locales/pl/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "Wybierz ikonę", "search": { - "placeholder": "Wyszukaj ikonę..." + "placeholder": "Wyszukaj ikonę…" } } } diff --git a/web/public/locales/pl/views/events.json b/web/public/locales/pl/views/events.json index bf04bfd0a..1f4721aed 100644 --- a/web/public/locales/pl/views/events.json +++ b/web/public/locales/pl/views/events.json @@ -1,5 +1,5 @@ { - "camera": "Aparat", + "camera": "Kamera", "alerts": "Alerty", "detections": "Wykrycia", "motion": { @@ -31,5 +31,7 @@ "newReviewItems": { "label": "Zobacz nowe elementy do przeglądu", "button": "Nowe elementy do przeglądu" - } + }, + "selected_one": "{{count}} wybrane", + "selected_other": "{{count}} wybrane" } diff --git a/web/public/locales/pl/views/explore.json b/web/public/locales/pl/views/explore.json index 7ba919537..dd344b34e 100644 --- a/web/public/locales/pl/views/explore.json +++ b/web/public/locales/pl/views/explore.json @@ -67,7 +67,10 @@ }, "recognizedLicensePlate": "Rozpoznana tablica rejestracyjna", "regenerateFromSnapshot": "Regeneruj ze zrzutu ekranu", - "regenerateFromThumbnails": "Regeneruj z miniatur" + "regenerateFromThumbnails": "Regeneruj z miniatur", + "snapshotScore": { + "label": "Wynik zrzutu" + } }, "objectLifecycle": { "annotationSettings": { @@ -99,7 +102,12 @@ }, "gone": "{{label}} zniknął", "heard": "{{label}} usłyszany", - "external": "{{label}} wykryty" + "external": "{{label}} wykryty", + "header": { + "ratio": "Współczynnik", + "area": "Obszar", + "zones": "Strefy" + } }, "carousel": { "previous": "Poprzedni slajd", @@ -112,7 +120,7 @@ "title": "Eksploracja jest niedostępna", "embeddingsReindexing": { "context": "Eksploracja będzie dostępna po zakończeniu ponownego indeksowania osadzenia śledzonych obiektów.", - "startingUp": "Uruchamianie...", + "startingUp": "Uruchamianie…", "estimatedTime": "Szacowany pozostały czas:", "finishingShortly": "Zakańczanie", "step": { diff --git a/web/public/locales/pl/views/faceLibrary.json b/web/public/locales/pl/views/faceLibrary.json index 5c248b02c..130dec17f 100644 --- a/web/public/locales/pl/views/faceLibrary.json +++ b/web/public/locales/pl/views/faceLibrary.json @@ -35,13 +35,15 @@ "addFace": "Dodaj twarz", "uploadImage": "Wgraj obraz", "reprocessFace": "Przetwórz twarz ponownie", - "deleteFaceAttempts": "Usuń próby rozpoznania twarzy" + "deleteFaceAttempts": "Usuń próby rozpoznania twarzy", + "renameFace": "Zmień nazwę twarzy", + "deleteFace": "Usuń twarz" }, "imageEntry": { "validation": { "selectImage": "Proszę wybrać plik obrazu." }, - "dropActive": "Upuść obraz tutaj...", + "dropActive": "Upuść obraz tutaj…", "dropInstructions": "Przeciągnij i upuść obraz tutaj lub kliknij, aby wybrać", "maxSize": "Maksymalny rozmiar: {{size}}MB" }, @@ -56,7 +58,8 @@ "uploadedImage": "Pomyślnie wgrano obraz.", "addFaceLibrary": "{{name}} został pomyślnie dodany do Biblioteki Twarzy!", "trainedFace": "Pomyślnie wytrenowano twarz.", - "updatedFaceScore": "Pomyślnie zaktualizowano wynik twarzy." + "updatedFaceScore": "Pomyślnie zaktualizowano wynik twarzy.", + "renamedFace": "Pomyślnie zmieniono nazwę twarzy na {{name}}" }, "error": { "addFaceLibraryFailed": "Nie udało się ustawić nazwy twarzy: {{errorMessage}}", @@ -64,10 +67,20 @@ "deleteNameFailed": "Nie udało się usunąć nazwy: {{errorMessage}}", "trainFailed": "Nie udało się przeprowadzić treningu: {{errorMessage}}", "updateFaceScoreFailed": "Nie udało się zaktualizować wyniku twarzy: {{errorMessage}}", - "uploadingImageFailed": "Nie udało się wgrać obrazu: {{errorMessage}}" + "uploadingImageFailed": "Nie udało się wgrać obrazu: {{errorMessage}}", + "renameFaceFailed": "Nie udało się zmienić nazwy twarzy: {{errorMessage}}" } }, "readTheDocs": "Przeczytaj dokumentację", "trainFaceAs": "Trenuj twarz jako:", - "trainFace": "Trenuj twarz" + "trainFace": "Trenuj twarz", + "steps": { + "faceName": "Wprowadź nazwę twarzy", + "uploadFace": "Prześlij obraz twarzy", + "nextSteps": "Kolejne kroki" + }, + "renameFace": { + "title": "Zmień nazwę twarzy", + "desc": "Wprowadź nową nazwę dla {{name}}" + } } diff --git a/web/public/locales/pl/views/search.json b/web/public/locales/pl/views/search.json index 3a0cd823b..175b42a80 100644 --- a/web/public/locales/pl/views/search.json +++ b/web/public/locales/pl/views/search.json @@ -47,7 +47,14 @@ "desc": { "text": "Filtry pomagają zawęzić wyniki wyszukiwania. Oto jak używać ich w polu wejściowym:", "example": "Przykład: cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM ", - "step": "" + "step": "", + "step2": "Wybierz wartość z sugestii lub wpisz własną.", + "step3": "Użyj kilku filtrów dodając jeden po drugim i oddzielając je spacją.", + "exampleLabel": "Przykład:", + "step1": "Wprowadź nazwę filtra z dwukropkiem (np.: \"cameras:\").", + "step4": "Filtry dat (before: i after:) użyj formatu {{DateFormat}}.", + "step5": "Filtr zakresu czasu wykorzystuje format {{exampleTime}}.", + "step6": "Usuń filtry klikając 'x' obok nich." } }, "header": { @@ -62,6 +69,6 @@ "clear": "Wyczyść wyszukiwanie podobieństw" }, "placeholder": { - "search": "Szukaj..." + "search": "Szukaj…" } } diff --git a/web/public/locales/pl/views/settings.json b/web/public/locales/pl/views/settings.json index 38ac0c9d2..5cf1371d1 100644 --- a/web/public/locales/pl/views/settings.json +++ b/web/public/locales/pl/views/settings.json @@ -139,7 +139,8 @@ "birdClassification": { "desc": "Klasyfikacja ptaków identyfikuje znane ptaki przy użyciu skwantyzowanego modelu Tensorflow. Gdy znany ptak zostanie rozpoznany, jego popularna nazwa zostanie dodana jako sub_label. Ta informacja jest uwzględniana w interfejsie użytkownika, filtrach oraz powiadomieniach.", "title": "Klasyfikacja Ptaków" - } + }, + "restart_required": "Wymagane ponowne uruchomienie (Zmienione ustawienia klasyfikacji)" }, "camera": { "title": "Ustawienia Kamery", @@ -235,7 +236,7 @@ "edit": "Edytuj Strefę", "name": { "title": "Nazwa", - "inputPlaceHolder": "Wprowadź nazwę...", + "inputPlaceHolder": "Wprowadź nazwę…", "tips": "Nazwa musi mieć co najmniej 2 znaki i nie może być taka sama jak nazwa kamery lub innej strefy." }, "objects": { @@ -334,7 +335,8 @@ "error": { "copyCoordinatesFailed": "Nie udało się skopiować współrzędnych do schowka." } - } + }, + "restart_required": "Wymagane ponowne uruchomienie (maski/strefy zmienione)" }, "debug": { "objectList": "Lista Obiektów", @@ -366,12 +368,12 @@ "motion": { "title": "Ramki ruchu", "desc": "Pokaż ramki wokół obszarów, gdzie wykryto ruch", - "tips": "

    Ramki Ruchu


    Czerwone ramki będą nakładane na obszary kadru, gdzie aktualnie wykrywany jest ruch

    " + "tips": "

    Ramki Ruchu


    Czerwone ramki będą nakładane na obszary kadru, gdzie aktualnie wykrywany jest ruch

    " }, "regions": { "title": "Regiony", "desc": "Pokaż ramkę regionu zainteresowania wysyłanego do detektora obiektów", - "tips": "

    Ramki Regionów


    Jasnozielone ramki będą nakładane na obszary zainteresowania w kadrze, które są wysyłane do detektora obiektów.

    " + "tips": "

    Ramki Regionów


    Jasnozielone ramki będą nakładane na obszary zainteresowania w kadrze, które są wysyłane do detektora obiektów.

    " }, "objectShapeFilterDrawing": { "document": "Przeczytaj dokumentację ", @@ -465,8 +467,14 @@ "usernameIsRequired": "Nazwa użytkownika jest wymagana" }, "changeRole": { - "desc": "Aktualizuj uprawnienia dla {{username}}", - "roleInfo": "

    Wybierz odpowiednią rolę dla tego użytkownika:

    ", + "desc": "Aktualizuj uprawnienia dla {{username}}", + "roleInfo": { + "intro": "Wybierz właściwą rolę dla tego użytkownika:", + "admin": "Admin", + "adminDesc": "Pełny dostęp do wszystkich funkcjonalności.", + "viewerDesc": "Ograniczony wyłącznie do pulpitów na żywo, przeglądania, eksploracji i eksportu.", + "viewer": "Przeglądający" + }, "title": "Zmień rolę użytkownika" }, "createUser": { @@ -477,7 +485,7 @@ "deleteUser": { "title": "Usuń użytkownika", "desc": "Tej akcji nie można cofnąć. Spowoduje to trwałe usunięcie konta użytkownika i wszystkich powiązanych danych.", - "warn": "Czy na pewno chcesz usunąć {{username}}?" + "warn": "Czy na pewno chcesz usunąć {{username}}?" }, "passwordSetting": { "updatePassword": "Aktualizuj hasło dla {{username}}", @@ -500,7 +508,7 @@ }, "notificationUnavailable": { "title": "Powiadomienia niedostępne", - "desc": "Powiadomienia push w przeglądarce wymagają bezpiecznego kontekstu (https://...). To jest ograniczenie przeglądarki. Uzyskaj dostęp do Frigate przez bezpieczne połączenie, aby korzystać z powiadomień.", + "desc": "Powiadomienia push w przeglądarce wymagają bezpiecznego kontekstu (https://…). To jest ograniczenie przeglądarki. Uzyskaj dostęp do Frigate przez bezpieczne połączenie, aby korzystać z powiadomień.", "documentation": "Przeczytaj dokumentację" }, "globalSettings": { @@ -570,16 +578,21 @@ "supportedDetectors": "Wspierane detektory", "dimensions": "Wymiary", "cameras": "Kamery", - "loading": "Ładowanie informacji o modelu...", + "loading": "Ładowanie informacji o modelu…", "error": "Nie udało się załadować informacji o modelu", "availableModels": "Dostępne modele", - "loadingAvailableModels": "Ładowanie dostępnych modeli...", + "loadingAvailableModels": "Ładowanie dostępnych modeli…", "baseModel": "Model bazowy", - "modelSelect": "Tutaj możesz wybrać swoje dostępne modele w Frigate+. Pamiętaj, że można wybrać tylko modele kompatybilne z Twoją aktualną konfiguracją detektora." + "modelSelect": "Tutaj możesz wybrać swoje dostępne modele w Frigate+. Pamiętaj, że można wybrać tylko modele kompatybilne z Twoją aktualną konfiguracją detektora.", + "plusModelType": { + "baseModel": "Model bazowy", + "userModel": "Dostrojony" + } }, "toast": { "success": "Ustawienia Frigate+ zostały zapisane. Uruchom ponownie Frigate, aby zastosować zmiany.", "error": "Nie udało się zapisać zmian konfiguracji: {{errorMessage}}" - } + }, + "restart_required": "Wymagane ponowne uruchomienie (Zmieniony model Frigate+)" } } diff --git a/web/public/locales/pl/views/system.json b/web/public/locales/pl/views/system.json index 6975ce36e..ac55bc60d 100644 --- a/web/public/locales/pl/views/system.json +++ b/web/public/locales/pl/views/system.json @@ -40,7 +40,9 @@ "gpuEncoder": "Enkoder GPU", "gpuDecoder": "Dekoder GPU", "gpuMemory": "Pamięć GPU", - "gpuUsage": "Użycie GPU" + "gpuUsage": "Użycie GPU", + "npuUsage": "Użycie NPU", + "npuMemory": "Pamięć NPU" }, "title": "Ogólne", "detector": { @@ -142,7 +144,10 @@ "ffmpegHighCpuUsage": "{{camera}} ma wysokie użycie CPU przez FFMPEG ({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} ma wysokie użycie CPU przez detekcję ({{detectAvg}}%)", "healthy": "System jest sprawny", - "reindexingEmbeddings": "Ponowne indeksowanie osadzeń ({{processed}}% ukończone)" + "reindexingEmbeddings": "Ponowne indeksowanie osadzeń ({{processed}}% ukończone)", + "detectIsSlow": "{{detect}} jest wolne ({{speed}} ms)", + "detectIsVerySlow": "{{detect}} jest bardzo wolne ({{speed}} ms)", + "cameraIsOffline": "{{camera}} jest niedostępna" }, "enrichments": { "title": "Wzbogacenia", @@ -151,7 +156,14 @@ "image_embedding_speed": "Szybkość osadzania obrazów", "face_embedding_speed": "Szybkość osadzania twarzy", "plate_recognition_speed": "Szybkość rozpoznawania tablic rejestracyjnych", - "text_embedding_speed": "Szybkość osadzania tekstu" + "text_embedding_speed": "Szybkość osadzania tekstu", + "face_recognition_speed": "Szybkość rozpoznawania twarzy", + "image_embedding": "Osadzenie obrazu", + "plate_recognition": "Rozpoznawanie rejestracji samochodowych", + "yolov9_plate_detection_speed": "Prędkość detekcji rejestracji samochodowych YOLOv9", + "yolov9_plate_detection": "Detekcja rejestracji samochodowych YOLOv9", + "text_embedding": "Osadzenie tekstu", + "face_recognition": "Rozpoznawanie twarzy" } } } diff --git a/web/public/locales/pt/common.json b/web/public/locales/pt/common.json index 9c5e25ca5..2e92a03ce 100644 --- a/web/public/locales/pt/common.json +++ b/web/public/locales/pt/common.json @@ -76,7 +76,7 @@ "done": "Feito", "reset": "Reiniciar", "disabled": "Desabilitado", - "saving": "Salvando...", + "saving": "Salvando…", "apply": "Aplicar", "disable": "Desabilitar", "save": "Salvar", diff --git a/web/public/locales/pt/components/camera.json b/web/public/locales/pt/components/camera.json index 6666868a9..1272553a6 100644 --- a/web/public/locales/pt/components/camera.json +++ b/web/public/locales/pt/components/camera.json @@ -12,7 +12,7 @@ }, "name": { "label": "Nome", - "placeholder": "Digite um nome...", + "placeholder": "Digite um nome…", "errorMessage": { "exists": "O nome do grupo de câmeras já existe.", "nameMustNotPeriod": "O nome do grupo de câmeras não deve conter ponto.", diff --git a/web/public/locales/pt/components/dialog.json b/web/public/locales/pt/components/dialog.json index a7fc2c8bc..c67cc8834 100644 --- a/web/public/locales/pt/components/dialog.json +++ b/web/public/locales/pt/components/dialog.json @@ -79,7 +79,7 @@ "restreaming": { "desc": { "title": "Configure o go2rtc para obter opções adicionais de visualização ao vivo e áudio para esta câmera.", - "readTheDocumentation": "Leia a documentação " + "readTheDocumentation": "Leia a documentação" }, "disabled": "A retransmissão não está habilitada para esta câmera." }, diff --git a/web/public/locales/pt/components/icons.json b/web/public/locales/pt/components/icons.json index 445076648..ddd38e84c 100644 --- a/web/public/locales/pt/components/icons.json +++ b/web/public/locales/pt/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "Selecione um ícone", "search": { - "placeholder": "Pesquisar por um ícone..." + "placeholder": "Pesquisar por um ícone…" } } } diff --git a/web/public/locales/pt/views/explore.json b/web/public/locales/pt/views/explore.json index c28672f37..b6635186a 100644 --- a/web/public/locales/pt/views/explore.json +++ b/web/public/locales/pt/views/explore.json @@ -2,7 +2,7 @@ "generativeAI": "IA Generativa", "exploreIsUnavailable": { "embeddingsReindexing": { - "startingUp": "Iniciando...", + "startingUp": "Iniciando…", "estimatedTime": "Tempo restante estimado:", "finishingShortly": "Terminando em breve", "step": { diff --git a/web/public/locales/pt/views/faceLibrary.json b/web/public/locales/pt/views/faceLibrary.json index 5299d5c31..565d2423d 100644 --- a/web/public/locales/pt/views/faceLibrary.json +++ b/web/public/locales/pt/views/faceLibrary.json @@ -41,7 +41,7 @@ "validation": { "selectImage": "Selecione um arquivo de imagem." }, - "dropActive": "Solte a imagem aqui...", + "dropActive": "Solte a imagem aqui…", "maxSize": "Tamanho máximo: {{size}}MB", "dropInstructions": "Arraste e solte uma imagem aqui ou clique para selecionar" }, diff --git a/web/public/locales/pt/views/search.json b/web/public/locales/pt/views/search.json index ffdbd6687..32b01148c 100644 --- a/web/public/locales/pt/views/search.json +++ b/web/public/locales/pt/views/search.json @@ -57,7 +57,7 @@ } }, "placeholder": { - "search": "Pesquisar..." + "search": "Pesquisar…" }, "similaritySearch": { "title": "Pesquisa de similaridade", diff --git a/web/public/locales/pt/views/settings.json b/web/public/locales/pt/views/settings.json index 2375b3811..cdd0fc582 100644 --- a/web/public/locales/pt/views/settings.json +++ b/web/public/locales/pt/views/settings.json @@ -137,19 +137,37 @@ "error": "Falha ao salvar as alterações de configuração: {{errorMessage}}" }, "birdClassification": { - "title": "Classificação de Pássaros" + "title": "Classificação de Pássaros", + "desc": "A classificação de aves/pássaros identifica aves conhecidas usando um modelo Tensorflow quantizado. Quando uma ave/ pássaro conhecida(o) for reconhecida(o), o seu nome comum será adicionado como um sub_rótulo. Estas informações estão incluídas na interface do utilizador, nos filtros e também nas notificações." } }, "notification": { "globalSettings": { - "title": "Configurações globais" + "title": "Configurações globais", + "desc": "Suspenda temporariamente as notificações para câmaras específicas em todos os dispositivos registados." }, "notificationSettings": { - "documentation": "Leia a documentação" + "documentation": "Leia a documentação", + "title": "Configurações de notificação", + "desc": "O Frigate pode enviar notificações push para o seu dispositivo quando está a ser executado no browser ou instalado como um PWA." }, "notificationUnavailable": { - "documentation": "Leia a documentação" - } + "documentation": "Leia a documentação", + "title": "Notificações indisponíveis" + }, + "cameras": { + "title": "Câmeras", + "noCameras": "Nenhuma câmara disponível", + "desc": "Selecione para que câmaras as notificações serão ativadas." + }, + "deviceSpecific": "Configurações específicas do dispositivo", + "registerDevice": "Registe este dispositivo", + "email": { + "placeholder": "por exemplo: exemplo@email.com", + "desc": "É necessário um e-mail válido que será utilizado para o notificar caso haja algum problema com o serviço push.", + "title": "E-mail" + }, + "title": "Notificações" }, "frigatePlus": { "snapshotConfig": { @@ -158,6 +176,10 @@ "snapshots": "Snapshots", "camera": "Câmera" } + }, + "toast": { + "success": "As definições do Frigate+ foram guardadas. Reinicie o Frigate para aplicar as alterações.", + "error": "Falha ao guardar alterações de configuração: {{errorMessage}}" } }, "masksAndZones": { @@ -175,7 +197,12 @@ "desc": { "documentation": "Documentação" }, - "clickDrawPolygon": "Clique para desenhar um polígono na imagem." + "clickDrawPolygon": "Clique para desenhar um polígono na imagem.", + "toast": { + "success": { + "noName": "O filtro de movimento foi guardado. Reinicie o Frigate para aplicar as alterações." + } + } }, "zones": { "label": "Zonas", @@ -192,7 +219,7 @@ "clickDrawPolygon": "Clique para desenhar um polígono na imagem.", "name": { "title": "Nome", - "inputPlaceHolder": "Digite um nome...", + "inputPlaceHolder": "Digite um nome…", "tips": "O nome deve ter pelo menos 2 caracteres e não pode ser o nome de uma câmera ou de outra zona." }, "inertia": { @@ -294,8 +321,12 @@ "objects": { "allObjectTypes": "Todos os tipos de objeto", "title": "Objetos" - } - } + }, + "add": "Adicionar filtro para objecto", + "edit": "Editar filtro de objecto", + "documentTitle": "Editar filtro de movimento - Frigate" + }, + "restart_required": "É necessário reiniciar (máscaras/zonas alteradas)" }, "debug": { "zones": { diff --git a/web/public/locales/ro/components/camera.json b/web/public/locales/ro/components/camera.json index 8ee971300..a3fa10887 100644 --- a/web/public/locales/ro/components/camera.json +++ b/web/public/locales/ro/components/camera.json @@ -12,7 +12,7 @@ }, "name": { "label": "Nume", - "placeholder": "Introdu un nume...", + "placeholder": "Introdu un nume…", "errorMessage": { "mustLeastCharacters": "Numele grupului de cmere trebuie sa sontina minim 2 caractere.", "exists": "Numele grupului de camere exista deja.", diff --git a/web/public/locales/ro/components/icons.json b/web/public/locales/ro/components/icons.json index 04b42b26f..4019c8f66 100644 --- a/web/public/locales/ro/components/icons.json +++ b/web/public/locales/ro/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "Selecteaza o pictograma", "search": { - "placeholder": "Cauta o pictograma..." + "placeholder": "Cauta o pictograma…" } } } diff --git a/web/public/locales/ro/views/explore.json b/web/public/locales/ro/views/explore.json index 6ecec564d..e208948f3 100644 --- a/web/public/locales/ro/views/explore.json +++ b/web/public/locales/ro/views/explore.json @@ -4,7 +4,7 @@ "exploreIsUnavailable": { "title": "Explorarea este Indisponibila", "embeddingsReindexing": { - "startingUp": "Porneste...", + "startingUp": "Porneste…", "estimatedTime": "Timp ramas estimat:", "finishingShortly": "Termina curand" } diff --git a/web/public/locales/ro/views/faceLibrary.json b/web/public/locales/ro/views/faceLibrary.json index d5128c338..9105a4ab0 100644 --- a/web/public/locales/ro/views/faceLibrary.json +++ b/web/public/locales/ro/views/faceLibrary.json @@ -1,6 +1,6 @@ { "description": { - "addFace": "Parcurge adaugare unei colectii noi la Libraria de Fete", + "addFace": "Parcurge adaugare unei colectii noi la Libraria de Fete.", "placeholder": "Introduceti un nume pentru aceasta colectie" }, "details": { diff --git a/web/public/locales/ru/audio.json b/web/public/locales/ru/audio.json index 953c0f688..9f5e58530 100644 --- a/web/public/locales/ru/audio.json +++ b/web/public/locales/ru/audio.json @@ -17,7 +17,7 @@ "whispering": "Шёпот", "whoop": "Возглас", "crying": "Плач", - "yodeling": "Йодль", + "yodeling": "Йодль (пение)", "snicker": "Смешок", "sigh": "Сигнал", "singing": "Пение", @@ -46,26 +46,26 @@ "clapping": "Хлопать", "moo": "Мычание", "cowbell": "Коровий колокольчик", - "heart_murmur": "Шум в сердце", + "heart_murmur": "Сердечный шум", "cheering": "Ликование", "applause": "Аплодисменты", "chatter": "Болтовня", "crowd": "Толпа", "children_playing": "Игра детей", - "animal": "Зверь", + "animal": "Животное", "pets": "Домашние животные", "dog": "Собака", "bark": "Лай", - "yip": "Тявкать", + "yip": "Тявканье", "howl": "Вой", "whimper_dog": "Собачий скулеж", "cat": "Кошка", "purr": "Мурлыканье", "meow": "Мяуканье", "hiss": "Шипение", - "growling": "Рычать", + "growling": "Рычание", "bow_wow": "Гавканье", - "heartbeat": "Сердце биение", + "heartbeat": "Сердцебиение", "caterwaul": "Кошачий вой", "horse": "Лошадь", "clip_clop": "Цоканье", @@ -89,7 +89,7 @@ "honk": "Гоготание", "wild_animals": "Дикие животные", "roaring_cats": "Рычащие кошки", - "roar": "Рычание", + "roar": "Рык", "chirp": "Чириканье", "squawk": "Птичий крик", "pigeon": "Голубь", @@ -131,7 +131,7 @@ "banjo": "Банджо", "zither": "Цитра", "ukulele": "Укулеле", - "keyboard": "Клавишный инструмент", + "keyboard": "Клавиатура", "electric_piano": "Электропианино", "organ": "Орган", "electronic_organ": "Электроорган", @@ -251,8 +251,8 @@ "sad_music": "Грустная музыка", "tender_music": "Нежная музыка", "exciting_music": "Энергичная музыка", - "angry_music": "Гневная музыка", - "scary_music": "Страшная музыка", + "angry_music": "Агрессивная музыка", + "scary_music": "Жуткая музыка", "wind": "Ветер", "rustling_leaves": "Шуршание листьев", "wind_noise": "Шум ветра", diff --git a/web/public/locales/ru/common.json b/web/public/locales/ru/common.json index ea5a430bc..45c497c6d 100644 --- a/web/public/locales/ru/common.json +++ b/web/public/locales/ru/common.json @@ -55,30 +55,51 @@ "12hour": "%b %-d %Y, %I:%M %p" }, "formattedTimestamp2": { - "24hour": "%d %b %H:%M:%S", - "12hour": "%m/%d %I:%M:%S%P" + "24hour": "d MMM HH:mm:ss", + "12hour": "MM/dd h:mm:ssa" }, "formattedTimestamp": { - "12hour": "%b %-d, %I:%M:%S %p", - "24hour": "%b %-d, %H:%M:%S" + "12hour": "MMM d, h:mm:ss aaa", + "24hour": "MMM d, HH:mm:ss" }, - "formattedTimestampOnlyMonthAndDay": "%b %-d" + "formattedTimestampOnlyMonthAndDay": "%b %-d", + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampFilename": { + "24hour": "MM-dd-yy-HH-mm-ss", + "12hour": "MM-dd-yy-h-mm-ss-a" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "MMM d, h:mm aaa", + "24hour": "MMM d, HH:mm" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "MMM d yyyy, h:mm aaa", + "24hour": "MMM d yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "MMM d", + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + } }, "selectItem": "Выбор {{item}}", "button": { - "apply": "Принять", + "apply": "Применить", "done": "Готово", "enabled": "Включено", "enable": "Включить", "save": "Сохранить", - "saving": "Сохранение...", + "saving": "Сохранение…", "fullscreen": "Полноэкранный режим", "pictureInPicture": "Картинка в картинке", "twoWayTalk": "Двусторонняя связь", "cameraAudio": "Аудио с камеры", "on": "Вкл", "edit": "Редактировать", - "copyCoordinates": "Копировать координаты", + "copyCoordinates": "Скопировать координаты", "delete": "Удалить", "yes": "Да", "no": "Нет", @@ -90,7 +111,7 @@ "reset": "Сбросить", "disabled": "Отключено", "close": "Закрыть", - "copy": "Копировать", + "copy": "Скопировать", "back": "Назад", "history": "История", "off": "Выкл", @@ -98,7 +119,7 @@ "unsuspended": "Возобновить", "play": "Воспроизвести", "unselect": "Снять выбор", - "export": "Экспорт", + "export": "Экспортировать", "deleteNow": "Удалить сейчас", "next": "Следующий" }, @@ -113,7 +134,7 @@ }, "menu": { "configuration": "Конфигурация", - "systemLogs": "Системные логи", + "systemLogs": "Логи системы", "settings": "Настройки", "configurationEditor": "Редактор конфигурации", "system": "Система", @@ -149,18 +170,19 @@ "ko": "한국어 (Корейский)", "he": "עברית (Иврит)", "withSystem": { - "label": "Использовать системные языковые настройки" - } + "label": "Использовать системные настройки языка" + }, + "yue": "粵語 (Кантонский)" }, "darkMode": { "withSystem": { - "label": "Использовать системные настройки светлого или тёмного режимов" + "label": "Использовать системные настройки светлой/тёмной темы" }, "label": "Тёмный режим", "light": "Светлый", "dark": "Тёмный" }, - "withSystem": "Система", + "withSystem": "Системный", "theme": { "label": "Тема", "blue": "Синяя", @@ -168,14 +190,15 @@ "green": "Зелёная", "nord": "Северная", "red": "Красная", - "contrast": "Высокий контраст" + "contrast": "Высокий контраст", + "highcontrast": "Контрастная" }, "help": "Помощь", "documentation": { "title": "Документация", "label": "Документация по Frigate" }, - "explore": "Обзор", + "explore": "Поиск событий", "restart": "Перезапуск Frigate", "live": { "title": "Прямой эфир", @@ -187,10 +210,10 @@ "title": "Камеры" } }, - "review": "Просмотр", - "export": "Экспорт", + "review": "Обзор событий", + "export": "Экспортировать", "uiPlayground": "Среда тестирования интерфейсов", - "faceLibrary": "Библиотека Лиц", + "faceLibrary": "Библиотека лиц", "user": { "title": "Пользователь", "account": "Аккаунт", diff --git a/web/public/locales/ru/components/camera.json b/web/public/locales/ru/components/camera.json index 88ed8e9c0..95f9efe85 100644 --- a/web/public/locales/ru/components/camera.json +++ b/web/public/locales/ru/components/camera.json @@ -12,7 +12,7 @@ }, "name": { "label": "Название", - "placeholder": "Введите название...", + "placeholder": "Введите название…", "errorMessage": { "exists": "Такое название группы камер уже существует.", "nameMustNotPeriod": "Название группы камер не должно содержать точки.", @@ -29,13 +29,13 @@ "camera": { "setting": { "label": "Настройки видеопотока", - "desc": "Изменить параметры прямой трансляции для панели этой группы камер. Эти настройки зависят от устройства/браузера.", + "desc": "Изменение параметров прямой трансляции для панели этой группы камер. Эти настройки зависят от устройства/браузера.", "audioIsAvailable": "Для этого потока доступен звук", "audioIsUnavailable": "Для этого потока звук недоступен", "audio": { "tips": { "title": "Аудио должно выводиться с вашей камеры и быть настроено в go2rtc для этого потока.", - "document": "Прочитать документацию " + "document": "Читать документацию " } }, "streamMethod": { @@ -43,24 +43,24 @@ "method": { "noStreaming": { "label": "Нет потока", - "desc": "Изображения с камеры будут обновляться только раз в минуту, и прямая трансляция происходить не будет." + "desc": "Кадры с камеры обновляются раз в минуту, без прямой трансляции." }, "smartStreaming": { "label": "Умный поток (рекомендуется)", - "desc": "Умный поток будет обновлять изображение с камеры раз в минуту при отсутствии активности для экономии трафика и ресурсов. При обнаружении активности изображение автоматически переключается на прямую трансляцию." + "desc": "Для экономии ресурсов поток обновляется раз в минуту. При обнаружении активности автоматически активируется прямая трансляция." }, "continuousStreaming": { "label": "Непрерывный поток", "desc": { "warning": "Непрерывная потоковая передача может привести к высокому потреблению трафика и проблемам с производительностью. Используйте с осторожностью.", - "title": "Изображение с камеры всегда будет транслироваться в реальном времени при отображении на панели, даже если активность не обнаружена." + "title": "Когда изображение выводится на панель, оно всегда обновляется в режиме реального времени, вне зависимости от обнаружения активности." } } } }, "compatibilityMode": { "label": "Режим совместимости", - "desc": "Включите эту опцию только если прямая трансляция с вашей камеры отображает цветовые артефакты и имеет диагональную линию с правой стороны изображения." + "desc": "Активируйте эту настройку только при появлении цветовых искажений или диагональной полосы с правого края в прямой трансляции." }, "title": "Настройки видеопотока {{cameraName}}" } diff --git a/web/public/locales/ru/components/dialog.json b/web/public/locales/ru/components/dialog.json index 531ee4b66..768c7977f 100644 --- a/web/public/locales/ru/components/dialog.json +++ b/web/public/locales/ru/components/dialog.json @@ -5,7 +5,7 @@ "restarting": { "title": "Frigate перезапускается", "content": "Эта страница перезагрузится через {{countdown}} сек.", - "button": "Принудительно перезагрузить сейчас" + "button": "Принудительная перезагрузка" } }, "explore": { @@ -29,16 +29,22 @@ }, "state": { "submitted": "Отправлено" + }, + "question": { + "ask_an": "Это объект — {{label}} ?", + "label": "Подтвердить эту метку для Frigate Plus", + "ask_a": "Это объект — {{label}}?", + "ask_full": "Это объект — {{untranslatedLabel}} ({{translatedLabel}})?" } } }, "video": { - "viewInHistory": "Посмотреть в Истории" + "viewInHistory": "Посмотреть в истории" } }, "export": { "time": { - "fromTimeline": "Выберите из Таймлайна", + "fromTimeline": "Выбрать на таймлайне", "custom": "Пользовательский", "start": { "title": "Время начала", @@ -53,7 +59,7 @@ "lastHour_many": "Последние {{count}} часов" }, "name": { - "placeholder": "Назовите экспорт" + "placeholder": "Введите название для экспорта" }, "select": "Выбрать", "export": "Экспорт", @@ -77,12 +83,12 @@ "disabled": "Рестриминг не включён для этой камеры.", "desc": { "title": "Настройте go2rtc для дополнительных вариантов просмотра в реальном времени и аудио для этой камеры.", - "readTheDocumentation": "Прочитать документацию " + "readTheDocumentation": "Читать документацию" } }, "debugView": "Режим отладки", "showStats": { - "label": "Показать статистику потока", + "label": "Отображение статистики потока", "desc": "Включите эту опцию, чтобы отображать статистику потока в виде наложения на изображение с камеры." } }, diff --git a/web/public/locales/ru/components/filter.json b/web/public/locales/ru/components/filter.json index 653a684ec..e1bc2904f 100644 --- a/web/public/locales/ru/components/filter.json +++ b/web/public/locales/ru/components/filter.json @@ -32,7 +32,7 @@ "estimatedSpeed": "Расчетная скорость ({{unit}})", "more": "Больше фильтров", "reset": { - "label": "Сбросить фильтры к значениям по умолчанию" + "label": "Сброс фильтров к значениям по умолчанию" }, "features": { "hasSnapshot": "Есть снимок", @@ -111,10 +111,10 @@ }, "recognizedLicensePlates": { "noLicensePlatesFound": "Номерных знаков не найдено.", - "placeholder": "Введите номер для поиска знака...", + "placeholder": "Введите номер для поиска знака…", "title": "Распознанные номерные знаки", "loadFailed": "Не удалось загрузить распознанные номерные знаки.", - "loading": "Загрузка распознанных номерных знаков...", + "loading": "Загрузка распознанных номерных знаков…", "selectPlatesFromList": "Выберите один или более знаков из списка." }, "review": { diff --git a/web/public/locales/ru/components/icons.json b/web/public/locales/ru/components/icons.json index 792966741..2d0f3ccd7 100644 --- a/web/public/locales/ru/components/icons.json +++ b/web/public/locales/ru/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "Выберите иконку", "search": { - "placeholder": "Поиск иконки..." + "placeholder": "Поиск иконки…" } } } diff --git a/web/public/locales/ru/objects.json b/web/public/locales/ru/objects.json index 659ff402c..c8cdac48d 100644 --- a/web/public/locales/ru/objects.json +++ b/web/public/locales/ru/objects.json @@ -1,7 +1,7 @@ { "dog": "Собака", "cat": "Кошка", - "animal": "Зверь", + "animal": "Животное", "bark": "Лай", "person": "Человек", "bicycle": "Велосипед", @@ -13,7 +13,7 @@ "mouse": "Мышь", "goat": "Коза", "airplane": "Самолет", - "keyboard": "Клавишный инструмент", + "keyboard": "Клавиатура", "boat": "Лодка", "bus": "Автобус", "train": "Поезд", @@ -80,7 +80,7 @@ "window": "Окно", "desk": "Стол", "toilet": "Туалет", - "tv": "ТВ", + "tv": "Телевизор", "laptop": "Ноутбук", "remote": "Пульт дистанционного управления", "cell_phone": "Мобильный телефон", @@ -103,7 +103,7 @@ "face": "Лицо", "license_plate": "Номерной знак", "package": "Посылка", - "bbq_grill": "Гриль для барбекю", + "bbq_grill": "Гриль и барбекю", "amazon": "Amazon", "usps": "USPS", "ups": "UPS", diff --git a/web/public/locales/ru/views/configEditor.json b/web/public/locales/ru/views/configEditor.json index e82cbf6ff..af3d00745 100644 --- a/web/public/locales/ru/views/configEditor.json +++ b/web/public/locales/ru/views/configEditor.json @@ -1,5 +1,5 @@ { - "configEditor": "Редактор конфига", + "configEditor": "Редактор конфигурации", "copyConfig": "Скопировать конфигурацию", "saveAndRestart": "Сохранить и перезапустить", "saveOnly": "Только сохранить", diff --git a/web/public/locales/ru/views/events.json b/web/public/locales/ru/views/events.json index 924aeeca9..d6c5d6b71 100644 --- a/web/public/locales/ru/views/events.json +++ b/web/public/locales/ru/views/events.json @@ -8,7 +8,7 @@ "allCameras": "Все камеры", "camera": "Камера", "empty": { - "alert": "Отсутствуют тревоги для проверки", + "alert": "Отсутствуют тревоги для просмотра", "detection": "Отсутствуют обнаружения для просмотра", "motion": "Не найдено данных о движении" }, @@ -19,7 +19,7 @@ "aria": "Выбор событий", "noFoundForTimePeriod": "Для этого периода времени не найдено ни одного события." }, - "documentTitle": "Просмотр - Frigate", + "documentTitle": "Обзор событий - Frigate", "recordings": { "documentTitle": "Записи - Frigate" }, @@ -31,5 +31,8 @@ "label": "Посмотреть новые элементы для просмотра", "button": "Новые элементы для просмотра" }, - "markTheseItemsAsReviewed": "Пометить эти элементы как просмотренные" + "markTheseItemsAsReviewed": "Пометить эти элементы как просмотренные", + "selected": "{{count}} выбрано", + "selected_one": "{{count}} выбрано", + "selected_other": "{{count}} выбрано" } diff --git a/web/public/locales/ru/views/explore.json b/web/public/locales/ru/views/explore.json index bb4560c36..1ef96769b 100644 --- a/web/public/locales/ru/views/explore.json +++ b/web/public/locales/ru/views/explore.json @@ -1,8 +1,8 @@ { "exploreIsUnavailable": { "embeddingsReindexing": { - "context": "Обзор станет доступен после завершения переиндексации эмбеддингов отслеживаемых объектов.", - "startingUp": "Запуск...", + "context": "Поиск станет доступен после завершения переиндексации эмбеддингов отслеживаемых объектов.", + "startingUp": "Запуск…", "estimatedTime": "Оставшееся время:", "finishingShortly": "Скоро завершится", "step": { @@ -11,7 +11,7 @@ "thumbnailsEmbedded": "Встроенные миниатюры: " } }, - "title": "Обзор недоступен", + "title": "Поиск событий недоступен", "downloadingModels": { "setup": { "visionModel": "Модель компьютерного зрения", @@ -21,14 +21,14 @@ }, "tips": { "context": "Возможно, вы захотите переиндексировать эмбеддинги отслеживаемых объектов после загрузки моделей.", - "documentation": "Прочитать документацию" + "documentation": "Читать документацию" }, "context": "Frigate загружает необходимые модели эмбеддингов для поддержки функции семантического поиска. Это может занять несколько минут в зависимости от скорости вашего интернет-соединения.", "error": "Произошла ошибка. Проверьте логи Frigate." } }, "generativeAI": "Генеративный ИИ", - "documentTitle": "Обзор - Frigate", + "documentTitle": "Поиск событий - Frigate", "details": { "timestamp": "Метка времени", "item": { @@ -36,7 +36,7 @@ "desc": "Детали элемента просмотра", "button": { "share": "Поделиться этим элементом просмотра", - "viewInExplore": "Смотреть в Обзоре" + "viewInExplore": "Смотреть в Поиске событий" }, "tips": { "hasMissingObjects": "Настройте конфигурацию, если хотите, чтобы Frigate сохранял отслеживаемые объекты для следующих меток: {{objects}}", @@ -125,7 +125,12 @@ }, "gone": "{{label}} покинул(а) зону", "heard": "Обнаружен звук {{label}}", - "external": "Обнаружен(а) {{label}}" + "external": "Обнаружен(а) {{label}}", + "header": { + "zones": "Зоны", + "ratio": "Соотношение", + "area": "Область" + } }, "annotationSettings": { "title": "Настройки аннотаций", @@ -137,7 +142,7 @@ "label": "Сдвиг аннотаций", "desc": "Эти данные поступают из потока детекции вашей камеры, но накладываются на изображения из потока записи. Потоки вряд ли идеально синхронизированы, поэтому ограничивающая рамка и видео могут не совпадать. Для корректировки используйте поле annotation_offset.", "millisecondsToOffset": "Смещение аннотаций детекции в миллисекундах. По умолчанию: 0", - "documentation": "Прочитать документацию ", + "documentation": "Читать документацию ", "tips": "СОВЕТ: Представьте, у вас клип события, где человек идёт слева направо. Если рамка на таймлайне постоянно смещена влево от человека — уменьшите значение. Если рамка опережает движение — увеличьте значение." } }, diff --git a/web/public/locales/ru/views/faceLibrary.json b/web/public/locales/ru/views/faceLibrary.json index 38a79fcf5..5f2365acf 100644 --- a/web/public/locales/ru/views/faceLibrary.json +++ b/web/public/locales/ru/views/faceLibrary.json @@ -37,8 +37,9 @@ "deletedName_many": "{{count}} лиц успешно удалено.", "uploadedImage": "Изображение успешно загружено.", "trainedFace": "Лицо успешно запомнено.", - "addFaceLibrary": "{{name}} успешно добавлен в Библиотеку Лиц!", - "updatedFaceScore": "Оценка лица успешно обновлена." + "addFaceLibrary": "{{name}} успешно добавлен(а) в Библиотеку лиц!", + "updatedFaceScore": "Оценка лица успешно обновлена.", + "renamedFace": "Лицо успешно переименовано в {{name}}" }, "error": { "deleteFaceFailed": "Не удалось удалить: {{errorMessage}}", @@ -46,7 +47,8 @@ "trainFailed": "Не удалось запомнить: {{errorMessage}}", "updateFaceScoreFailed": "Не удалось обновить оценку лица: {{errorMessage}}", "addFaceLibraryFailed": "Не удалось установить имя для лица: {{errorMessage}}", - "deleteNameFailed": "Не удалось удалить имя: {{errorMessage}}" + "deleteNameFailed": "Не удалось удалить имя: {{errorMessage}}", + "renameFaceFailed": "Не удалось переименовать лицо: {{errorMessage}}" } }, "deleteFaceLibrary": { @@ -54,25 +56,31 @@ "desc": "Вы уверены, что хотите удалить коллекцию «{{name}}»? Это действие безвозвратно удалит все лица в коллекции." }, "imageEntry": { - "dropActive": "Перетащите изображение сюда...", + "dropActive": "Перетащите изображение сюда…", "dropInstructions": "Перетащите изображение сюда или нажмите для выбора", "maxSize": "Макс. размер: {{size}}Мб", "validation": { "selectImage": "Пожалуйста, выберите файл изображения." } }, - "readTheDocs": "Прочитать документацию", - "trainFaceAs": "Запомнить Лицо как:", + "readTheDocs": "Читать документацию", + "trainFaceAs": "Запомнить лицо как:", "button": { "uploadImage": "Загрузить изображение", "deleteFaceAttempts": "Удалить попытки распознавания лиц", - "addFace": "Добавить Лицо", - "reprocessFace": "Переобработать Лицо" + "addFace": "Добавить лицо", + "reprocessFace": "Обработать лицо повторно", + "renameFace": "Переименовать лицо", + "deleteFace": "Удалить лицо" }, - "trainFace": "Запомнить Лицо", + "trainFace": "Запомнить лицо", "steps": { "faceName": "Введите имя лица", "nextSteps": "Следующие шаги", "uploadFace": "Загрузить изображение лица" + }, + "renameFace": { + "desc": "Введите новое имя для {{name}}", + "title": "Переименовать лицо" } } diff --git a/web/public/locales/ru/views/live.json b/web/public/locales/ru/views/live.json index b2d650d66..e7960d58f 100644 --- a/web/public/locales/ru/views/live.json +++ b/web/public/locales/ru/views/live.json @@ -81,7 +81,7 @@ "title": "Запись по требованию", "tips": "Создать ручное событие на основе настроек хранения записей этой камеры.", "playInBackground": { - "label": "Воспроизвести в фоне", + "label": "Воспроизведение в фоне", "desc": "Включите эту опцию, чтобы продолжать трансляцию при скрытом плеере." }, "showStats": { @@ -104,7 +104,7 @@ "stream": { "audio": { "tips": { - "documentation": "Прочитать документацию ", + "documentation": "Читать документацию ", "title": "Аудио должно выводиться с вашей камеры и быть настроено в go2rtc для этого потока." }, "available": "Для этого потока доступен звук", @@ -113,7 +113,7 @@ "title": "Поток", "twoWayTalk": { "tips": "Ваше устройство должно поддерживать эту функцию, а WebRTC должен быть настроен для двусторонней связи.", - "tips.documentation": "Прочитать документацию ", + "tips.documentation": "Читать документацию ", "available": "Двусторонняя связь доступна для этого потока", "unavailable": "Двусторонняя связь недоступна для этого потока" }, @@ -136,7 +136,7 @@ "cameraEnabled": "Камера активирована" }, "history": { - "label": "Показать архивные записи" + "label": "Отобразить архивные записи" }, "effectiveRetainMode": { "modes": { diff --git a/web/public/locales/ru/views/recording.json b/web/public/locales/ru/views/recording.json index 3a7f427c3..24d34f580 100644 --- a/web/public/locales/ru/views/recording.json +++ b/web/public/locales/ru/views/recording.json @@ -6,7 +6,7 @@ "toast": { "error": { "endTimeMustAfterStartTime": "Конечное время должно быть позже начального", - "noValidTimeSelected": "Выыбран недопустимый временной диапазон" + "noValidTimeSelected": "Выбран недопустимый временной диапазон" } } } diff --git a/web/public/locales/ru/views/search.json b/web/public/locales/ru/views/search.json index ae33aeb18..efed09673 100644 --- a/web/public/locales/ru/views/search.json +++ b/web/public/locales/ru/views/search.json @@ -47,7 +47,14 @@ "desc": { "text": "Фильтры помогают уточнить результаты поиска. Вот как их использовать в поле ввода:", "step": "", - "example": "Пример: cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM " + "example": "Пример: cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM ", + "step1": "Введите имя ключа фильтра с двоеточием (например, \"камеры:\").", + "step5": "Фильтр временного диапазона использует формат {{exampleTime}}.", + "exampleLabel": "Пример:", + "step2": "Выберите значение из предложенных или введите свое собственное.", + "step3": "Вы можете применять несколько фильтров, указывая их подряд через пробел.", + "step6": "Удаляйте фильтры, нажав на значок \"x\" рядом с ними.", + "step4": "Фильтры по дате (до: и после:) используют формат {{DateFormat}}." } }, "header": { @@ -62,6 +69,6 @@ "clear": "Очистить поиск похожего" }, "placeholder": { - "search": "Поиск..." + "search": "Поиск…" } } diff --git a/web/public/locales/ru/views/settings.json b/web/public/locales/ru/views/settings.json index eda8b207a..3c24dfa0d 100644 --- a/web/public/locales/ru/views/settings.json +++ b/web/public/locales/ru/views/settings.json @@ -8,7 +8,8 @@ "frigatePlus": "Настройки Frigate+ - Frigate", "authentication": "Настройки аутентификации - Frigate", "classification": "Настройки распознавания - Frigate", - "object": "Настройка объектов - Frigate" + "object": "Отладка - Frigate", + "notifications": "Настройки уведомлений - Frigate" }, "menu": { "cameras": "Настройки камеры", @@ -19,7 +20,7 @@ "notifications": "Уведомления", "frigateplus": "Frigate+", "ui": "Интерфейс", - "classification": "Распознование" + "classification": "Распознавание" }, "dialog": { "unsavedChanges": { @@ -50,7 +51,7 @@ "sunday": "Воскресенье", "monday": "Понедельник", "label": "Первый день недели", - "desc": "День, с которого начинаются недели в календаре обзоров." + "desc": "День, с которого начинаются недели в календаре обзора событий." } }, "recordingsViewer": { @@ -84,7 +85,7 @@ "classification": { "semanticSearch": { "title": "Семантический поиск", - "readTheDocumentation": "Открыть документацию", + "readTheDocumentation": "Читать документацию", "reindexNow": { "label": "Переиндексировать сейчас", "confirmButton": "Переиндексировать", @@ -93,43 +94,43 @@ "confirmTitle": "Подтвердить переиндексацию", "success": "Реиндексация запущена успешно.", "error": "Не удалось начать реиндексацию: {{errorMessage}}", - "confirmDesc": "Вы уверены, что хотите переиндексировать все векторные представления отслеживаемых объектов? Этот процесс будет выполняться в фоновом режиме, но может максимально загрузить ваш процессор и занять довольно много времени. Вы можете следить за ходом выполнения на странице «Обзор»." + "confirmDesc": "Вы уверены, что хотите переиндексировать все векторные представления отслеживаемых объектов? Этот процесс будет выполняться в фоновом режиме, но может максимально загрузить ваш процессор и занять довольно много времени. Вы можете следить за ходом выполнения на странице «Поиск событий»." }, "desc": "Семантический поиск во Frigate позволяет находить отслеживаемые объекты в записях с помощью самого изображения, пользовательского текстового описания или автоматически сгенерированного описания.", "modelSize": { "label": "Размер модели", "desc": "Размер модели, используемой для эмбеддингов семантического поиска.", "small": { - "title": "маленький", - "desc": "Использование маленький задействует квантованную версию модели, которая потребляет меньше оперативной памяти и работает быстрее на CPU с очень незначительной разницей в качестве эмбеддингов." + "title": "малый", + "desc": "Использование малой модели задействует квантованную версию модели, которая потребляет меньше оперативной памяти и работает быстрее на CPU с очень незначительной разницей в качестве эмбеддингов." }, "large": { "title": "большой", - "desc": "Использование большой задействует полную модель Jina и автоматически запускается на GPU, если это возможно." + "desc": "Использование большой модели задействует полную модель Jina и автоматически запускается на GPU, если это возможно." } } }, "faceRecognition": { "desc": "Функция распознавания лиц позволяет присваивать людям имена, и когда их лицо будет распознано, Frigate присвоит имя человека в качестве дополнительной метки. Эта информация содержится в пользовательском интерфейсе, фильтрах, а также в уведомлениях.", "title": "Распознавание лиц", - "readTheDocumentation": "Открыть документацию", + "readTheDocumentation": "Читать документацию", "modelSize": { "label": "Размер модели", "desc": "Размер модели, используемой для распознавания лиц.", "small": { "title": "малый", - "desc": "Использование маленький задействует модель FaceNet для эмбеддингов лиц, которая эффективно работает на большинстве CPU." + "desc": "Использование малой модели задействует модель FaceNet для эмбеддингов лиц, которая эффективно работает на большинстве CPU." }, "large": { "title": "большой", - "desc": "Использование большой задействует модель ArcFace для эмбеддингов лиц и автоматически запускается на GPU, если это возможно." + "desc": "При выборе большой модели используется модель векторизации лиц ArcFace, которая автоматически задействует GPU (если он доступен)." } } }, "licensePlateRecognition": { "title": "Распознавание номерных знаков", - "readTheDocumentation": "Открыть документацию", - "desc": "Frigate может распознавать номерные знаки на транспортных средствах и автоматически добавлять обнаруженные символы в поле recognized_license_plate или известное имя в качестве sub_label для объектов типа car. Типичный пример использования — чтение номеров машин, заезжающих на подъездную дорожку или проезжающих по улице." + "readTheDocumentation": "Читать документацию", + "desc": "Frigate способен распознавать автомобильные номера и автоматически добавлять обнаруженные символы в поле recognized_license_plate или известное имя в качестве sub_label для объектов типа 'car'. Типичный пример использования — чтение номеров автомобилей, заезжающих на подъездную дорожку или проезжающих по улице." }, "toast": { "success": "Настройки классификации сохранены. Перезапустите Frigate, чтобы применить внесенные изменения.", @@ -139,7 +140,8 @@ "birdClassification": { "title": "Классификация птиц", "desc": "Классификация птиц определяет известные виды с помощью квантованной модели TensorFlow. При распознавании птицы её общепринятое название добавляется как sub_label. Эти данные отображаются в интерфейсе, фильтрах и уведомлениях." - } + }, + "restart_required": "Требуется перезапуск (изменены настройки классификации)" }, "users": { "dialog": { @@ -149,14 +151,20 @@ "desc": "Создайте надежный пароль для защиты аккаунта." }, "deleteUser": { - "warn": "Вы уверены, что хотите удалить пользователя {{username}}?", + "warn": "Вы уверены, что хотите удалить пользователя {{username}}?", "title": "Удалить пользователя", "desc": "Это действие необратимо. Учётная запись пользователя и все связанные с ней данные будут удалены без возможности восстановления." }, "changeRole": { "title": "Изменить роль пользователя", - "desc": "Обновить права доступа для {{username}}", - "roleInfo": "

    Выберите подходящую роль для этого пользователя:

    " + "desc": "Обновить права доступа для {{username}}", + "roleInfo": { + "intro": "Выберите подходящую роль для этого пользователя:", + "viewer": "Наблюдатель", + "viewerDesc": "Доступны только панель мониторинга, обзор событий, поиск и экспорт данных.", + "admin": "Администратор", + "adminDesc": "Полный доступ ко всем функциям." + } }, "form": { "user": { @@ -222,7 +230,7 @@ }, "management": { "title": "Управление пользователями", - "desc": "Управление учетными записями пользователей этого экземпляра Frigate." + "desc": "Управление учетными записями пользователей Frigate." }, "updatePassword": "Обновить пароль", "addUser": "Добавить пользователя" @@ -230,14 +238,14 @@ "notification": { "title": "Уведомления", "notificationSettings": { - "documentation": "Прочитать документацию", + "documentation": "Читать документацию", "title": "Настройки уведомлений", "desc": "Frigate может отправлять push-уведомления на ваше устройство, когда приложение открыто в браузере или установлено как PWA." }, "notificationUnavailable": { - "documentation": "Прочитать документацию", + "documentation": "Читать документацию", "title": "Уведомления недоступны", - "desc": "Веб-уведомления требуют защищённого контекста (https://...). Это ограничение браузера. Получите безопасный доступ к Frigate, чтобы использовать уведомления." + "desc": "Веб-уведомления требуют защищённого контекста (https://…). Это ограничение браузера. Получите безопасный доступ к Frigate, чтобы использовать уведомления." }, "email": { "title": "Email", @@ -266,7 +274,8 @@ "24hours": "Приостановить на 24 часа", "untilRestart": "Приостановить до перезапуска", "5minutes": "Приостановить на 5 минут", - "10minutes": "Приостановить на 10 минут" + "10minutes": "Приостановить на 10 минут", + "suspend": "Приостановить" }, "toast": { "success": { @@ -284,26 +293,26 @@ "alerts": "Тревоги ", "desc": "Включить или отключить тревоги и обнаружения для этой камеры. В отключенном состоянии новые события не будут записываться.", "detections": "Обнаружения ", - "title": "Просмотр" + "title": "Обзор событий" }, "reviewClassification": { - "objectAlertsTips": "Все объекты {{alertsLabels}} на камере {{cameraName}} будут отображаться как Тревоги.", + "objectAlertsTips": "Все объекты {{alertsLabels}} на камере {{cameraName}} будут отображаться как тревоги.", "desc": "Frigate разделяет записи для проверки на два типа как «Тревоги» и «Обнаружения». По умолчанию все объекты person и car считаются Тревогами. Вы можете уточнить эту классификацию, настроив для них требуемые зоны.", "selectAlertsZones": "Выберите зоны для тревог", "zoneObjectDetectionsTips": { - "notSelectDetections": "Все объекты {{detectionsLabels}}, обнаруженные в {{zone}} на камере {{cameraName}}, которые не отнесены к Тревогам, будут отображаться как Обнаружения, независимо от того, в какой зоне они находятся.", + "notSelectDetections": "Все объекты {{detectionsLabels}}, обнаруженные в {{zone}} на камере {{cameraName}}, которые не отнесены к тревогам, будут отображаться как обнаружения, независимо от того, в какой зоне они находятся.", "text": "Все объекты {{detectionsLabels}}, не отнесённые к категории в {{zone}} на камере {{cameraName}}, будут отображаться как обнаружения.", "regardlessOfZoneObjectDetectionsTips": "Все объекты {{detectionsLabels}}, не отнесённые к категории на камере {{cameraName}}, будут отображаться как обнаружения, независимо от того, в какой зоне они находятся." }, - "zoneObjectAlertsTips": "Все объекты {{alertsLabels}}, обнаруженные в {{zone}} на камере {{cameraName}}, будут отображаться как Тревоги.", + "zoneObjectAlertsTips": "Все объекты {{alertsLabels}}, обнаруженные в {{zone}} на камере {{cameraName}}, будут отображаться как тревоги.", "selectDetectionsZones": "Выберите зоны для обнаружения", "noDefinedZones": "Для этой камеры не определено ни одной зоны.", "objectDetectionsTips": "Все объекты {{detectionsLabels}}, не отнесённые к категории на камере {{cameraName}}, будут отображаться как обнаружения, независимо от того, в какой зоне они находятся.", - "title": "Классификация просмотра", - "readTheDocumentation": "Прочитать документацию", - "limitDetections": "Ограничить обнаружения отдельными зонами", + "title": "Классификация событий", + "readTheDocumentation": "Читать документацию", + "limitDetections": "Ограничение обнаружения отдельными зонами", "toast": { - "success": "Конфигурация классификации просмотра была сохранена. Перезапустите Frigate для применения изменений." + "success": "Конфигурация классификации событий была сохранена. Перезапустите Frigate для применения изменений." } }, "title": "Настройки камеры", @@ -336,7 +345,7 @@ "clickDrawPolygon": "Кликните, чтобы нарисовать полигон на изображении.", "name": { "title": "Название", - "inputPlaceHolder": "Введите название...", + "inputPlaceHolder": "Введите название…", "tips": "Название должно содержать не менее 2 символов и не совпадать с названием камеры или другой зоны." }, "inertia": { @@ -370,12 +379,12 @@ "add": "Новая маска движения", "edit": "Редактировать маску движения", "context": { - "documentation": "Прочитать документацию", + "documentation": "Читать документацию", "title": "Маски движения используются, чтобы предотвратить срабатывание обнаружений на нежелательные типы движения (например, ветки деревьев, метки времени на камере). При этом маски движения нужно использовать очень умеренно: чрезмерное применение масок затруднит отслеживание объектов." }, "clickDrawPolygon": "Нажмите, чтобы нарисовать полигон на изображении.", "polygonAreaTooLarge": { - "documentation": "Прочитать документацию", + "documentation": "Читать документацию", "title": "Маска движения покрывает {{polygonArea}}% кадра. Большие маски движения не рекомендуются.", "tips": "Маски движения не предотвращают обнаружение объектов. Вместо этого следует использовать обязательную зону." }, @@ -472,11 +481,12 @@ "noName": "Маска объектов сохранена. Перезапустите Frigate для применения изменений." } } - } + }, + "restart_required": "Требуется перезапуск (изменены маски/зоны)" }, "motionDetectionTuner": { "desc": { - "documentation": "Прочитать руководство по настройке детекции движения", + "documentation": "Читать руководство по настройке детекции движения", "title": "Frigate использует детекцию движения как первичную проверку, чтобы определить, есть ли в кадре что-то, что стоит анализировать с помощью детекции объектов." }, "title": "Настройка детекции движения", @@ -486,7 +496,7 @@ }, "improveContrast": { "title": "Улучшить контрастность", - "desc": "Улучшение контрастности в тёмных сценах. Default: ON" + "desc": "Улучшение контрастности в тёмных сценах. По умолчанию: ВКЛ" }, "Threshold": { "title": "Порог", @@ -498,7 +508,7 @@ }, "debug": { "objectShapeFilterDrawing": { - "document": "Прочитать документацию ", + "document": "Читать документацию ", "title": "Отрисовка фильтра формы объекта", "desc": "Отображает прямоугольник на изображении, чтобы видеть данные о площади и соотношении сторон", "tips": "Включите эту опцию, чтобы нарисовать прямоугольник на изображении с камеры для отображения его площади и соотношения сторон. Эти значения можно затем использовать для настройки параметров фильтра формы объектов в вашем конфигурационном файле.", @@ -535,12 +545,12 @@ "motion": { "title": "Области движения", "desc": "Показать рамки вокруг областей, в которых определяется движение", - "tips": "

    Области движения


    Красные рамки будут наложены на участки кадра, где в данный момент обнаружено движение

    " + "tips": "

    Области движения


    Красные рамки будут наложены на участки кадра, где в данный момент обнаружено движение

    " }, "regions": { "title": "Регионы", "desc": "Показать рамку области интереса, отправленной детектору объектов", - "tips": "

    Рамки областей интереса


    Ярко-зелёные рамки будут наложены на области интереса в кадре, которые отправляются детектору объектов.

    " + "tips": "

    Рамки областей интереса


    Ярко-зелёные рамки будут наложены на области интереса в кадре, которые отправляются детектору объектов.

    " } }, "frigatePlus": { @@ -569,17 +579,22 @@ "trainDate": "Дата обучения", "error": "Не удалось загрузить информацию о модели", "availableModels": "Доступные модели", - "loadingAvailableModels": "Загрузка доступных моделей...", + "loadingAvailableModels": "Загрузка доступных моделей…", "modelSelect": "Здесь можно выбрать ваши доступные модели на Frigate+. Обратите внимание, что могут быть выбраны только модели, совместимые с текущей конфигурацией детектора.", "baseModel": "Базовая модель", "supportedDetectors": "Поддерживаемые детекторы", "dimensions": "Размеры", - "loading": "Загрузка информации о модели...", - "cameras": "Камеры" + "loading": "Загрузка информации о модели…", + "cameras": "Камеры", + "plusModelType": { + "baseModel": "Базовая модель", + "userModel": "Дообученная" + } }, "toast": { "success": "Настройки Frigate+ были сохранены. Перезапустите Frigate, чтобы применить изменения.", "error": "Не удалось сохранить изменения конфигурации: {{errorMessage}}" - } + }, + "restart_required": "Требуется перезапуск (изменена модель Frigate+)" } } diff --git a/web/public/locales/ru/views/system.json b/web/public/locales/ru/views/system.json index b8dbf381c..328cd6536 100644 --- a/web/public/locales/ru/views/system.json +++ b/web/public/locales/ru/views/system.json @@ -18,7 +18,7 @@ }, "copy": { "label": "Копировать в буфер", - "success": "Логи копированы в буфер", + "success": "Логи скопированы в буфер", "error": "Не удалось скопировать логи в буфер обмена" }, "type": { @@ -36,12 +36,13 @@ } }, "general": { - "title": "Общее", + "title": "Общие", "detector": { "title": "Детекторы", "inferenceSpeed": "Скорость вывода детектора", "cpuUsage": "Использование CPU детектором", - "memoryUsage": "Использование памяти детектором" + "memoryUsage": "Использование памяти детектором", + "temperature": "Температура детектора" }, "hardwareInfo": { "title": "Информация об оборудовании", @@ -60,19 +61,21 @@ "title": "Вывод Nvidia SMI", "name": "Название: {{name}}", "driver": "Драйвер: {{driver}}", - "cudaComputerCapability": "CUDA Compute Capability: {{cuda_compute}}", + "cudaComputerCapability": "Вычислительная способность CUDA: {{cuda_compute}}", "vbios": "Информация VBios: {{vbios}}" }, "closeInfo": { "label": "Закрыть информацию GPU" }, "copyInfo": { - "label": "Скопировать информацию GPU" + "label": "Скопировать информацию о GPU" }, "toast": { - "success": "Информация GPU скопирована в буфер обмена" + "success": "Информация о GPU скопирована в буфер обмена" } - } + }, + "npuMemory": "Память NPU", + "npuUsage": "Использование NPU" }, "otherProcesses": { "title": "Другие процессы", @@ -85,15 +88,15 @@ "overview": "Обзор", "recordings": { "title": "Записи", - "tips": "Это значение показывает общий объём хранилища, занятый записями в базе данных Frigate. Frigate не отслеживает использование хранилища для всех файлов на диске.", - "earliestRecording": "Самая ранняя доступная запись:" + "tips": "Это значение показывает, сколько места в хранилище занимают записи из базы данных Frigate. Frigate не учитывает другие файлы на диске.", + "earliestRecording": "Первая запись:" }, "cameraStorage": { "title": "Хранилище камеры", "camera": "Камера", "unusedStorageInformation": "Информация о неиспользованном хранилище", "storageUsed": "Хранилище", - "percentageOfTotalUsed": "Процент от общего объёма", + "percentageOfTotalUsed": "Доля (%)", "bandwidth": "Пропускная способность", "unused": { "title": "Не используется", @@ -105,7 +108,7 @@ "title": "Камеры", "overview": "Обзор", "info": { - "cameraProbeInfo": "Информация о тестировании камеры {{camera}}", + "cameraProbeInfo": "Информация о проверке камеры {{camera}}", "streamDataFromFFPROBE": "Данные о потоке получены от ffprobe.", "fetching": "Получение данных камеры", "stream": "Поток {{idx}}", @@ -122,11 +125,20 @@ }, "framesAndDetections": "Кадры/детекции", "label": { - "ffmpeg": "ffmpeg", + "ffmpeg": "FFmpeg", "camera": "камера", "capture": "захват", "skipped": "пропущено", - "detect": "детекция" + "detect": "детекция", + "cameraDetectionsPerSecond": "{{camName}} обнаружений в секунду", + "cameraSkippedDetectionsPerSecond": "{{camName}} пропущенных обнаружений в секунду", + "cameraFramesPerSecond": "{{camName}} кадров в секунду", + "overallFramesPerSecond": "общее количество кадров в секунду", + "overallDetectionsPerSecond": "общее количество обнаружений в секунду", + "overallSkippedDetectionsPerSecond": "общее количество пропущенных обнаружений в секунду", + "cameraFfmpeg": "{{camName}} FFmpeg", + "cameraCapture": "{{camName}} захват", + "cameraDetect": "{{camName}} обнаружения" }, "toast": { "success": { @@ -137,21 +149,31 @@ } } }, - "lastRefreshed": "Последнее обновление: ", + "lastRefreshed": "Обновлено: ", "stats": { - "ffmpegHighCpuUsage": "Камера {{camera}} использует чрезмерно много ресурсов CPU в FFMPEG ({{ffmpegAvg}}%)", + "ffmpegHighCpuUsage": "Камера {{camera}} использует чрезмерно много ресурсов CPU в FFmpeg ({{ffmpegAvg}}%)", "detectHighCpuUsage": "Камера {{camera}} использует слишком много ресурсов CPU для детекции ({{detectAvg}}%)", "healthy": "Система в порядке", - "reindexingEmbeddings": "Переиндексация эмбеддингов ({{processed}}% завершено)" + "reindexingEmbeddings": "Переиндексация эмбеддингов (выполнено {{processed}} %)", + "cameraIsOffline": "{{camera}} отключена", + "detectIsVerySlow": "{{detect}} идёт очень медленно ({{speed}} мс)", + "detectIsSlow": "{{detect}} идёт медленно ({{speed}} мс)" }, "enrichments": { - "title": "Обогащения данных", + "title": "Обогащение данных", "infPerSecond": "Выводов в секунду", "embeddings": { - "image_embedding_speed": "Скорость генерации эмбеддингов изображений", + "image_embedding_speed": "Скорость векторизации изображений", "plate_recognition_speed": "Скорость распознавания номеров", - "text_embedding_speed": "Скорость генерации текстовых эмбеддингов", - "face_embedding_speed": "Скорость генерации эмбеддингов лиц" + "text_embedding_speed": "Скорость векторизации текста", + "face_embedding_speed": "Скорость векторизации лиц", + "face_recognition_speed": "Скорость распознавания лиц", + "text_embedding": "Векторизация текста", + "yolov9_plate_detection_speed": "Скорость обнаружения номеров YOLOv9", + "yolov9_plate_detection": "Обнаружение номеров YOLOv9", + "face_recognition": "Распознавание лиц", + "plate_recognition": "Распознавание номеров", + "image_embedding": "Векторизация изображений" } } } diff --git a/web/public/locales/sl/audio.json b/web/public/locales/sl/audio.json new file mode 100644 index 000000000..e9f6fb7b6 --- /dev/null +++ b/web/public/locales/sl/audio.json @@ -0,0 +1,36 @@ +{ + "speech": "Govor", + "babbling": "Blebetanje", + "yell": "Kričanje", + "whispering": "Šepetanje", + "laughter": "Smejanje", + "crying": "Jokanje", + "sigh": "Vzdih", + "singing": "Petje", + "yodeling": "Jodlanje", + "rapping": "Rapanje", + "run": "Tek", + "whistling": "Žvižganje", + "breathing": "Dihanje", + "snoring": "Smrčanje", + "cough": "Kašelj", + "animal": "Žival", + "pets": "Ljubljenčki", + "dog": "Pes", + "cat": "Maček", + "meow": "Mijav", + "horse": "Konj", + "moo": "Mu", + "cowbell": "Kravji zvonec", + "pig": "Pujs", + "goat": "Koza", + "sheep": "Ovca", + "chicken": "Kokoš", + "turkey": "Puran", + "duck": "Raca", + "goose": "Gos", + "bird": "Ptič", + "radio": "Radio", + "television": "Televizija", + "footsteps": "Stopinje" +} diff --git a/web/public/locales/sl/common.json b/web/public/locales/sl/common.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/common.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/components/auth.json b/web/public/locales/sl/components/auth.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/components/auth.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/components/camera.json b/web/public/locales/sl/components/camera.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/components/camera.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/components/dialog.json b/web/public/locales/sl/components/dialog.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/components/dialog.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/components/filter.json b/web/public/locales/sl/components/filter.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/components/filter.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/components/icons.json b/web/public/locales/sl/components/icons.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/components/icons.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/components/input.json b/web/public/locales/sl/components/input.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/components/input.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/components/player.json b/web/public/locales/sl/components/player.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/components/player.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/objects.json b/web/public/locales/sl/objects.json new file mode 100644 index 000000000..4d8668eff --- /dev/null +++ b/web/public/locales/sl/objects.json @@ -0,0 +1,9 @@ +{ + "cat": "Maček", + "sheep": "Ovca", + "bird": "Ptič", + "animal": "Žival", + "goat": "Koza", + "horse": "Konj", + "dog": "Pes" +} diff --git a/web/public/locales/sl/views/configEditor.json b/web/public/locales/sl/views/configEditor.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/configEditor.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/views/events.json b/web/public/locales/sl/views/events.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/events.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/views/explore.json b/web/public/locales/sl/views/explore.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/explore.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/views/exports.json b/web/public/locales/sl/views/exports.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/exports.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/views/faceLibrary.json b/web/public/locales/sl/views/faceLibrary.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/faceLibrary.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/views/live.json b/web/public/locales/sl/views/live.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/live.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/views/recording.json b/web/public/locales/sl/views/recording.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/recording.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/views/search.json b/web/public/locales/sl/views/search.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/search.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/views/settings.json b/web/public/locales/sl/views/settings.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/settings.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sl/views/system.json b/web/public/locales/sl/views/system.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/sl/views/system.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/sv/components/filter.json b/web/public/locales/sv/components/filter.json index bb63a24db..da7cd7fe4 100644 --- a/web/public/locales/sv/components/filter.json +++ b/web/public/locales/sv/components/filter.json @@ -13,5 +13,59 @@ "all": { "title": "Alla zoner" } + }, + "features": { + "hasSnapshot": "Har ögonblicksbild" + }, + "sort": { + "dateAsc": "Datum (Stigande)", + "label": "Sortera", + "scoreAsc": "Objektpoäng (Stigande)", + "speedDesc": "Uppskattad Hastighet (Fallande)", + "relevance": "Relevans", + "dateDesc": "Datum (Fallande)", + "scoreDesc": "Objektpoäng (Fallande)", + "speedAsc": "Uppskattad Hastighet (Stigande)" + }, + "cameras": { + "all": { + "short": "Kameror", + "title": "Alla Kameror" + }, + "label": "Kamerafilter" + }, + "explore": { + "settings": { + "title": "Inställningar", + "defaultView": { + "title": "Standard Vy" + }, + "searchSource": { + "options": { + "description": "Beskrivning" + } + } + }, + "date": { + "selectDateBy": { + "label": "Välj datum att filtrera efter" + } + } + }, + "review": { + "showReviewed": "Visa Kontrollerade" + }, + "motion": { + "showMotionOnly": "Visa Endast Rörelse" + }, + "score": "Poäng", + "dates": { + "all": { + "short": "Datum" + } + }, + "recognizedLicensePlates": { + "noLicensePlatesFound": "Inga registreringsplåtar hittade.", + "selectPlatesFromList": "Välj en eller flera registreringsplåtar från listan." } } diff --git a/web/public/locales/sv/components/icons.json b/web/public/locales/sv/components/icons.json index 60edad31e..e15428582 100644 --- a/web/public/locales/sv/components/icons.json +++ b/web/public/locales/sv/components/icons.json @@ -1,7 +1,7 @@ { "iconPicker": { "search": { - "placeholder": "Sök efter ikon..." + "placeholder": "Sök efter ikon…" }, "selectIcon": "Välj en ikon" } diff --git a/web/public/locales/sv/views/explore.json b/web/public/locales/sv/views/explore.json index 20ad1360b..32a06c179 100644 --- a/web/public/locales/sv/views/explore.json +++ b/web/public/locales/sv/views/explore.json @@ -3,7 +3,7 @@ "documentTitle": "Utforska - Frigate", "exploreIsUnavailable": { "embeddingsReindexing": { - "startingUp": "Startar upp...", + "startingUp": "Startar upp…", "estimatedTime": "Beräknad återstående tid:", "finishingShortly": "Snart klar" }, diff --git a/web/public/locales/sv/views/faceLibrary.json b/web/public/locales/sv/views/faceLibrary.json index 200825c2c..7e533000a 100644 --- a/web/public/locales/sv/views/faceLibrary.json +++ b/web/public/locales/sv/views/faceLibrary.json @@ -8,7 +8,7 @@ }, "description": { "placeholder": "Ange ett namn för denna samling", - "addFace": "Gå genom för att lägga till nya ansikte till biblioteket" + "addFace": "Gå genom för att lägga till nya ansikte till biblioteket." }, "documentTitle": "Ansiktsbibliotek - Frigate", "steps": { @@ -26,6 +26,7 @@ "title": "Träna" }, "uploadFaceImage": { - "title": "Ladda upp ansiktsbild" + "title": "Ladda upp ansiktsbild", + "desc": "Ladda upp en bild för att skanna efter ansikte och inkludera {{pageToggle}}" } } diff --git a/web/public/locales/sv/views/live.json b/web/public/locales/sv/views/live.json index 63554ffca..9c00e9683 100644 --- a/web/public/locales/sv/views/live.json +++ b/web/public/locales/sv/views/live.json @@ -6,6 +6,43 @@ "disable": "Avaktivera Two Way Talk" }, "cameraAudio": { - "disable": "Inaktivera kameraljud" - } + "disable": "Inaktivera kameraljud", + "enable": "Aktivera kameraljud" + }, + "ptz": { + "zoom": { + "in": { + "label": "Zooma in PTZ kamera" + }, + "out": { + "label": "Zooma ut PTZ kamera" + } + } + }, + "streamStats": { + "enable": "Visa videostatistik", + "disable": "Dölj videostatistik" + }, + "detect": { + "enable": "Aktivera detektering", + "disable": "Avaktivera detektering" + }, + "recording": { + "enable": "Aktivera inspelning", + "disable": "Avaktivera inspelning" + }, + "snapshots": { + "enable": "Aktivera ögonblicksbilder", + "disable": "Avaktivera ögonblicksbilder" + }, + "audioDetect": { + "enable": "Aktivera ljudaktivering", + "disable": "Avaktivera ljudaktivering" + }, + "autotracking": { + "enable": "Aktivera automatisk panorering", + "disable": "Avaktivera automatisk panorering" + }, + "notifications": "Notifikationer", + "audio": "Ljud" } diff --git a/web/public/locales/tr/common.json b/web/public/locales/tr/common.json index 2bba090c7..a738ba068 100644 --- a/web/public/locales/tr/common.json +++ b/web/public/locales/tr/common.json @@ -20,12 +20,12 @@ "last14": "Son 14 gün", "24hours": "24 saat", "formattedTimestamp": { - "24hour": "%-d %b , %H:%M:%S", - "12hour": "%-d %b, %I:%M:%S %p" + "24hour": "d MMM, HH:mm:ss", + "12hour": "d MMM, h:mm:ss aaa" }, "formattedTimestamp2": { - "24hour": "%b %d %H:%M:%S", - "12hour": "%m/%d %I:%M:%S%P" + "24hour": "d MMM HH:mm:ss", + "12hour": "dd/MM h:mm:ssa" }, "second_one": "{{time}} saniye", "second_other": "{{time}} saniye", @@ -56,12 +56,33 @@ }, "s": "{{time}}sn", "month_one": "{{time}} ay", - "month_other": "{{time}} ay" + "month_other": "{{time}} ay", + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "d MMM, h:mm aaa", + "24hour": "d MMM, HH:mm" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "d MMM yyyy, h:mm aaa", + "24hour": "d MMM yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "d MMM", + "formattedTimestampFilename": { + "12hour": "dd-MM-yy-h-mm-ss-a", + "24hour": "dd-MM-yy-HH-mm-ss" + } }, "button": { "off": "KAPALI", "next": "Sonraki", - "saving": "Kaydediliyor...", + "saving": "Kaydediliyor…", "back": "Geri", "unselect": "Seçimi kaldır", "info": "Bilgi", diff --git a/web/public/locales/tr/components/camera.json b/web/public/locales/tr/components/camera.json index bac1ea48c..a8620b3fe 100644 --- a/web/public/locales/tr/components/camera.json +++ b/web/public/locales/tr/components/camera.json @@ -1,7 +1,7 @@ { "group": { "name": { - "placeholder": "Bir isim girin...", + "placeholder": "Bir isim girin…", "label": "İsim", "errorMessage": { "nameMustNotPeriod": "Kamera grubu ismi nokta içeremez.", diff --git a/web/public/locales/tr/components/dialog.json b/web/public/locales/tr/components/dialog.json index 254e94f1f..02c348bd2 100644 --- a/web/public/locales/tr/components/dialog.json +++ b/web/public/locales/tr/components/dialog.json @@ -23,6 +23,12 @@ "label": "Bu etiketi Frigate+ için onaylamaktan vazgeç", "false_one": "Bu bir {{label}} değil", "false_other": "Bu bir {{label}} değil" + }, + "question": { + "ask_an": "Bu nesne bir {{label}} mi?", + "label": "Bu etikeri Frigate+ için onaylayın", + "ask_a": "Bu nesne bir {{label}} mi?", + "ask_full": "Bu nesne bir {{untranslatedLabel}} ({{translatedLabel}}) mi?" } }, "submitToPlus": { @@ -73,7 +79,7 @@ "restreaming": { "disabled": "Bu kamera için Yeniden Akış devre dışı.", "desc": { - "readTheDocumentation": "Dökümantasyonu oku ", + "readTheDocumentation": "Dökümantasyonu oku", "title": "Bu kameradan ek canlı gösterim seçenekleri ve sesli yayın almak için go2rtc'yi yapılandırın." } }, diff --git a/web/public/locales/tr/components/filter.json b/web/public/locales/tr/components/filter.json index b2c5e9aab..393f996ed 100644 --- a/web/public/locales/tr/components/filter.json +++ b/web/public/locales/tr/components/filter.json @@ -111,8 +111,8 @@ }, "recognizedLicensePlates": { "selectPlatesFromList": "Listeden bir veya birden fazla plaka seçin.", - "placeholder": "Plaka ara...", - "loading": "Tanınan plakalar yükleniyor...", + "placeholder": "Plaka ara…", + "loading": "Tanınan plakalar yükleniyor…", "title": "Tanınan Plakalar", "noLicensePlatesFound": "Plaka bulunamadı.", "loadFailed": "Tanınan plakalar yüklenemedi." diff --git a/web/public/locales/tr/components/icons.json b/web/public/locales/tr/components/icons.json index b165304ee..30c0e1d44 100644 --- a/web/public/locales/tr/components/icons.json +++ b/web/public/locales/tr/components/icons.json @@ -1,7 +1,7 @@ { "iconPicker": { "search": { - "placeholder": "Bir simge arayın..." + "placeholder": "Bir simge arayın…" }, "selectIcon": "Bir simge belirleyin" } diff --git a/web/public/locales/tr/views/events.json b/web/public/locales/tr/views/events.json index 1c496c9fb..2358dd7b5 100644 --- a/web/public/locales/tr/views/events.json +++ b/web/public/locales/tr/views/events.json @@ -31,5 +31,7 @@ }, "timeline.aria": "Zaman şeridi seçin", "markTheseItemsAsReviewed": "Bunları incelendi olarak işaretle", - "allCameras": "Tüm Kameralar" + "allCameras": "Tüm Kameralar", + "selected_one": "{{count}} seçildi", + "selected_other": "{{count}} seçildi" } diff --git a/web/public/locales/tr/views/explore.json b/web/public/locales/tr/views/explore.json index c01aa6d69..73b7031ee 100644 --- a/web/public/locales/tr/views/explore.json +++ b/web/public/locales/tr/views/explore.json @@ -65,13 +65,16 @@ "desc": "Bu {{label}} için yeni bir plaka değeri girin", "descNoLabel": "Bu nesne için yeni bir plaka değeri girin" }, - "recognizedLicensePlate": "Tanınan Plaka" + "recognizedLicensePlate": "Tanınan Plaka", + "snapshotScore": { + "label": "Fotoğraf Skoru" + } }, "generativeAI": "Üretken Yapay Zeka", "exploreIsUnavailable": { "title": "Keşfet şu anda kullanılamıyor", "embeddingsReindexing": { - "startingUp": "Başlatılıyor.", + "startingUp": "Başlatılıyor…", "estimatedTime": "Tahmini kalan süre:", "step": { "thumbnailsEmbedded": "Gömü eklenen küçük resimler: ", @@ -119,7 +122,12 @@ "other": "{{label}} {{attribute}} olarak tespit edildi", "faceOrLicense_plate": "{{label}} için {{attribute}} tespit edildi" }, - "gone": "{{label}} ayrıldı" + "gone": "{{label}} ayrıldı", + "header": { + "zones": "Alanlar", + "ratio": "Oran", + "area": "Alan" + } }, "annotationSettings": { "offset": { diff --git a/web/public/locales/tr/views/faceLibrary.json b/web/public/locales/tr/views/faceLibrary.json index b6a0b006f..29668ac3b 100644 --- a/web/public/locales/tr/views/faceLibrary.json +++ b/web/public/locales/tr/views/faceLibrary.json @@ -34,10 +34,12 @@ "deleteFaceAttempts": "Yüz Denemelerini Sil", "addFace": "Yüz Ekle", "reprocessFace": "Yüzü Yeniden İşle", - "uploadImage": "Resim Yükle" + "uploadImage": "Resim Yükle", + "renameFace": "Yüzü Yeniden Adlandır", + "deleteFace": "Yüzü Sil" }, "imageEntry": { - "dropActive": "Resmi buraya bırakın...", + "dropActive": "Resmi buraya bırakın…", "maxSize": "Maksimum boyut: {{size}} MB", "validation": { "selectImage": "Lütfen bir resim dosyası seçin." @@ -54,7 +56,8 @@ "addFaceLibrary": "{{name}} başarıyla Yüz Kütüphanesi’ne eklendi!", "trainedFace": "Yüz başarıyla eğitildi.", "uploadedImage": "Resim başarıyla yüklendi.", - "updatedFaceScore": "Yüz skoru başarıyla güncellendi." + "updatedFaceScore": "Yüz skoru başarıyla güncellendi.", + "renamedFace": "Yüz başarıyla {{name}} olarak adlandırıldı" }, "error": { "uploadingImageFailed": "Resim yüklenemedi: {{errorMessage}}", @@ -62,10 +65,20 @@ "updateFaceScoreFailed": "Yüz skoru güncellenemedi: {{errorMessage}}", "trainFailed": "Eğitme işlemi başarısız oldu: {{errorMessage}}", "deleteFaceFailed": "Silme işlemi başarısız: {{errorMessage}}", - "deleteNameFailed": "İsim silinemedi: {{errorMessage}}" + "deleteNameFailed": "İsim silinemedi: {{errorMessage}}", + "renameFaceFailed": "Yüz yeniden adlandırılamadı: {{errorMessage}}" } }, "readTheDocs": "Dokümantasyonu oku", "selectFace": "Yüz Seçin", - "trainFace": "Yüzü Eğit" + "trainFace": "Yüzü Eğit", + "steps": { + "faceName": "Yüze İsim Verin", + "uploadFace": "Yüz Resmi Yükle", + "nextSteps": "Sonraki Adımlar" + }, + "renameFace": { + "title": "Yüzü Yeniden Adlandır", + "desc": "{{name}} için yeni bir isim girin" + } } diff --git a/web/public/locales/tr/views/search.json b/web/public/locales/tr/views/search.json index a7b024891..059023308 100644 --- a/web/public/locales/tr/views/search.json +++ b/web/public/locales/tr/views/search.json @@ -34,7 +34,14 @@ "desc": { "text": "Filtreler arama sonuçlarınızı daraltmanıza yardımcı olur. Giriş alanındaki kullanımları şöyledir:", "step": "", - "example": "Örnek(anahtar kelimeler ingilizce olmalıdır): cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM " + "example": "Örnek(anahtar kelimeler ingilizce olmalıdır): cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM ", + "exampleLabel": "Örnek:", + "step1": "Bir filtre anahtarını iki nokta üst üste ile beraber yazın (örn. belli kameraları seçmek için \"cameras:\").", + "step2": "Önerilen bir değer seçin veya kendiniz girin.", + "step3": "Birden fazla filtreyi aralarında boşluk bırakarak kullanabilirsiniz.", + "step4": "Tarih filtreleri (before: ve after:) {{DateFormat}} formatını kullanır.", + "step5": "Zaman aralığı filtreleri {{exampleTime}} formatını kullanır.", + "step6": "Filtreleri kaldırmak için yanlarındaki çarpıya basın." } }, "toast": { @@ -54,7 +61,7 @@ } }, "placeholder": { - "search": "Ara..." + "search": "Ara…" }, "similaritySearch": { "active": "Benzerlik araması aktif", diff --git a/web/public/locales/tr/views/settings.json b/web/public/locales/tr/views/settings.json index 1e491b52a..d7cac3d2b 100644 --- a/web/public/locales/tr/views/settings.json +++ b/web/public/locales/tr/views/settings.json @@ -129,7 +129,8 @@ "birdClassification": { "title": "Kuş Sınıflandırma", "desc": "Kuş Sınıflandırma özelliği, bilinen kuş türlerini kuantize edilmiş bir Tensorflow modeli kullanarak teşhis etmenizi sağlar. Model bir kuş türünü teşhis ettiğinde, Frigate, bu türün adını alt etiket olarak ekler. Bu bilgi; kullanıcı arayüzü, filtreler ve bildirimlerde gösterilir." - } + }, + "restart_required": "Yeniden Başlatma Gerekli (Sınıflandırma ayarları değiştirildi)" }, "cameraSetting": { "camera": "Kamera", @@ -242,7 +243,7 @@ "point_one": "{{count}} nokta", "point_other": "{{count}} nokta", "name": { - "inputPlaceHolder": "Bir isim girin...", + "inputPlaceHolder": "Bir isim girin…", "title": "İsim", "tips": "Ad en az 2 karakter olmalı ve bir kamera veya başka bir bölgenin adı olmamalıdır." }, @@ -331,7 +332,8 @@ "documentTitle": "Nesne Maskesini Düzenle - Frigate", "label": "Nesne Maskeleri", "clickDrawPolygon": "Görüntü üzerinde bir çokgen çizmek için tıklayın." - } + }, + "restart_required": "Yeniden Başlatma Gerekli (maskeler/alanlar değiştirildi)" }, "motionDetectionTuner": { "title": "Hareket Algılama Ayarlayıcı", @@ -372,12 +374,12 @@ "motion": { "title": "Hareket kutuları", "desc": "Hareketin algılandığı alanların etrafında çerçeve göster", - "tips": "

    Hareket Kutuları


    Hareketin algılandığı alanlar kırmızı çerçeve ile gösterilecektir.

    " + "tips": "

    Hareket Kutuları


    Hareketin algılandığı alanlar kırmızı çerçeve ile gösterilecektir.

    " }, "regions": { "title": "Tespit Bölgeleri", "desc": "Nesne algılayıcıya gönderilen tespit alanlarını göster", - "tips": "

    Bölge Kutuları


    Görüntüdeki nesne dedektörüne gönderilen tespit alanları parlak yeşil renk çerçeve ile gösterilir.

    " + "tips": "

    Bölge Kutuları


    Görüntüdeki nesne dedektörüne gönderilen tespit alanları parlak yeşil renk çerçeve ile gösterilir.

    " }, "objectShapeFilterDrawing": { "title": "Nesne Şekil Filtresi Çizimi", @@ -472,7 +474,7 @@ }, "deleteUser": { "title": "Kullanıcıyı Sil", - "warn": "{{username}}'i silmek istediğinizden emin misiniz?", + "warn": "{{username}}'i silmek istediğinizden emin misiniz?", "desc": "Bu işlem geri alınamaz. Bu, kullanıcı hesabını kalıcı olarak silecek ve tüm ilişkili verileri kaldıracaktır." }, "passwordSetting": { @@ -482,8 +484,14 @@ }, "changeRole": { "title": "Kullanıcı Rolünü Değiştir", - "desc": "{{username}} için izinleri güncelle", - "roleInfo": "

    Bu kullanıcı için uygun rolü seçin:

    " + "desc": "{{username}} için izinleri güncelle", + "roleInfo": { + "adminDesc": "Tüm özelliklere tam erişim.", + "intro": "Bu kullanıcı için bir rol seçin:", + "admin": "Yönetici", + "viewer": "Görüntüleyici", + "viewerDesc": "Yalnızca Canlı, İncele, Keşfet ve Dışa Aktar'a girebilir." + } } }, "updatePassword": "Parola Belirle" @@ -498,7 +506,7 @@ "notificationUnavailable": { "title": "Bildirimler Kullanılamıyor", "documentation": "Dökümantasyonu Oku", - "desc": "Web push bildirimleri güvenli bağlantı (https://...) gerektirir. Bu tarayıcınızın bir sınırlandırmasıdır. Bildirimleri kullanmak için Frigate arayüzüne HTTPS ile erişin." + "desc": "Web push bildirimleri güvenli bağlantı (https://…) gerektirir. Bu tarayıcınızın bir sınırlandırmasıdır. Bildirimleri kullanmak için Frigate arayüzüne HTTPS ile erişin." }, "globalSettings": { "title": "Genel Ayarlar", @@ -562,8 +570,8 @@ }, "modelInfo": { "error": "Model bilgileri yüklenemedi", - "loadingAvailableModels": "Kullanılabilir modeller yükleniyor...", - "loading": "Model bilgileri yükleniyor...", + "loadingAvailableModels": "Kullanılabilir modeller yükleniyor…", + "loading": "Model bilgileri yükleniyor…", "modelType": "Model Türü", "dimensions": "Boyutlar", "availableModels": "Kullanılabilir Modeller", @@ -572,11 +580,16 @@ "title": "Model Bilgileri", "trainDate": "Eğitim Tarihi", "supportedDetectors": "Desteklenen Algılayıcılar", - "cameras": "Kameralar" + "cameras": "Kameralar", + "plusModelType": { + "userModel": "İnce Ayarlı", + "baseModel": "Baz Model" + } }, "toast": { "success": "Frigate+ ayarları kaydedildi. Değişiklikleri uygulamak için Frigate'i yeniden başlatın.", "error": "Yapılandırma değişiklikleri kaydedilemedi: {{errorMessage}}" - } + }, + "restart_required": "Yeniden Başlatma Gerekli (Frigate+ modeli değiştirildi)" } } diff --git a/web/public/locales/tr/views/system.json b/web/public/locales/tr/views/system.json index 755508027..47b756975 100644 --- a/web/public/locales/tr/views/system.json +++ b/web/public/locales/tr/views/system.json @@ -41,7 +41,9 @@ "gpuUsage": "GPU Kullanımı", "gpuMemory": "GPU Belleği", "gpuEncoder": "GPU Kodlayıcı", - "title": "Donanım Bilgisi" + "title": "Donanım Bilgisi", + "npuUsage": "NPU Kullanımı", + "npuMemory": "NPU Bellek Kullanımı" }, "otherProcesses": { "title": "Diğer İşlemler", @@ -118,14 +120,24 @@ "ffmpegHighCpuUsage": "{{camera}} FFMPEG'te yüksek miktarda CPU kullanıyor (%{{ffmpegAvg}})", "reindexingEmbeddings": "Gömüler yeniden dizinleniyor (%{{processed}} tamamlandı)", "detectHighCpuUsage": "{{camera}} tespitte yüksek miktarda CPU kullanıyor (%{{detectAvg}})", - "healthy": "Sistem sağlıklı" + "healthy": "Sistem sağlıklı", + "detectIsVerySlow": "{{detect}} çok yavaş çalışıyor ({{speed}} ms)", + "cameraIsOffline": "{{camera}} çevrimdışı", + "detectIsSlow": "{{detect}} yavaş çalışıyor ({{speed}} ms)" }, "enrichments": { "embeddings": { "image_embedding_speed": "Resim Gömü Hızı", "text_embedding_speed": "Metin Gömü Hızı", "plate_recognition_speed": "Plaka Tanıma Hızı", - "face_embedding_speed": "Yüz Gömü Hızı" + "face_embedding_speed": "Yüz Gömü Hızı", + "image_embedding": "Resim Gömüleme", + "text_embedding": "Metin Gömülüeme", + "face_recognition": "Yüz Tanıma", + "plate_recognition": "Plaka Tanıma", + "face_recognition_speed": "Yüz Tanıma Hızı", + "yolov9_plate_detection_speed": "YOLOv9 Plaka Tanıma Hızı", + "yolov9_plate_detection": "YOLOv9 Plaka Tanıma" }, "infPerSecond": "Saniye Başına Çıkarım", "title": "Zenginleştirmeler" diff --git a/web/public/locales/uk/audio.json b/web/public/locales/uk/audio.json index 378f2c797..b5035e11c 100644 --- a/web/public/locales/uk/audio.json +++ b/web/public/locales/uk/audio.json @@ -1,8 +1,429 @@ { - "child_singing": "Дитячий садок", + "child_singing": "Дитячий спів", "breathing": "Дихання", "cough": "Кашель", "throat_clearing": "Прозорий очищення", "mantra": "Мантра", - "synthetic_singing": "Синтетична обробка" + "synthetic_singing": "Синтетичний спів", + "whimper_dog": "Собаче скиглення", + "cat": "Кіт", + "cowbell": "Коров'ячий здвіночок", + "whispering": "Шепіт", + "run": "Біг", + "choir": "Хор", + "chewing": "Жування", + "pets": "Домашні улюбленці", + "dog": "Собака", + "bark": "Лай", + "meow": "Котяче нявчання", + "horse": "Кінь", + "moo": "Мичання", + "goat": "Коза", + "sheep": "Вівця", + "chicken": "Курка", + "speech": "Мо́влення", + "idling": "Холостий хід", + "railroad_car": "Залізничний вагон", + "alarm": "Сигналізація", + "fire_alarm": "Пожежна сигналізація", + "flute": "Флейта", + "musical_instrument": "Музичний інструмент", + "buzz": "Дзижчання", + "fly": "Муха", + "vocal_music": "Вокальна музика", + "motorcycle": "Мотоцикл", + "rustling_leaves": "Шелест листя", + "crackle": "Потріскування", + "thunder": "Грім", + "rock_and_roll": "Рок-н-рол", + "theme_music": "Тематична музика", + "exciting_music": "Енергійна музика", + "water": "Вода", + "violin": "Скрипка", + "tubular_bells": "Трубчасті дзвони", + "christmas_music": "Різдвяна музика", + "house_music": "Хауз", + "fire": "Вогонь", + "tapping": "Постукування", + "scratching": "Скретчінг", + "drum_kit": "Ударна установка", + "engine": "Двигун", + "light_engine": "Легкий двигун", + "swing_music": "Свінг", + "opera": "Опера", + "electronic_dance_music": "Електронна танцювальна музика", + "dance_music": "Танцювальна музика", + "thunderstorm": "Гроза", + "waves": "Хвилі", + "trombone": "Тромбон", + "music_of_asia": "Азіатська музика", + "tools": "Iнструменти", + "wind_chime": "Музика вітру", + "singing_bowl": "Співоча чаша", + "boat": "Човен", + "sailboat": "Вітрильник", + "rowboat": "Весловий човен", + "power_windows": "Електросклопідйомники", + "cutlery": "Столові прибори", + "mechanical_fan": "Механічний вентилятор", + "traffic_noise": "Дорожній шум", + "aircraft_engine": "Двигун повітряного судна", + "dental_drill's_drill": "Стоматологічна бормашина", + "door": "Двері", + "accelerating": "Прискорення", + "siren": "Сирена", + "typewriter": "Друкарська машинка", + "computer_keyboard": "Комп'ютерна клавіатура", + "smoke_detector": "Датчик диму", + "hammer": "Молот", + "gunshot": "Постріл", + "machine_gun": "Автомат", + "fireworks": "Феєрверки", + "firecracker": "Петарда", + "heartbeat": "Серцебиття", + "heart_murmur": "Серцевий шум", + "footsteps": "Кроки", + "burping": "Відрижка", + "hiccup": "Ікання", + "fart": "Пукання", + "finger_snapping": "Клацати пальцями", + "applause": "Оплески", + "chatter": "Балаканина", + "animal": "Тварина", + "yip": "Гавкання", + "babbling": "Бурмотіння", + "yell": "Кричати", + "bow_wow": "Гав гав", + "growling": "Ревіння", + "purr": "Муркотіти", + "hiss": "Шипіння", + "clip_clop": "Цокання", + "neigh": "іржання", + "oink": "Рохкання", + "bleat": "Мекання", + "cluck": "Кудкудакання", + "cock_a_doodle_doo": "Кукурікання", + "honk": "Гелготання", + "roar": "Гуркіт", + "bird": "Птах", + "chirp": "Цвірінькання", + "pigeon": "Голуб", + "coo": "Воркування", + "crow": "Ворона", + "caw": "Каркання", + "owl": "Сова", + "hoot": "Ухання", + "flapping_wings": "Ляскання крил", + "dogs": "Собаки", + "rats": "Щури", + "mouse": "Миш", + "patter": "Шерех", + "insect": "Комара", + "cricket": "Цвіркун", + "mosquito": "Комар", + "frog": "Жаба", + "croak": "Квакання", + "snake": "Змія", + "rattle": "Тріск", + "whale_vocalization": "Співання кита", + "music": "Музика", + "guitar": "Гітара", + "electric_guitar": "Електрогітара", + "bass_guitar": "Бас-гітара", + "acoustic_guitar": "Акустична гітара", + "strum": "Звук струн", + "keyboard": "Клавіатура", + "piano": "Піаніно", + "electric_piano": "Електропіаніно", + "organ": "Орган", + "electronic_organ": "Електроорган", + "synthesizer": "Синтезатор", + "percussion": "Ударні інструменти", + "drum": "Барабан", + "snare_drum": "Малий барабан", + "drum_roll": "Барабанний дріб", + "bass_drum": "Бас-барабан", + "tambourine": "Бубон", + "gong": "Гонг", + "glockenspiel": "Дзвіночки", + "orchestra": "Оркестр", + "double_bass": "Контрабас", + "wind_instrument": "Духовий інструмент", + "saxophone": "Саксофон", + "clarinet": "Кларнет", + "harp": "Арфа", + "bell": "Дзвін", + "church_bell": "Церковний дзвін", + "jingle_bell": "Бубонець", + "bicycle_bell": "Велосипедний дзвінок", + "tuning_fork": "Камертон", + "chime": "Дзвіночок", + "harmonica": "Губна гармоніка", + "accordion": "Акордеон", + "bagpipes": "Волинка", + "theremin": "Терменвокс", + "pop_music": "Поп-музика", + "hip_hop_music": "Хіп-хоп музика", + "beatboxing": "Бітбоксинг", + "rock_music": "Рок-музика", + "punk_rock": "Панк-рок", + "psychedelic_rock": "Психоделічний рок", + "rhythm_and_blues": "Ритм-н-блюз", + "country": "Кантрі", + "funk": "Фанк", + "folk_music": "Фолк-музика", + "jazz": "Джаз", + "disco": "Диско", + "classical_music": "Класична музика", + "electronic_music": "Електронна музика", + "techno": "Техно", + "dubstep": "Дабстеп", + "drum_and_bass": "Драм-н-бейс", + "electronica": "Електроніка", + "ambient_music": "Ембієнт", + "trance_music": "Транс музика", + "music_of_latin_america": "Латиноамериканська музика", + "flamenco": "Фламенко", + "blues": "Блюз", + "music_for_children": "Дитяча музика", + "a_capella": "А капела", + "music_of_africa": "Африканська музика", + "afrobeat": "Афробіт", + "christian_music": "Християнська музика", + "gospel_music": "Госпел", + "carnatic_music": "Карнатична музика", + "ska": "Ска-музика", + "traditional_music": "Традиційна музика", + "independent_music": "Iнді музика", + "song": "Пісня", + "background_music": "Фонова музика", + "jingle": "Джингл", + "soundtrack_music": "Саундтрек", + "lullaby": "Колискова", + "video_game_music": "Музика з відеоігор", + "wedding_music": "Весільна музика", + "happy_music": "Весела музика", + "sad_music": "Сумна музика", + "tender_music": "Ніжна музика", + "angry_music": "Сердита музика", + "scary_music": "Моторошна музика", + "wind": "Вітер", + "wind_noise": "Шум вітру", + "rain": "Дощ", + "raindrop": "Краплі дощу", + "rain_on_surface": "Дощ на поверхні", + "stream": "Потік", + "waterfall": "Водоспад", + "ocean": "Океан", + "steam": "Пар", + "gurgling": "Дзюрчання", + "vehicle": "Транспорт", + "motorboat": "Моторний човен", + "ship": "Корабель", + "motor_vehicle": "Моторний транспорт", + "car": "Автомобіль", + "toot": "Гудок", + "car_alarm": "Автосигналізація", + "skidding": "Занос", + "tire_squeal": "Вереск шін", + "car_passing_by": "Проїжджаюча машина", + "race_car": "Гоночний автомобіль", + "truck": "Вантажівка", + "air_brake": "Пневматичне гальмо", + "air_horn": "Пневматичні гудок", + "reversing_beeps": "Сигнал заднього ходу", + "ice_cream_truck": "Вантажівки з морозивом", + "bus": "Автобус", + "emergency_vehicle": "Транспорт екстрених служб", + "police_car": "Поліцейський автомобіль", + "ambulance": "Швидка допомога", + "fire_engine": "Пожежна машина", + "rail_transport": "Рейковий транспорт", + "train": "Поїзд", + "train_whistle": "Свист поїзда", + "train_horn": "Гудок поїзда", + "train_wheels_squealing": "Вереск колес поїзда", + "subway": "Метро", + "aircraft": "Повітряне судно", + "jet_engine": "Реактивний двигун", + "propeller": "Пропелер", + "helicopter": "Вертоліт", + "fixed-wing_aircraft": "Літак з нерухомим крилом", + "bicycle": "Велосипед", + "skateboard": "Скейтборд", + "lawn_mower": "Газонокосарка", + "chainsaw": "Ланцюгова пила", + "medium_engine": "Середні двигун", + "heavy_engine": "Важкий двигун", + "engine_knocking": "Детонація у двигуні", + "engine_starting": "Запуск двигуна", + "doorbell": "Дверний дзвінок", + "ding-dong": "Дін-дон", + "sliding_door": "Розсувні двері", + "slam": "Бавовна", + "knock": "Стукіт", + "tap": "Невеличкий стук", + "squeak": "Скрип", + "cupboard_open_or_close": "Відкриття або закриття шафи", + "drawer_open_or_close": "Відкриття або закриття коробки", + "dishes": "Тарілки", + "chopping": "Нарізування", + "frying": "Смаження", + "microwave_oven": "Мікрохвильова піч", + "blender": "Блендер", + "water_tap": "Водопровідний кран", + "sink": "Раковина", + "bathtub": "Ванна", + "hair_dryer": "Фен", + "toilet_flush": "Злив унітазу", + "toothbrush": "Зубна щітка", + "electric_toothbrush": "Електрична зубна щітка", + "vacuum_cleaner": "Пилосос", + "zipper": "Блискавки на одязі", + "keys_jangling": "Брязкання ключів", + "coin": "Монета", + "scissors": "Ножиці", + "electric_shaver": "Електробритва", + "shuffling_cards": "Тасуванні карт", + "typing": "Друкування", + "writing": "Написання", + "telephone": "Телефон", + "telephone_bell_ringing": "Телефонний дзвінок", + "ringtone": "Рінгтон", + "telephone_dialing": "Набір телефонного номеру", + "dial_tone": "Телефонний гудок", + "busy_signal": "Сигнал зайнято", + "alarm_clock": "Будильник", + "civil_defense_siren": "Сирени громадянської оборони", + "buzzer": "Зумер", + "foghorn": "Туманний горн", + "whistle": "Свисток", + "steam_whistle": "Парової свисток", + "mechanisms": "Механізми", + "ratchet": "Тріскачка", + "clock": "Годинник", + "tick": "Тік", + "tick-tock": "Тік-так", + "gears": "Шестерні", + "pulleys": "Шківи", + "sewing_machine": "Швейна машинка", + "air_conditioning": "Кондиціонер", + "cash_register": "Каса", + "printer": "Принтер", + "camera": "Камера", + "single-lens_reflex_camera": "Дзеркальна камера", + "jackhammer": "Відбійний молоток", + "sawing": "Розпилювання", + "filing": "Звучання напилку", + "sanding": "Шліфування", + "power_tool": "Електроінструмент", + "drill": "Дриль", + "explosion": "Вибух", + "fusillade": "Збройна черга", + "artillery_fire": "Артилерійський вогонь", + "cap_gun": "Iграшковий пістолет", + "burst": "Черга пострілів", + "eruption": "Виверження", + "boom": "Бум", + "wood": "Деревина", + "chop": "Рубання", + "splinter": "Тріска", + "crack": "Тріщина", + "glass": "Скло", + "chink": "Дзенькіт", + "shatter": "Розбиття", + "silence": "Тиша", + "sound_effect": "Звуковий ефект", + "environmental_noise": "Шум навколишнього середовища", + "static": "Статичний шум", + "white_noise": "Білий шум", + "pink_noise": "Рожевий шум", + "television": "Телебачення", + "radio": "Радіо", + "field_recording": "Польова запись", + "scream": "Крик", + "laughter": "сміх", + "bellow": "Рев", + "singing": "спів", + "whoop": "Вигук", + "snicker": "хіхікання", + "crying": "плач", + "sigh": "Зітхання", + "yodeling": "Співати йодлем", + "chant": "Скандування", + "grunt": "Гарчання", + "wheeze": "Хрипіти", + "gasp": "Aхнути", + "snort": "Пирхання", + "sniff": "Понюхати", + "shuffle": "Перетасувати", + "biting": "Кусання", + "gargling": "Полоскання", + "stomach_rumble": "Шлунок бурчати", + "hands": "Руки", + "clapping": "Плескання", + "cheering": "Аплодувати", + "crowd": "Натовп", + "children_playing": "Діти граються", + "howl": "Виття", + "rapping": "Стукiт", + "humming": "Гудіння", + "caterwaul": "Нявкання", + "livestock": "Тваринництво", + "cattle": "Велика рогата худоба", + "pig": "Свиня", + "fowl": "Птиця", + "turkey": "Iндичка", + "gobble": "Гелґотіння", + "duck": "Качка", + "quack": "Крякання", + "goose": "Гусак", + "wild_animals": "Дикі тварини", + "roaring_cats": "Ревіння котів", + "squawk": "Пташиний крик", + "plucked_string_instrument": "Щипковий струнний інструмент", + "steel_guitar": "Слайд-гітара", + "banjo": "Банджо", + "sitar": "Ситара", + "mandolin": "Мандоліна", + "zither": "Цитра", + "ukulele": "Укулеле", + "hammond_organ": "Орган Хаммонда", + "sampler": "Семплер", + "harpsichord": "Клавесин", + "drum_machine": "Драм-машина", + "rimshot": "Удар по ободу", + "timpani": "Тимпані", + "tabla": "Табла", + "cymbal": "Тарілка", + "hi_hat": "Хай-хет", + "wood_block": "Дерев'яний брусок", + "maraca": "Маракас", + "mallet_percussion": "Малет-перкусія", + "marimba": "Маримба", + "vibraphone": "Вібрафон", + "steelpan": "Стілпен", + "brass_instrument": "Мідний духовий інструмент", + "french_horn": "Валторна", + "trumpet": "Труба", + "bowed_string_instrument": "Струнно-смичкови інструмент", + "string_section": "Струнна секція", + "pizzicato": "Піцикато", + "cello": "Віолончель", + "didgeridoo": "Діджеріду", + "heavy_metal": "Хеві-метал", + "grunge": "Гранж", + "progressive_rock": "Прогресивний рок", + "soul_music": "Соул", + "reggae": "Реггі", + "bluegrass": "Блюграс", + "middle_eastern_music": "Близькосхідна музика", + "salsa_music": "Музика сальси", + "new-age_music": "Музика нью-ейдж", + "music_of_bollywood": "Музика Боллівуду", + "groan": "стогнати", + "whistling": "свист", + "snoring": "хропіння", + "pant": "задихатися", + "sneeze": "чхати" } diff --git a/web/public/locales/uk/common.json b/web/public/locales/uk/common.json index 0967ef424..79c01da24 100644 --- a/web/public/locales/uk/common.json +++ b/web/public/locales/uk/common.json @@ -1 +1,253 @@ -{} +{ + "time": { + "year_one": "{{time}}рік", + "year_few": "{{time}}роки", + "year_many": "{{time}}років", + "month_one": "{{time}}місяць", + "month_few": "{{time}}місяця", + "month_many": "{{time}} місяців", + "justNow": "Зараз", + "today": "Сьогодні", + "last7": "Останні 7 днів", + "last14": "Останній 14 днів", + "last30": "Останній 30 днів", + "thisWeek": "Цей тиждень", + "lastWeek": "Останній тиждень", + "thisMonth": "У цьому місяці", + "lastMonth": "Останній місяць", + "5minutes": "5 хвилин", + "10minutes": "10 хвилин", + "30minutes": "30 хвилин", + "1hour": "1 година", + "12hours": "12 годин", + "24hours": "24 години", + "pm": "вечора", + "am": "ранку", + "yr": "{{time}} рік", + "hour_one": "{{time}} година", + "hour_few": "{{time}} години", + "hour_many": "{{time}} годин", + "minute_one": "{{time}} хвилина", + "minute_few": "{{time}} хвилини", + "minute_many": "{{time}} хвилин", + "day_one": "{{time}} день", + "day_few": "{{time}} дні", + "day_many": "{{time}} днів", + "second_one": "{{time}}секунда", + "second_few": "{{time}}секунди", + "second_many": "{{time}}секунд", + "ago": "{{timeAgo}} тому", + "yesterday": "Учора", + "mo": "{{time}}місяць", + "d": "{{time}}д", + "h": "{{time}}г", + "m": "{{time}}хв", + "s": "{{time}}сек", + "untilForTime": "До {{time}}", + "untilForRestart": "Доки Frigate не перезавантажиться.", + "untilRestart": "До перезавантаження", + "formattedTimestamp": { + "12hour": "MMM d, h:mm:ss aaa", + "24hour": "MMM d, HH:mm:ss" + }, + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "MMM d, h:mm aaa", + "24hour": "MMM d, HH:mm" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "MMM d yyyy, h:mm aaa", + "24hour": "MMM d yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "MMM d", + "formattedTimestampFilename": { + "12hour": "MM-dd-yy-h-mm-ss-a", + "24hour": "MM-dd-yy-HH-mm-ss" + }, + "formattedTimestamp2": { + "12hour": "MM/dd h:mm:ssa", + "24hour": "d MMM HH:mm:ss" + } + }, + "button": { + "exitFullscreen": "Вийти з повноекранного режиму", + "on": "ВКЛ", + "yes": "Так", + "copy": "Копіювати", + "close": "Закрити", + "saving": "Збереження…", + "history": "Історія", + "cancel": "Відмінити", + "fullscreen": "Повноекранний режим", + "back": "Назад", + "pictureInPicture": "Картинка в картинці", + "cameraAudio": "Аудіо камери", + "copyCoordinates": "Копіювати координати", + "edit": "Редагувати", + "no": "Ні", + "twoWayTalk": "Двосторонній зв'язок", + "off": "ВИКЛ", + "delete": "Видалити", + "apply": "Застосувати", + "reset": "Скинути", + "done": "Готово", + "enabled": "Увімкнено", + "enable": "Увімкнути", + "disabled": "Вимкнено", + "disable": "Вимкнути", + "save": "Зберегти", + "download": "Завантажити", + "info": "Інфо", + "suspended": "Призупинено", + "play": "Грати", + "unselect": "Прибрати виділення", + "export": "Експортувати", + "deleteNow": "Видалити негайно", + "next": "Наступне", + "unsuspended": "Відновити дію" + }, + "menu": { + "language": { + "da": "Датська", + "uk": "Українська", + "ro": "Румунська", + "es": "Іспанська", + "zhCN": "Спрощена китайська", + "hi": "Хінді", + "fr": "Французька", + "ar": "Арабська", + "pt": "Португальська", + "de": "Німецька", + "ja": "Японська", + "tr": "Турецька", + "ru": "російська", + "it": "Італійська", + "nl": "Голландська", + "sv": "Швецька", + "cs": "Чешська", + "nb": "Норвежский букмол", + "ko": "Корейська", + "vi": "В'єтнамська", + "fa": "Персидська", + "pl": "Польська", + "he": "Иврит", + "el": "Грецька", + "hu": "Венгерська", + "fi": "Фінська", + "sk": "Словацька", + "withSystem": { + "label": "Використовувати системну мову" + }, + "en": "Англійська", + "yue": "粵語 (Кантонська)" + }, + "system": "Система", + "systemMetrics": "Системна метріка", + "configuration": "Конфігурація", + "systemLogs": "Системні логи", + "settings": "Налаштування", + "configurationEditor": "Редактор конфігурації", + "languages": "Мови", + "theme": { + "nord": "Північ", + "red": "Червоний", + "contrast": "Висока контрастність", + "default": "Типовий", + "label": "Тема", + "blue": "Синій", + "green": "Зелений", + "highcontrast": "Висока контрастність" + }, + "help": "Допомогти", + "documentation": { + "title": "Документація", + "label": "Frigate документація" + }, + "restart": "Перезапустити Frigate", + "live": { + "title": "Живи", + "allCameras": "Всi камери", + "cameras": { + "title": "Камери" + } + }, + "review": "Перегляд", + "explore": "Вивчити", + "export": "Експорт", + "uiPlayground": "UI iгровий майданчик", + "faceLibrary": "Бібліотека обличчя", + "user": { + "title": "Користувач", + "account": "Акаунт", + "current": "Поточний користувач: {{user}}", + "anonymous": "анонімний", + "logout": "Вихід", + "setPassword": "Встановити пароль" + }, + "darkMode": { + "label": "Темний режим", + "light": "Світло", + "dark": "Темний", + "withSystem": { + "label": "Використовуйте налаштування системи для світлого або темного режиму" + } + }, + "appearance": "Поява", + "withSystem": "Система" + }, + "unit": { + "speed": { + "mph": "миль/г", + "kph": "км/г" + } + }, + "label": { + "back": "Повернутись" + }, + "toast": { + "save": { + "title": "Зберегти", + "error": { + "title": "Не вдалося зберегти зміни конфігурації: {{errorMessage}}", + "noMessage": "Не вдалося зберегти зміни налаштування" + } + }, + "copyUrlToClipboard": "Скопійовано URL до буфера обміну." + }, + "role": { + "title": "Роль", + "desc": "Адміністратори мають повний доступ до всіх функцій інтерфейсу Fregate. Глядачі обмежуються переглядом камер, оглядовими елементами та історичними кадрами в інтерфейсі користувача.", + "admin": "Адміністратор", + "viewer": "Глядач" + }, + "pagination": { + "previous": { + "title": "Попередній", + "label": "Повернутись до попередньої сторінки" + }, + "next": { + "title": "Наступний", + "label": "Перехід до наступної сторінки" + }, + "more": "Більше сторінок", + "label": "Пагінація" + }, + "accessDenied": { + "documentTitle": "Доступ заборонений - Frigate", + "title": "Доступ заборонений", + "desc": "У вас немає дозволу на перегляд цієї сторінки." + }, + "notFound": { + "documentTitle": "Не знайдено - Frigate", + "desc": "Сторінка не знайдена", + "title": "404" + }, + "selectItem": "Вибрати {{item}}" +} diff --git a/web/public/locales/uk/components/auth.json b/web/public/locales/uk/components/auth.json index 0967ef424..07eaca4e3 100644 --- a/web/public/locales/uk/components/auth.json +++ b/web/public/locales/uk/components/auth.json @@ -1 +1,15 @@ -{} +{ + "form": { + "errors": { + "webUnknownError": "Невідома помилка. Перевірте журнали консолi.", + "usernameRequired": "Ви повинні ввести ім'я користувача", + "passwordRequired": "Необхідно ввести пароль", + "rateLimit": "Перевищення кількості спроб. Спробуйте пізніше.", + "loginFailed": "Спроба входу зазнала невдачі", + "unknownError": "Невідома помилка. Перевірте журнали." + }, + "user": "Iм'я користувача", + "password": "Пароль", + "login": "Логiн" + } +} diff --git a/web/public/locales/uk/components/camera.json b/web/public/locales/uk/components/camera.json index 0967ef424..26fd97db4 100644 --- a/web/public/locales/uk/components/camera.json +++ b/web/public/locales/uk/components/camera.json @@ -1 +1,13 @@ -{} +{ + "group": { + "name": { + "placeholder": "Введіть назву…" + } + }, + "debug": { + "zones": "Зони", + "mask": "Маска", + "motion": "Рух", + "regions": "Регiони" + } +} diff --git a/web/public/locales/uk/components/dialog.json b/web/public/locales/uk/components/dialog.json index 0967ef424..60c921b34 100644 --- a/web/public/locales/uk/components/dialog.json +++ b/web/public/locales/uk/components/dialog.json @@ -1 +1,107 @@ -{} +{ + "explore": { + "plus": { + "review": { + "question": { + "ask_a": "Чи є цей об'єкт {{label}}?", + "ask_full": "Чи є цей об'єкт {{untranslatedLabel}}{{translatedLabel}}?", + "label": "Підтвердіть цей ярлик для Frigate Plus", + "ask_an": "Це об'єкт – {{label}}?" + }, + "state": { + "submitted": "Поданi" + } + }, + "submitToPlus": { + "label": "Надіслати да Frigate+", + "desc": "Об'єкти в місцях, які ви хочете уникнути, не є помилковими спрацьовуваннями. Подання їх як помилкових спрацьовувань заплутає модель." + } + }, + "video": { + "viewInHistory": "Перегляд у історії" + } + }, + "streaming": { + "label": "Потік", + "restreaming": { + "desc": { + "readTheDocumentation": "Прочитати документацію", + "title": "Налаштуйте go2rtc для додаткових параметрів перегляду в реальному часі та аудіо для цієї камери." + }, + "disabled": "Перезавантаження не ввімкнено для цієї камери." + }, + "showStats": { + "label": "Показати статистику потоку", + "desc": "Позначте цей пункт, щоб показувати статистику потоку як накладання на канал камери." + }, + "debugView": "Режим зневаджування" + }, + "search": { + "saveSearch": { + "label": "Зберегти пошук", + "button": { + "save": { + "label": "Зберегти цей пошук" + } + }, + "desc": "Вкажіть назву для цього збереженого пошуку.", + "placeholder": "Введіть назву для пошуку", + "overwrite": "{{searchName}} вже існує. Збереження перезапише існуюче значення.", + "success": "Пошук ({{searchName}}) збережено." + } + }, + "export": { + "toast": { + "error": { + "failed": "Не вдалося розпочати експорт: {{error}}", + "endTimeMustAfterStartTime": "Час закінчення повинен бути після часу початку", + "noVaildTimeSelected": "Не вибрано допустимий діапазон часу" + }, + "success": "Експорт успішно запущено. Файл доступний у теці /exports." + }, + "fromTimeline": { + "saveExport": "Зберегти експорт", + "previewExport": "Попередній перегляд експорту" + }, + "time": { + "fromTimeline": "Вибір шкали часу", + "custom": "Користувацький", + "start": { + "title": "Час початку", + "label": "Виберіть час початку" + }, + "end": { + "title": "Час закінчення", + "label": "Вибрати час закінчення" + } + }, + "name": { + "placeholder": "Введіть назву для експорту" + }, + "select": "Вибрати", + "export": "Експорт", + "selectOrExport": "Выбiр або експорт" + }, + "recording": { + "button": { + "export": "Експорт", + "markAsReviewed": "Позначити як переглянуте", + "deleteNow": "Вилучити зараз" + }, + "confirmDelete": { + "title": "Підтвердити вилучення", + "desc": { + "selected": "Ви впевнені, що хочете видалити все записане відео, пов'язане з цим пунктом огляду?

    Утримуйте клавішу Shift, щоб обійти це діалогове вікно в майбутньому." + } + } + }, + "restart": { + "title": "Ви впевнені, що хочете перезапустити Frigate?", + "button": "Перезавантажувати", + "restarting": { + "title": "Frigate перезапускається", + "content": "Цю сторінку буде перезавантажено за {{countdown}} секунд.", + "button": "Примусово перезавантажити" + } + } +} diff --git a/web/public/locales/uk/components/filter.json b/web/public/locales/uk/components/filter.json index 0967ef424..26ad630c6 100644 --- a/web/public/locales/uk/components/filter.json +++ b/web/public/locales/uk/components/filter.json @@ -1 +1,125 @@ -{} +{ + "filter": "Фiльтр", + "explore": { + "settings": { + "defaultView": { + "desc": "Якщо фільтри не вибрано, відобразити резюме останніх відстежуваних об'єктів за міткою, або показати нефільтровану сітку.", + "title": "Вид за замовчуванням", + "summary": "Підсумок", + "unfilteredGrid": "Нефільтровані сiтка" + }, + "searchSource": { + "desc": "Виберіть, чи слід шукати мініатюри або описи відстежуваних об'єктів.", + "label": "Пошук джерела", + "options": { + "thumbnailImage": "Зображення мініатюри", + "description": "Опис" + } + }, + "title": "Налаштування", + "gridColumns": { + "title": "Колонки сітки", + "desc": "Виберіть кількість стовпчиків у вигляді сітки." + } + }, + "date": { + "selectDateBy": { + "label": "Виберіть дату для фільтрування" + } + } + }, + "labels": { + "count_one": "{{count}} Етикетка", + "all": { + "title": "Всi етикетки", + "short": "Етикетки" + }, + "label": "Етикетки", + "count_other": "{{count}} Етикетки" + }, + "cameras": { + "all": { + "short": "Камери", + "title": "Всi камери" + }, + "label": "Фільтр камери" + }, + "timeRange": "Часовий діапазон", + "features": { + "hasSnapshot": "Має своє уявлення", + "hasVideoClip": "Має відеокліп", + "label": "Особливості", + "submittedToFrigatePlus": { + "label": "Подані до Frigate+", + "tips": "Спочатку потрібно відфільтрувати об'єкти, які відслідковуються.

    Відстежувані об'єкти без знімка не можуть бути передані Frigate+." + } + }, + "sort": { + "dateAsc": "Дата (за зростанням)", + "dateDesc": "Дата (по спадаючій)", + "label": "Сортування", + "scoreAsc": "Оцiнка об'єкту (За зростанням)", + "scoreDesc": "Оцiнка об'єкту (За спаданням)", + "speedAsc": "Розрахункова швидкість (За зростанням)", + "speedDesc": "Розрахункова швидкість (За спаданням)", + "relevance": "Актуальність" + }, + "trackedObjectDelete": { + "desc": "Видалення цих {{objectLength}} відстежуваних об'єктів видаляє знімок, будь-які збережені вкладення та пов'язані з ними записи життєвого циклу об'єкта. Записані кадри цих відстежуваних об'єктів у перегляді історії НЕ будуть видалені.

    Ви впевнені, що хочете продовжити?

    Утримуйте клавішу Shift, щоб обійти це діалогове вікно в майбутньому.", + "title": "Підтвердіть видалення", + "toast": { + "success": "Відстежені об'єкти успішно видалені.", + "error": "Не вдалося видалити відстежувані об'єкти: {{errorMessage}}" + } + }, + "zones": { + "label": "Зони", + "all": { + "title": "Всi зони", + "short": "Зони" + } + }, + "dates": { + "all": { + "title": "Всi дати", + "short": "Дати" + } + }, + "more": "Кілька фільтрів", + "reset": { + "label": "Відновити типові значення фільтрів" + }, + "subLabels": { + "label": "Суб-мiтка", + "all": "Всi суб-мiтки" + }, + "score": "Рахунок", + "estimatedSpeed": "Розрахункова швидкість ({{unit}})", + "review": { + "showReviewed": "Показати переглянув" + }, + "motion": { + "showMotionOnly": "Показати тiльки рух" + }, + "logSettings": { + "label": "Фільтр рівня журналу", + "filterBySeverity": "Фільтрувати журнали за ступенем тяжкості", + "loading": { + "title": "Завантаження", + "desc": "Коли панель журналу прокручується внизу, нові журнали автоматично транслюються після додавання." + }, + "disableLogStreaming": "Вимикати журнал стрімінгу", + "allLogs": "Всi журнали" + }, + "zoneMask": { + "filterBy": "Фільтрувати за маскою зони" + }, + "recognizedLicensePlates": { + "title": "Розпізнано номерні знаки", + "loadFailed": "Не вдалося завантажити розпізнані номерні знаки.", + "loading": "Завантаження визнаних номерів…", + "placeholder": "Введіть для пошуку номерні знаки…", + "noLicensePlatesFound": "Номерних знаків не знайдено.", + "selectPlatesFromList": "Виберіть одну або кілька пластин зі списку." + } +} diff --git a/web/public/locales/uk/components/icons.json b/web/public/locales/uk/components/icons.json index 0967ef424..65d0cd681 100644 --- a/web/public/locales/uk/components/icons.json +++ b/web/public/locales/uk/components/icons.json @@ -1 +1,8 @@ -{} +{ + "iconPicker": { + "selectIcon": "Оберіть іконку", + "search": { + "placeholder": "Пошук iконки…" + } + } +} diff --git a/web/public/locales/uk/components/input.json b/web/public/locales/uk/components/input.json index 0967ef424..e7b818db7 100644 --- a/web/public/locales/uk/components/input.json +++ b/web/public/locales/uk/components/input.json @@ -1 +1,10 @@ -{} +{ + "button": { + "downloadVideo": { + "label": "Завантажити відео", + "toast": { + "success": "Розпочата завантаження відео." + } + } + } +} diff --git a/web/public/locales/uk/components/player.json b/web/public/locales/uk/components/player.json index 0967ef424..746eba6c1 100644 --- a/web/public/locales/uk/components/player.json +++ b/web/public/locales/uk/components/player.json @@ -1 +1,51 @@ -{} +{ + "noRecordingsFoundForThisTime": "Не знайдено жодного запису", + "noPreviewFoundFor": "Попередній перегляд для {{cameraName}} не знайдені", + "livePlayerRequiredIOSVersion": "Для цього типу потокового передавання потрібна iOS 17.1 або пізніша версія.", + "stats": { + "droppedFrames": { + "short": { + "title": "Пропущене", + "value": "{{droppedFrames}} кадрiв" + }, + "title": "Пропущене кадрiв:" + }, + "droppedFrameRate": "Частота пропущенив кадрiв:", + "streamType": { + "short": "Тип", + "title": "Тип потоку:" + }, + "bandwidth": { + "title": "Пропускна здатність:", + "short": "Пропускна здатність" + }, + "latency": { + "title": "Затримка:", + "short": { + "title": "Затримка", + "value": "{{seconds}} сек" + }, + "value": "{{seconds}} секунд" + }, + "totalFrames": "Всього кадрiв:", + "decodedFrames": "Декодовані кадри:" + }, + "noPreviewFound": "Попередній перегляд не знайдені", + "submitFrigatePlus": { + "title": "Відправити це зображення Frigate+?", + "submit": "Посилати" + }, + "streamOffline": { + "title": "Струм офлайн", + "desc": "Потік detect камера {{cameraName}} не отримувала ніяких кадрів, перевіряйте журнали помилок" + }, + "cameraDisabled": "Камера вимкнена", + "toast": { + "success": { + "submittedFrigatePlus": "Зображення успішно завантажено до Frigate+" + }, + "error": { + "submitFrigatePlusFailed": "Не вдалося надіслати фрейм Frigate+" + } + } +} diff --git a/web/public/locales/uk/objects.json b/web/public/locales/uk/objects.json index 0967ef424..6047ee633 100644 --- a/web/public/locales/uk/objects.json +++ b/web/public/locales/uk/objects.json @@ -1 +1,120 @@ -{} +{ + "dog": "Собака", + "cat": "Кіт", + "horse": "Кінь", + "sheep": "Вівця", + "bark": "Лай", + "goat": "Коза", + "mouse": "Миш", + "skateboard": "Скейтборд", + "bird": "Птах", + "boat": "Човен", + "car": "Автомобіль", + "bus": "Автобус", + "motorcycle": "Мотоцикл", + "train": "Поїзд", + "bicycle": "Велосипед", + "keyboard": "Клавіатура", + "door": "Двері", + "sink": "Раковина", + "animal": "Тварина", + "vehicle": "Транспорт", + "blender": "Блендер", + "hair_dryer": "Фен", + "toothbrush": "Зубна щітка", + "scissors": "Ножиці", + "clock": "Годинник", + "toilet": "Вбиральня", + "spoon": "Ложка", + "tennis_racket": "Тенісна ракетка", + "potted_plant": "Кімнатна рослина", + "bbq_grill": "Гриль та барбекю", + "person": "Людина", + "airplane": "Літак", + "traffic_light": "Світлофор", + "fire_hydrant": "Пожежний гідрант", + "parking_meter": "Паркоматів", + "bench": "Лавка", + "cow": "Корова", + "elephant": "Слон", + "bear": "Ведмідь", + "zebra": "Зебра", + "giraffe": "Жираф", + "hat": "Шапка", + "backpack": "Рюкзак", + "street_sign": "Дорожній знак", + "stop_sign": "Знак зупинки", + "umbrella": "Парасолька", + "shoe": "Взуття", + "eye_glasses": "Окуляри", + "handbag": "Гаманець", + "tie": "Краватка", + "suitcase": "Валiза", + "frisbee": "Фрiсбi", + "skis": "Лижи", + "snowboard": "Сноуборд", + "sports_ball": "Спортивні м'яч", + "kite": "Повітряний змій", + "baseball_bat": "Бейсбольна біта", + "baseball_glove": "Рукавичка ловця", + "surfboard": "Дошка для серфінгу", + "bottle": "Пляшка", + "plate": "Тарiлка", + "wine_glass": "Винний келих", + "cup": "Чашка", + "fork": "Виделка", + "knife": "Нiж", + "bowl": "Миска", + "banana": "Банан", + "apple": "Яблуко", + "sandwich": "Сендвіч", + "orange": "Апельсин", + "broccoli": "Броколі", + "carrot": "Морква", + "hot_dog": "Хот-дог", + "pizza": "Пiца", + "donut": "Пампушка", + "cake": "Торт", + "chair": "Стілець", + "couch": "Диван", + "bed": "Лiжко", + "mirror": "Люстерко", + "dining_table": "Обідній стіл", + "window": "Вiкно", + "desk": "Стiл", + "tv": "Телевізор", + "laptop": "Лептоп", + "remote": "Пульт дистанційного керування", + "cell_phone": "Мобільний телефон", + "microwave": "Мікрохвильовка", + "oven": "Пiч", + "toaster": "Тостер", + "refrigerator": "Холодильник", + "book": "Книжка", + "vase": "Ваза", + "teddy_bear": "Плюшевий ведмедик", + "hair_brush": "Гребінець", + "squirrel": "Білка", + "deer": "Олень", + "fox": "Лисиця", + "rabbit": "Кролик", + "raccoon": "Єнот", + "robot_lawnmower": "Роботизована газонокосарка", + "waste_bin": "Відро для сміття", + "on_demand": "На вимогу", + "face": "Обличчя", + "license_plate": "Номерний знак", + "package": "Посилка", + "amazon": "Amazon", + "usps": "USPS", + "ups": "UPS", + "fedex": "FedEx", + "dhl": "DHL", + "an_post": "An Post", + "purolator": "Purolator", + "postnl": "PostNL", + "nzpost": "NZPost", + "postnord": "PostNord", + "gls": "GLS", + "dpd": "DPD" +} diff --git a/web/public/locales/uk/views/configEditor.json b/web/public/locales/uk/views/configEditor.json index 0967ef424..1dc4bb6d8 100644 --- a/web/public/locales/uk/views/configEditor.json +++ b/web/public/locales/uk/views/configEditor.json @@ -1 +1,15 @@ -{} +{ + "saveAndRestart": "Зберегти та перезавантажити", + "toast": { + "error": { + "savingError": "Помилка збереження конфігурації" + }, + "success": { + "copyToClipboard": "Налаштування було скопійовано до буфера обміну даними." + } + }, + "documentTitle": "Редактар конфігурації - Frigate", + "copyConfig": "Скопіювати конфігурацію", + "saveOnly": "Тільки зберегти", + "configEditor": "Налаштування редактора" +} diff --git a/web/public/locales/uk/views/events.json b/web/public/locales/uk/views/events.json index 0967ef424..f78ac8501 100644 --- a/web/public/locales/uk/views/events.json +++ b/web/public/locales/uk/views/events.json @@ -1 +1,37 @@ -{} +{ + "camera": "Камера", + "selected_one": "{{count}} відібраний", + "selected_other": "{{count}} відібраний", + "alerts": "Оповіщення", + "detections": "Виявлень", + "motion": { + "label": "Рух", + "only": "Тiльки рух" + }, + "allCameras": "Всi камери", + "empty": { + "alert": "Немає попереджень для перегляду", + "detection": "Немає ніяких ознак", + "motion": "Даних про рух не знайдено" + }, + "timeline": "Хронологія", + "timeline.aria": "Вибрати хронiку", + "events": { + "label": "Події", + "aria": "Выбрати події", + "noFoundForTimePeriod": "За цей період подій не знайдено." + }, + "documentTitle": "Перегляд подiй - Frigate", + "recordings": { + "documentTitle": "Записи - Frigate" + }, + "calendarFilter": { + "last24Hours": "Останні 24 години" + }, + "markAsReviewed": "Прибрати позначку про необхідність огляду", + "markTheseItemsAsReviewed": "Позначити ці елементи як переглянуті", + "newReviewItems": { + "label": "Переглянути нові елементи огляду", + "button": "Нові матеріали для перегляду" + } +} diff --git a/web/public/locales/uk/views/explore.json b/web/public/locales/uk/views/explore.json index 0967ef424..f87a2c3a2 100644 --- a/web/public/locales/uk/views/explore.json +++ b/web/public/locales/uk/views/explore.json @@ -1 +1,10 @@ -{} +{ + "exploreIsUnavailable": { + "downloadingModels": { + "tips": { + "documentation": "Прочитати документацію" + } + } + }, + "documentTitle": "Пошук подій - Frigate" +} diff --git a/web/public/locales/uk/views/exports.json b/web/public/locales/uk/views/exports.json index 0967ef424..788851804 100644 --- a/web/public/locales/uk/views/exports.json +++ b/web/public/locales/uk/views/exports.json @@ -1 +1,17 @@ -{} +{ + "documentTitle": "Експорт - Frigate", + "search": "Пошук", + "noExports": "Не знайдено експортованих файлів", + "deleteExport": "Видалити експортування", + "deleteExport.desc": "Ви справді бажаєте вилучити {{exportName}}?", + "editExport": { + "title": "Перейменувати експорт", + "desc": "Введіть нову назву для цього експорту.", + "saveExport": "Зберегти експорт" + }, + "toast": { + "error": { + "renameExportFailed": "Не вдалося перейменувати експорт: {{errorMessage}}" + } + } +} diff --git a/web/public/locales/uk/views/faceLibrary.json b/web/public/locales/uk/views/faceLibrary.json index 0967ef424..de1229a8f 100644 --- a/web/public/locales/uk/views/faceLibrary.json +++ b/web/public/locales/uk/views/faceLibrary.json @@ -1 +1,5 @@ -{} +{ + "selectItem": "Вибрати {{item}}", + "documentTitle": "Бібліотека облич - Frigate", + "readTheDocs": "Прочитати документацію" +} diff --git a/web/public/locales/uk/views/live.json b/web/public/locales/uk/views/live.json index 0967ef424..e56c821ed 100644 --- a/web/public/locales/uk/views/live.json +++ b/web/public/locales/uk/views/live.json @@ -1 +1,156 @@ -{} +{ + "manualRecording": { + "started": "Почав ручний запис на вимогу.", + "showStats": { + "desc": "Позначте цей пункт, щоб показувати статистику потоку як накладання на канал камери.", + "label": "Показати статистику" + }, + "failedToEnd": "Не вдалося завершити запис вручну на вимогу.", + "playInBackground": { + "label": "Грати у фоновому режимі", + "desc": "Увімкніть цей параметр, щоб продовжувати потокове передавання, коли програвач приховано." + }, + "tips": "Запустіть ручну подію на основі параметрів збереження запису цієї камери.", + "title": "Запис на вимогу", + "debugView": "Режим зневаджування", + "start": "Почати запис за запитом", + "failedToStart": "Не вдалося запустити ручний запис на вимогу.", + "end": "Завершення запису на вимогу", + "ended": "Запис на вимогу припинився." + }, + "snapshots": { + "enable": "Увімкнути знімки", + "disable": "Вимкнути знімки" + }, + "stream": { + "twoWayTalk": { + "tips": "Ваш пристрій повинен підтримувати функцію, а WebRTC повинен бути налаштований для двосторонньої розмови.", + "tips.documentation": "Прочитати документацію ", + "available": "Двостороння розмова доступна для цього потоку", + "unavailable": "Двостороння розмова недоступна для цього потоку" + }, + "playInBackground": { + "tips": "Увімкніть цей параметр, щоб продовжувати потокове передавання, коли програвач приховано.", + "label": "Грати у фоновому режимі" + }, + "title": "Потiк", + "audio": { + "tips": { + "documentation": "Прочитати документацію ", + "title": "Звук повинен бути виведений з камери і налаштований в go2rtc для цього потоку." + }, + "available": "Звук доступний для цього потоку", + "unavailable": "Аудіо недоступне для цього потоку" + }, + "lowBandwidth": { + "resetStream": "Скинути потік", + "tips": "Режим перегляду в реальному часі перемикається в економічний режим через помилки буферизації або потоку." + } + }, + "muteCameras": { + "disable": "Увімкнути звук на всі камери", + "enable": "Вимкнути всі камери" + }, + "ptz": { + "move": { + "clickMove": { + "label": "Клацніть у кадрі, щоб відцентрувати камеру", + "enable": "Увімкнути клацання для переміщення", + "disable": "Вимкнути клацання для переміщення" + }, + "up": { + "label": "Перемістити PTZ камеру вгору" + }, + "left": { + "label": "Переміщення камери PTZ вліво" + }, + "down": { + "label": "Переміщення PTZ камери вниз" + }, + "right": { + "label": "Переміщення PTZ камери вправо" + } + }, + "zoom": { + "in": { + "label": "Наближати PTZ камеру" + }, + "out": { + "label": "Зменшити PTZ камеру" + } + }, + "presets": "Попередни установки PTZ камери", + "frame": { + "center": { + "label": "Клацніть у кадрі, щоб відцентрувати камеру PTZ" + } + } + }, + "editLayout": { + "exitEdit": "Вийти з редагування", + "label": "Редагувати макет", + "group": { + "label": "Редагувати групу камер" + } + }, + "documentTitle": "Пряма трансляція - Frigate", + "documentTitle.withCamera": "{{camera}} - Пряма трансляція - Frigate", + "lowBandwidthMode": "Економічний режим", + "twoWayTalk": { + "enable": "Увімкнути двосторонню розмову", + "disable": "Вимкнути двосторонню розмову" + }, + "cameraAudio": { + "enable": "Увімкнути звук камери", + "disable": "Вимкнути звук камери" + }, + "camera": { + "enable": "Увімкнути камеру", + "disable": "Вимкнути камеру" + }, + "detect": { + "enable": "Увімкнути виявлення", + "disable": "Вимкнути виявлення" + }, + "recording": { + "enable": "Увімкнути запис", + "disable": "Вимкнути запис" + }, + "audioDetect": { + "enable": "Увімкнути виявлення звуку", + "disable": "Вимкнути виявлення звуку" + }, + "autotracking": { + "disable": "Вимкнути автотрекінг", + "enable": "Увімкнути автотрекінг" + }, + "streamStats": { + "enable": "Показати статистику потоку", + "disable": "Сховати статистику потоку" + }, + "streamingSettings": "Параметри потокового передавання", + "notifications": "Повідомлення", + "audio": "Аудіо", + "suspend": { + "forTime": "Призупинити до: " + }, + "cameraSettings": { + "title": "{{camera}} Налаштування", + "cameraEnabled": "Камера включена", + "objectDetection": "Виявлення об'єктів", + "recording": "Записування", + "snapshots": "Знімки", + "audioDetection": "Виявлення звуку", + "autotracking": "Автотрекiнг" + }, + "history": { + "label": "Показати історичні кадри" + }, + "effectiveRetainMode": { + "modes": { + "all": "Всi", + "motion": "Рух", + "active_objects": "Активні об'єкти" + } + } +} diff --git a/web/public/locales/uk/views/recording.json b/web/public/locales/uk/views/recording.json index 0967ef424..a1ae10e01 100644 --- a/web/public/locales/uk/views/recording.json +++ b/web/public/locales/uk/views/recording.json @@ -1 +1,12 @@ -{} +{ + "export": "Експорт", + "toast": { + "error": { + "noValidTimeSelected": "Вибраний діапазон часу не є коректним", + "endTimeMustAfterStartTime": "Час закінчення повинен бути пізніше часу початку" + } + }, + "calendar": "Календар", + "filter": "Фiльтр", + "filters": "Фiльтри" +} diff --git a/web/public/locales/uk/views/search.json b/web/public/locales/uk/views/search.json index 0967ef424..c2d9d2a22 100644 --- a/web/public/locales/uk/views/search.json +++ b/web/public/locales/uk/views/search.json @@ -1 +1,72 @@ -{} +{ + "search": "Пошук", + "filter": { + "tips": { + "desc": { + "step1": "Введіть назву ключа фільтра, а потім двокрапку (наприклад, «камери:»).", + "step2": "Виберіть значення з пропозицій або введіть своє.", + "step3": "Використовуйте кілька фільтрів, додаючи їх один за одним з проміжком між ними.", + "step5": "Фільтр діапазону часу використовує формат {{exampleTime}}.", + "step6": "Видалити фільтри, натиснувши 'x' поруч з ними.", + "exampleLabel": "Наприклад:", + "step4": "Фільтри дат (до: і після:) використовують формат {{DateFormat}}.", + "text": "Фільтри допомагають звузити результати пошуку. Ось як використовувати їх у полі вводу:" + }, + "title": "Як використовувати текстові фільтри" + }, + "header": { + "currentFilterType": "Фільтрувати значення", + "activeFilters": "Активнi фiльтри", + "noFilters": "Фiлтри" + }, + "label": { + "zones": "Зони", + "sub_labels": "Суб-меткi", + "search_type": "Тип пошуку", + "cameras": "Камери", + "labels": "Етикеткi", + "time_range": "Часовий діапазон", + "before": "Перед", + "after": "Пiсля", + "min_score": "Мінімальний бал", + "max_score": "Найвищий бал", + "min_speed": "Мінімальна швидкість", + "max_speed": "Максимальна швидкість", + "recognized_license_plate": "Розпізнаний номерний знак", + "has_clip": "Має клiп", + "has_snapshot": "Має знiмок" + }, + "searchType": { + "thumbnail": "Мініатюра", + "description": "Опис" + }, + "toast": { + "error": { + "beforeDateBeLaterAfter": "Дата 'до' повинна бути пізнішою, ніж дата 'після'.", + "afterDatebeEarlierBefore": "Дата 'після' повинна бути раніше, ніж дата 'до'.", + "minScoreMustBeLessOrEqualMaxScore": "Значення 'min_score' має бути меншим або дорівнювати 'max_score'.", + "maxScoreMustBeGreaterOrEqualMinScore": "Значення 'max_score' має бути більшим або дорівнювати 'min_score'.", + "minSpeedMustBeLessOrEqualMaxSpeed": "Значення 'min_speed' має бути меншим або дорівнювати 'max_speed'.", + "maxSpeedMustBeGreaterOrEqualMinSpeed": "Значення 'max_speed' має бути більшим або дорівнювати 'min_speed'." + } + } + }, + "similaritySearch": { + "title": "Пошук подібності", + "active": "Активнi пошук подібності", + "clear": "Очистити пошук подібності" + }, + "placeholder": { + "search": "Пошук…" + }, + "button": { + "save": "Зберегти пошук", + "delete": "Видалити збережений пошук", + "filterInformation": "Фільтрувати інформацію", + "clear": "Очистити пошук", + "filterActive": "Активни фільтри" + }, + "savedSearches": "Збережені пошуки", + "searchFor": "Пошук да {{inputValue}}", + "trackedObjectId": "Iдентифікатори об'єктів" +} diff --git a/web/public/locales/uk/views/settings.json b/web/public/locales/uk/views/settings.json index 0967ef424..1fa74923f 100644 --- a/web/public/locales/uk/views/settings.json +++ b/web/public/locales/uk/views/settings.json @@ -1 +1,59 @@ -{} +{ + "notification": { + "notificationSettings": { + "documentation": "Прочитати документацію" + }, + "notificationUnavailable": { + "desc": "Веб-повідомлення вимагають безпечного контексту (https://…). Це обмеження браузера. Безпечний доступ до фрегатів для використання сповіщень.", + "documentation": "Прочитати документацію" + } + }, + "camera": { + "streams": { + "title": "Потоки" + }, + "reviewClassification": { + "readTheDocumentation": "Прочитати документацію" + } + }, + "masksAndZones": { + "motionMasks": { + "polygonAreaTooLarge": { + "documentation": "Прочитати документацію" + }, + "context": { + "documentation": "Прочитати документацію", + "title": "Маски руху використовуються для запобігання виявлення небажаних типів руху (наприклад: гілки дерева, часові мітки камери). Слід використовувати маски рухудуже економно, надмірне маскування ускладнить відстеження об'єктів." + } + }, + "zones": { + "label": "Зони", + "name": { + "inputPlaceHolder": "Введіть назву…" + } + } + }, + "debug": { + "zones": { + "title": "Зони" + }, + "objectShapeFilterDrawing": { + "document": "Прочитати документацію " + } + }, + "classification": { + "licensePlateRecognition": { + "readTheDocumentation": "Прочитати документацію", + "title": "Розпізнавання номерних знаків" + }, + "faceRecognition": { + "readTheDocumentation": "Прочитати документацію" + } + }, + "frigatePlus": { + "modelInfo": { + "loading": "Завантаження інформації про модель…", + "loadingAvailableModels": "Завантаження доступних моделей…" + } + } +} diff --git a/web/public/locales/uk/views/system.json b/web/public/locales/uk/views/system.json index 0967ef424..bd1e4d366 100644 --- a/web/public/locales/uk/views/system.json +++ b/web/public/locales/uk/views/system.json @@ -1 +1,30 @@ -{} +{ + "cameras": { + "label": { + "ffmpeg": "FFmpeg", + "cameraSkippedDetectionsPerSecond": "{{camName}} пропущених виявлень на секунду", + "cameraDetect": "{{camName}} виявлення", + "cameraFfmpeg": "{{camName}} FFmpeg", + "overallDetectionsPerSecond": "загальна кiлькiсть виявлень за секунду", + "cameraDetectionsPerSecond": "{{camName}} виявлень на секунду", + "overallFramesPerSecond": "загальна кiлкiсть кадрiв на секунду", + "overallSkippedDetectionsPerSecond": "загальна кiлкiсть пропущених виявлень за секунду", + "cameraCapture": "{{camName}} захоплення", + "cameraFramesPerSecond": "{{camName}} кадрiв на секунду", + "skipped": "пропущено" + }, + "toast": { + "success": { + "copyToClipboard": "Тестові дані копіюються в буфер обміну." + } + } + }, + "enrichments": { + "embeddings": { + "plate_recognition": "Розпiзнавання номерiв" + } + }, + "general": { + "title": "Загальний" + } +} diff --git a/web/public/locales/vi/common.json b/web/public/locales/vi/common.json index 905031c92..97b5d2b75 100644 --- a/web/public/locales/vi/common.json +++ b/web/public/locales/vi/common.json @@ -184,7 +184,7 @@ "export": "xuất", "deleteNow": "xóa ngay", "next": "tiếp theo", - "saving": "Đang lưu..." + "saving": "Đang lưu…" }, "toast": { "copyUrlToClipboard": "Đã sao chép liên kết.", diff --git a/web/public/locales/vi/components/camera.json b/web/public/locales/vi/components/camera.json index c9019e985..2e74eeb29 100644 --- a/web/public/locales/vi/components/camera.json +++ b/web/public/locales/vi/components/camera.json @@ -5,6 +5,8 @@ "confirm": { "title": "Xác nhận xóa" } - } + }, + "label": "Các nhóm Camera", + "add": "Thêm nhóm Camera" } } diff --git a/web/public/locales/vi/components/dialog.json b/web/public/locales/vi/components/dialog.json index 369e45ef0..49edf5f85 100644 --- a/web/public/locales/vi/components/dialog.json +++ b/web/public/locales/vi/components/dialog.json @@ -6,5 +6,57 @@ "title": "Đang khởi động lại Frigate", "content": "Trang này sẽ tải lại sau {{countdown}} giây." } + }, + "explore": { + "plus": { + "review": { + "question": { + "ask_a": "Đây có phải là {{label}} không?", + "ask_an": "Đây có phải là {{label}} không?", + "label": "Xác nhận nhãn này cho Frigate Plus", + "ask_full": "Đây có phải là {{untranslatedLabel}} ({{translatedLabel}}) không?" + }, + "state": { + "submitted": "Đã gửi" + } + }, + "submitToPlus": { + "label": "Gửi lên Frigate+", + "desc": "Đối tượng xuất hiện ở các khu vực bạn muốn tránh không được xem là phát hiện sai. Gửi chúng lên dưới dạng phát hiện sai có thể làm mô hình bị nhầm lẫn." + } + }, + "video": { + "viewInHistory": "Xem lại trong Lịch sử" + } + }, + "export": { + "time": { + "fromTimeline": "Chọn từ Dòng thời gian", + "custom": "Tuỳ chọn", + "start": { + "title": "Thời gian bắt đầu", + "label": "Chọn thời gian bắt đầu" + }, + "end": { + "title": "Thời gian kết thúc", + "label": "Chọn thời gian kết thúc" + } + }, + "name": { + "placeholder": "Đặt tên cho bản xuất" + }, + "select": "Chọn", + "export": "Xuất", + "selectOrExport": "Chọn hay xuất", + "toast": { + "error": { + "endTimeMustAfterStartTime": "Thời gian kết thúc phải sau thời gian bắt đầu", + "noVaildTimeSelected": "Chưa chọn khoảng thời gian hợp lệ" + } + }, + "fromTimeline": { + "saveExport": "Lưu bản xuất", + "previewExport": "Xem trước bản xuất" + } } } diff --git a/web/public/locales/vi/components/icons.json b/web/public/locales/vi/components/icons.json index dae0f25f0..666736ef0 100644 --- a/web/public/locales/vi/components/icons.json +++ b/web/public/locales/vi/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "Chọn một biểu tượng", "search": { - "placeholder": "Tìm kiếm một biểu tượng..." + "placeholder": "Tìm kiếm một biểu tượng…" } } } diff --git a/web/public/locales/yue-Hant/audio.json b/web/public/locales/yue-Hant/audio.json new file mode 100644 index 000000000..8d29100d5 --- /dev/null +++ b/web/public/locales/yue-Hant/audio.json @@ -0,0 +1,429 @@ +{ + "speech": "講話", + "babbling": "牙牙學語", + "yell": "大嗌", + "bellow": "咆哮", + "whoop": "歡呼聲", + "whispering": "細細聲", + "laughter": "笑聲", + "sigh": "歎氣聲", + "crying": "喊聲", + "yodeling": "山歌", + "choir": "合唱", + "snicker": "偷笑聲", + "mantra": "咒語", + "singing": "歌聲", + "chant": "唸經", + "breathing": "呼吸聲", + "child_singing": "兒童歌聲", + "rapping": "饒舌", + "humming": "哼歌", + "whistling": "口哨聲", + "synthetic_singing": "人造歌聲", + "groan": "呻吟聲", + "grunt": "哼聲", + "snort": "哼哼聲", + "throat_clearing": "清喉嚨", + "wheeze": "氣喘聲", + "snoring": "鼻鼾聲", + "gasp": "喘氣", + "pant": "急促喘氣", + "cough": "咳嗽", + "sneeze": "打乞嚏", + "shuffle": "拖步行", + "sniff": "嗅嗅聲", + "footsteps": "腳步聲", + "chewing": "咀嚼聲", + "biting": "咬嘢聲", + "gargling": "漱口聲", + "run": "跑步", + "stomach_rumble": "肚餓聲", + "burping": "打嗝聲", + "clapping": "掌聲", + "children_playing": "兒童玩耍聲", + "applause": "掌聲", + "heartbeat": "心跳", + "growling": "狗咆哮聲", + "bow_wow": "狗汪汪聲", + "caterwaul": "貓嚎叫", + "howl": "狗慘叫聲", + "livestock": "牲畜", + "clip_clop": "馬蹄聲", + "cattle": "牛", + "horse": "馬", + "heart_murmur": "心臟雜音", + "fart": "放屁", + "hands": "手", + "cheering": "歡呼聲", + "dog": "狗", + "bark": "樹皮", + "yip": "狗尖叫聲", + "chatter": "嘈雜聲", + "purr": "貓呼嚕聲", + "whimper_dog": "狗嗚咽聲", + "hiccup": "打嗝聲", + "finger_snapping": "彈手指聲", + "crowd": "人群聲", + "animal": "動物", + "pets": "寵物", + "cat": "貓", + "meow": "貓喵喵聲", + "hiss": "貓嘶嘶聲", + "neigh": "馬嘶聲", + "cowbell": "牛鈴", + "moo": "牛哞哞聲", + "gobble": "火雞叫聲", + "turkey": "火雞", + "chicken": "雞", + "cluck": "雞咯咯聲", + "fowl": "家禽", + "sheep": "羊", + "duck": "鴨子", + "goat": "山羊", + "pig": "豬", + "oink": "豬哼聲", + "bleat": "咩咩聲", + "cock_a_doodle_doo": "公雞叫聲", + "honk": "鵝叫聲", + "quack": "鴨叫聲", + "goose": "鵝", + "wild_animals": "野生動物", + "crow": "烏鴉", + "coo": "白鴿咕咕聲", + "pigeon": "白鴿", + "roaring_cats": "貓咆哮聲", + "roar": "咆哮聲", + "bird": "鳥", + "chirp": "鳥啾啾聲", + "squawk": "鳥嘎嘎聲", + "caw": "烏鴉呱呱聲", + "mouse": "滑鼠", + "owl": "貓頭鷹", + "rats": "大老鼠", + "hoot": "貓頭鷹咕咕聲", + "patter": "老鼠腳步聲", + "flapping_wings": "拍打翅膀聲", + "dogs": "狗", + "snake": "蛇", + "insect": "昆蟲", + "whale_vocalization": "鯨魚叫聲", + "rattle": "蛇叫聲", + "fly": "蒼蠅", + "croak": "青蛙呱呱聲", + "mosquito": "蚊", + "music": "音樂", + "frog": "青蛙", + "cricket": "蟋蟀", + "buzz": "嗡嗡聲", + "musical_instrument": "樂器", + "steel_guitar": "鋼弦結他", + "tapping": "拍擊", + "guitar": "結他", + "strum": "撥弦聲", + "electric_guitar": "電結他", + "plucked_string_instrument": "撥弦樂器", + "bass_guitar": "低音結他", + "banjo": "班祖琴", + "acoustic_guitar": "原聲結他", + "piano": "鋼琴", + "synthesizer": "合成器", + "keyboard": "鍵盤", + "organ": "風琴", + "sitar": "錫塔琴", + "mandolin": "曼陀鈴", + "zither": "齊特琴", + "ukulele": "烏克麗麗", + "sampler": "採樣器", + "hammond_organ": "哈蒙德風琴", + "electric_piano": "電子鋼琴", + "electronic_organ": "電子風琴", + "rimshot": "鼓邊敲擊", + "bass_drum": "低音鼓", + "drum_kit": "鼓套", + "drum_machine": "鼓機", + "drum": "鼓", + "snare_drum": "小鼓", + "timpani": "定音鼓", + "drum_roll": "鼓聲", + "harpsichord": "大鍵琴", + "percussion": "打擊樂器", + "trumpet": "小號", + "cymbal": "銅鈸", + "french_horn": "法國號", + "string_section": "弦樂組", + "saxophone": "色士風", + "marimba": "馬林巴琴", + "mallet_percussion": "鎚擊樂器", + "maraca": "沙槌", + "harp": "豎琴", + "orchestra": "管弦樂團", + "violin": "小提琴", + "gong": "鑼", + "flute": "長笛", + "bowed_string_instrument": "弓弦樂器", + "vibraphone": "顫音琴", + "tabla": "塔布拉鼓", + "trombone": "長號", + "tambourine": "鈴鼓", + "double_bass": "低音提琴", + "brass_instrument": "銅管樂器", + "cello": "大提琴", + "clarinet": "單簧管", + "pizzicato": "撥奏", + "hi_hat": "高帽鈸", + "wood_block": "木魚", + "tubular_bells": "管鐘", + "glockenspiel": "鐘琴", + "steelpan": "鋼鼓", + "wind_instrument": "管樂器", + "bell": "鐘", + "bicycle_bell": "單車鈴", + "wind_chime": "風鈴", + "church_bell": "教堂鐘聲", + "chime": "鈴聲", + "tuning_fork": "音叉", + "jingle_bell": "鈴鐺", + "accordion": "手風琴", + "bagpipes": "風笛", + "didgeridoo": "迪吉里杜管", + "theremin": "特雷門琴", + "singing_bowl": "頌缽", + "scratching": "抓碟聲", + "pop_music": "流行音樂", + "hip_hop_music": "嘻哈音樂", + "harmonica": "口琴", + "beatboxing": "人聲節奏", + "country": "鄉村音樂", + "water": "水", + "scary_music": "恐怖音樂", + "music_of_asia": "亞洲音樂", + "dance_music": "舞曲", + "video_game_music": "電子遊戲音樂", + "thunderstorm": "雷雨", + "bluegrass": "藍草音樂", + "train_wheels_squealing": "火車車輪聲", + "techno": "電子舞曲", + "new-age_music": "新世紀音樂", + "background_music": "背景音樂", + "theme_music": "主題音樂", + "jingle": "鈴聲", + "bus": "巴士", + "emergency_vehicle": "緊急車輛", + "aircraft": "飛機", + "ice_cream_truck": "雪糕車", + "dubstep": "杜步音樂", + "aircraft_engine": "飛機引擎聲", + "funk": "放克音樂", + "lullaby": "搖籃曲", + "rain": "雨", + "happy_music": "快樂音樂", + "music_of_latin_america": "拉丁美洲音樂", + "soundtrack_music": "配樂", + "rock_music": "搖滾樂", + "rock_and_roll": "搖滾樂", + "psychedelic_rock": "迷幻搖滾", + "rhythm_and_blues": "節奏藍調", + "soul_music": "靈魂音樂", + "reggae": "雷鬼音樂", + "folk_music": "民謠音樂", + "middle_eastern_music": "中東音樂", + "jazz": "爵士樂", + "disco": "迪斯可音樂", + "classical_music": "古典音樂", + "opera": "歌劇", + "electronic_music": "電子音樂", + "house_music": "浩室音樂", + "electronic_dance_music": "電子舞曲", + "ambient_music": "環境音樂", + "trance_music": "迷幻音樂", + "salsa_music": "薩爾薩音樂", + "flamenco": "佛朗明哥", + "blues": "藍調音樂", + "music_for_children": "兒童音樂", + "vocal_music": "聲樂", + "a_capella": "無伴奏合唱", + "music_of_africa": "非洲音樂", + "afrobeat": "非洲節拍", + "christian_music": "基督教音樂", + "gospel_music": "福音音樂", + "music_of_bollywood": "寶萊塢音樂", + "ska": "斯卡音樂", + "traditional_music": "傳統音樂", + "independent_music": "獨立音樂", + "song": "歌曲", + "raindrop": "雨點聲", + "rain_on_surface": "雨打地面聲", + "stream": "小溪", + "waterfall": "瀑布", + "ocean": "海洋", + "waves": "波浪", + "steam": "蒸氣", + "gurgling": "咕嚕聲", + "fire": "火", + "crackle": "劈啪聲", + "vehicle": "車輛", + "boat": "船", + "sailboat": "帆船", + "rowboat": "划艇", + "motorboat": "機動船", + "ship": "船", + "motor_vehicle": "機動車", + "car": "車", + "toot": "汽車響咹聲", + "car_alarm": "汽車防盜器", + "power_windows": "電動車窗", + "skidding": "車胎打滑聲", + "tire_squeal": "車胎尖叫聲", + "car_passing_by": "車駛過聲", + "race_car": "賽車", + "truck": "貨車", + "air_brake": "煞車聲", + "air_horn": "空氣喇叭", + "police_car": "警車", + "ambulance": "救護車", + "fire_engine": "消防車", + "motorcycle": "電單車", + "rail_transport": "鐵路運輸", + "train_whistle": "火車汽笛聲", + "train_horn": "火車喇叭聲", + "railroad_car": "火車車廂", + "propeller": "螺旋槳", + "helicopter": "直升機", + "fixed-wing_aircraft": "固定翼飛機", + "bicycle": "單車", + "skateboard": "滑板", + "engine": "引擎", + "light_engine": "小型引擎", + "dental_drill's_drill": "牙科鑽機", + "lawn_mower": "剪草機", + "chainsaw": "電鋸", + "medium_engine": "中型引擎", + "heavy_engine": "大型引擎", + "engine_knocking": "引擎敲擊聲", + "engine_starting": "引擎啟動聲", + "idling": "引擎空轉聲", + "accelerating": "加速聲", + "door": "門", + "doorbell": "門鈴", + "ding-dong": "叮咚聲", + "sliding_door": "趟門", + "knock": "敲門", + "tap": "輕敲門", + "squeak": "吱吱聲", + "cupboard_open_or_close": "櫃門開關聲", + "drawer_open_or_close": "抽屜開關聲", + "dishes": "餐具聲", + "cutlery": "刀叉", + "chopping": "切菜聲", + "frying": "炒煮", + "microwave_oven": "微波爐", + "water_tap": "水龍頭", + "electric_toothbrush": "電動牙刷", + "vacuum_cleaner": "吸塵機", + "zipper": "拉鍊", + "keys_jangling": "鎖匙碰撞聲", + "coin": "硬幣", + "scissors": "剪刀", + "electric_shaver": "電鬚刨", + "shuffling_cards": "洗牌", + "typing": "打字", + "computer_keyboard": "電腦鍵盤", + "telephone": "電話", + "telephone_bell_ringing": "電話鈴聲", + "siren": "警報聲", + "steam_whistle": "蒸氣汽笛", + "mechanisms": "機械聲", + "ratchet": "棘輪聲", + "clock": "時鐘", + "tick": "滴答聲", + "tick-tock": "滴答滴答聲", + "sewing_machine": "衣車", + "mechanical_fan": "機械風扇", + "printer": "印表機", + "camera": "鏡頭", + "single-lens_reflex_camera": "單反相機", + "tools": "工具", + "hammer": "鎚仔", + "sawing": "鋸", + "filing": "銼", + "sanding": "打磨", + "power_tool": "電動工具", + "drill": "鑽", + "explosion": "爆炸", + "fusillade": "連環射擊", + "artillery_fire": "火砲", + "cap_gun": "玩具槍", + "fireworks": "煙花", + "firecracker": "炮仗", + "burst": "爆裂", + "eruption": "爆發", + "wood": "木頭", + "chop": "劈木聲", + "splinter": "木刺聲", + "crack": "裂聲", + "shatter": "破碎聲", + "silence": "寂靜", + "sound_effect": "音效", + "white_noise": "白噪音", + "pink_noise": "粉紅噪音", + "television": "電視", + "radio": "收音機", + "field_recording": "現場錄音", + "angry_music": "憤怒音樂", + "sad_music": "悲傷音樂", + "wind": "風", + "wind_noise": "風聲", + "drum_and_bass": "鼓和貝斯", + "wedding_music": "婚禮音樂", + "progressive_rock": "前衛搖滾", + "grunge": "垃圾搖滾", + "punk_rock": "朋克搖滾", + "christmas_music": "聖誕音樂", + "subway": "地鐵", + "thunder": "雷聲", + "carnatic_music": "卡納蒂克音樂", + "traffic_noise": "交通噪音", + "train": "火車", + "slam": "砰門聲", + "tender_music": "溫柔音樂", + "reversing_beeps": "倒車提示聲", + "heavy_metal": "重金屬音樂", + "jet_engine": "噴射機引擎聲", + "rustling_leaves": "樹葉沙沙聲", + "electronica": "電子樂", + "swing_music": "搖擺音樂", + "exciting_music": "刺激音樂", + "ringtone": "鈴聲", + "pulleys": "滑輪", + "jackhammer": "風鑽", + "writing": "寫作", + "toilet_flush": "沖廁", + "whistle": "哨子聲", + "gunshot": "槍聲", + "alarm_clock": "鬧鐘", + "dial_tone": "電話按號聲", + "boom": "轟隆", + "typewriter": "打字機", + "blender": "攪拌機", + "toothbrush": "牙刷", + "cash_register": "收銀機", + "civil_defense_siren": "民防警報", + "machine_gun": "機關槍", + "sink": "洗手盆", + "fire_alarm": "火警鐘", + "bathtub": "浴缸", + "busy_signal": "線路繁忙聲", + "smoke_detector": "煙霧偵測器", + "hair_dryer": "吹風機", + "alarm": "警報", + "gears": "齒輪", + "telephone_dialing": "電話撥號聲", + "foghorn": "霧號", + "buzzer": "蜂鳴器聲", + "air_conditioning": "冷氣機", + "glass": "玻璃", + "chink": "碰撞聲", + "environmental_noise": "環境噪音", + "static": "靜電聲", + "scream": "尖叫聲" +} diff --git a/web/public/locales/yue-Hant/common.json b/web/public/locales/yue-Hant/common.json new file mode 100644 index 000000000..3f4b4d468 --- /dev/null +++ b/web/public/locales/yue-Hant/common.json @@ -0,0 +1,242 @@ +{ + "time": { + "untilForTime": "直到 {{time}}", + "untilRestart": "直到重新啟動", + "yesterday": "昨日", + "last7": "過去7日", + "last14": "過去14日", + "last30": "過去30日", + "thisWeek": "今個星期", + "lastMonth": "上個月", + "10minutes": "10分鐘", + "12hours": "12 小時", + "24hours": "24 小時", + "am": "上午", + "year_other": "{{time}}年", + "mo": "{{time}}月", + "m": "{{time}}分鐘", + "minute_other": "{{time}}分鐘", + "formattedTimestamp": { + "12hour": "M月d日 ah:mm:ss", + "24hour": "M月d日 HH:mm:ss" + }, + "formattedTimestampHourMinute": { + "12hour": "a h:mm", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "ah:mm:ss", + "24hour": "HH:mm:ss" + }, + "formattedTimestampFilename": { + "24hour": "yy年MM月dd日 HH時mm分ss秒", + "12hour": "yy年MM月dd日 ah時mm分ss秒" + }, + "s": "{{time}}秒", + "formattedTimestamp2": { + "12hour": "MM月dd日 ah:mm:ss", + "24hour": "MM月dd日 HH:mm:ss" + }, + "thisMonth": "今個月", + "pm": "下午", + "formattedTimestampMonthDayHourMinute": { + "24hour": "M月d日 HH:mm", + "12hour": "M月d日 ah:mm" + }, + "justNow": "剛剛", + "day_other": "{{time}}日", + "hour_other": "{{time}}小時", + "30minutes": "30分鐘", + "5minutes": "5分鐘", + "yr": "{{time}}年", + "today": "今日", + "month_other": "{{time}}月", + "second_other": "{{time}}秒", + "untilForRestart": "直到 Frigate 重新啟動。", + "ago": "{{timeAgo}} 前", + "d": "{{time}}日", + "lastWeek": "上個星期", + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "yyyy年M月d日 ah:mm", + "24hour": "yyyy年M月d日 HH:mm" + }, + "1hour": "1 小時", + "h": "{{time}}小時", + "formattedTimestampMonthDay": "M月d日" + }, + "unit": { + "speed": { + "mph": "英里/小時", + "kph": "公里/小時" + } + }, + "label": { + "back": "返回" + }, + "button": { + "apply": "套用", + "reset": "重置", + "done": "完成", + "enabled": "已啟用", + "enable": "啟用", + "disabled": "已停用", + "disable": "停用", + "save": "儲存", + "saving": "儲存中…", + "cancel": "取消", + "close": "關閉", + "copy": "複製", + "back": "返回", + "history": "歷史記錄", + "fullscreen": "全螢幕", + "exitFullscreen": "離開全螢幕", + "pictureInPicture": "畫中畫", + "twoWayTalk": "雙向通話", + "cameraAudio": "鏡頭音訊", + "suspended": "已暫停", + "export": "匯出", + "deleteNow": "立即刪除", + "next": "下一步", + "play": "播放", + "no": "否", + "copyCoordinates": "複製座標", + "delete": "刪除", + "off": "關閉", + "edit": "編輯", + "on": "開啟", + "yes": "是", + "info": "資訊", + "download": "下載", + "unsuspended": "取消暫停", + "unselect": "取消選取" + }, + "menu": { + "system": "系統", + "systemMetrics": "系統指標", + "configuration": "設定", + "systemLogs": "系統日誌", + "settings": "設定", + "configurationEditor": "設定編輯器", + "languages": "語言", + "language": { + "en": "English (英文)", + "es": "Español (西班牙文)", + "zhCN": "简体中文 (簡體中文)", + "hi": "हिन्दी (印地文)", + "fr": "Français (法文)", + "de": "Deutsch (德文)", + "ja": "日本語 (日文)", + "it": "Italiano (意大利文)", + "tr": "Türkçe (土耳其文)", + "nl": "Nederlands (荷蘭文)", + "cs": "Čeština (捷克文)", + "nb": "Norsk Bokmål (挪威文)", + "ko": "한국어 (韓文)", + "vi": "Tiếng Việt (越南文)", + "fa": "فارسی (波斯文)", + "pl": "Polski (波蘭文)", + "el": "Ελληνικά (希臘文)", + "ro": "Română (羅馬尼亞文)", + "hu": "Magyar (匈牙利文)", + "fi": "Suomi (芬蘭文)", + "da": "Dansk (丹麥文)", + "sk": "Slovenčina (斯洛伐克文)", + "withSystem": { + "label": "使用系統語言設定" + }, + "ru": "Русский (俄文)", + "sv": "Svenska (瑞典文)", + "ar": "العربية (阿拉伯文)", + "pt": "Português (葡萄牙文)", + "uk": "Українська (烏克蘭文)", + "he": "עברית (希伯來文)", + "yue": "粵語 (廣東話)" + }, + "appearance": "外觀", + "darkMode": { + "label": "深色模式", + "light": "淺色", + "dark": "深色", + "withSystem": { + "label": "使用系統模式設定" + } + }, + "withSystem": "系統", + "theme": { + "label": "主題", + "blue": "藍色", + "green": "綠色", + "nord": "北歐風", + "red": "紅色", + "default": "預設", + "contrast": "高對比", + "highcontrast": "高對比度" + }, + "documentation": { + "title": "文件", + "label": "Frigate 文件" + }, + "restart": "重新啟動 Frigate", + "live": { + "title": "即時", + "allCameras": "所有鏡頭", + "cameras": { + "title": "鏡頭", + "count_other": "{{count}} 個鏡頭" + } + }, + "review": "審查", + "explore": "瀏覽", + "export": "匯出", + "uiPlayground": "UI 測試場", + "faceLibrary": "臉部資料庫", + "user": { + "title": "使用者", + "logout": "登出", + "account": "帳戶", + "current": "當前使用者:{{user}}", + "anonymous": "匿名", + "setPassword": "設定密碼" + }, + "help": "幫助" + }, + "role": { + "admin": "管理員", + "viewer": "檢視者", + "desc": "管理員擁有 Frigate UI 全功能存取權限。檢視者只能查看鏡頭、審查項目和歷史影像。", + "title": "角色" + }, + "pagination": { + "label": "分頁", + "previous": { + "title": "上一頁", + "label": "前往上一頁" + }, + "next": { + "title": "下一頁", + "label": "前往下一頁" + }, + "more": "更多頁數" + }, + "accessDenied": { + "title": "拒絕存取", + "documentTitle": "拒絕存取 - Frigate", + "desc": "你無權查看此頁面。" + }, + "selectItem": "選擇 {{item}}", + "toast": { + "save": { + "error": { + "noMessage": "儲存設定變更失敗", + "title": "儲存設定變更失敗:{{errorMessage}}" + }, + "title": "儲存" + }, + "copyUrlToClipboard": "已複製 URL 到剪貼簿。" + }, + "notFound": { + "documentTitle": "找不到頁面 - Frigate", + "desc": "找不到頁面", + "title": "404" + } +} diff --git a/web/public/locales/yue-Hant/components/auth.json b/web/public/locales/yue-Hant/components/auth.json new file mode 100644 index 000000000..ebc3b8df7 --- /dev/null +++ b/web/public/locales/yue-Hant/components/auth.json @@ -0,0 +1,15 @@ +{ + "form": { + "errors": { + "webUnknownError": "未知錯誤。請檢查控制台日誌。", + "rateLimit": "超過速率限制。請稍後再試。", + "usernameRequired": "必須填寫用戶名", + "passwordRequired": "必須填寫密碼", + "loginFailed": "登入失敗", + "unknownError": "未知錯誤。請檢查日誌。" + }, + "user": "用戶名", + "password": "密碼", + "login": "登入" + } +} diff --git a/web/public/locales/yue-Hant/components/camera.json b/web/public/locales/yue-Hant/components/camera.json new file mode 100644 index 000000000..80646f1ac --- /dev/null +++ b/web/public/locales/yue-Hant/components/camera.json @@ -0,0 +1,83 @@ +{ + "group": { + "camera": { + "setting": { + "audio": { + "tips": { + "title": "此串流必須從你的鏡頭輸出音訊並在 go2rtc 中設定。", + "document": "閱讀文件 " + } + }, + "streamMethod": { + "method": { + "continuousStreaming": { + "desc": { + "warning": "持續串流可能導致高頻寬使用及效能問題,請小心使用。", + "title": "即使沒有偵測到活動,只要在控制台上可見,鏡頭影像也會一直保持即時串流。" + }, + "label": "持續串流" + }, + "smartStreaming": { + "label": "智能串流(建議)", + "desc": "當沒有偵測到活動時,智能串流會每分鐘更新一次鏡頭影像以節省頻寬和資源。當偵測到活動時,影像會無縫切換到即時串流。" + }, + "noStreaming": { + "label": "不串流", + "desc": "鏡頭影像每分鐘只會更新一次,不會進行即時串流。" + } + }, + "label": "串流方式" + }, + "compatibilityMode": { + "label": "相容模式", + "desc": "只有當你的鏡頭串流出現色彩異常及右側有斜線時,才啟用此選項。" + }, + "label": "鏡頭串流設定", + "title": "{{cameraName}} 串流設定", + "desc": "更改此鏡頭群組控制台的即時串流選項。這些設定是裝置/瀏覽器專屬的。", + "audioIsAvailable": "此串流有提供音訊", + "audioIsUnavailable": "此串流沒有音訊" + } + }, + "delete": { + "confirm": { + "title": "確認刪除", + "desc": "你確定要刪除鏡頭群組 {{name}} 嗎?" + }, + "label": "刪除鏡頭群組" + }, + "name": { + "errorMessage": { + "exists": "鏡頭群組名稱已存在。", + "invalid": "鏡頭群組名稱無效。", + "mustLeastCharacters": "鏡頭群組名稱必須至少包含兩個字元。", + "nameMustNotPeriod": "鏡頭群組名稱不能包含句號。" + }, + "placeholder": "請輸入名稱…", + "label": "名稱" + }, + "icon": "圖標", + "cameras": { + "desc": "為此群組選擇鏡頭。", + "label": "鏡頭" + }, + "label": "鏡頭群組", + "add": "新增鏡頭群組", + "edit": "編輯鏡頭群組", + "success": "鏡頭群組({{name}})已儲存。" + }, + "debug": { + "options": { + "label": "設定", + "title": "選項", + "showOptions": "顯示選項", + "hideOptions": "隱藏選項" + }, + "mask": "遮罩", + "boundingBox": "框選區", + "motion": "移動", + "regions": "大區域", + "timestamp": "時間戳記", + "zones": "區域" + } +} diff --git a/web/public/locales/yue-Hant/components/dialog.json b/web/public/locales/yue-Hant/components/dialog.json new file mode 100644 index 000000000..f676ce245 --- /dev/null +++ b/web/public/locales/yue-Hant/components/dialog.json @@ -0,0 +1,108 @@ +{ + "restart": { + "title": "你確定要重新啟動 Frigate 嗎?", + "button": "重新啟動", + "restarting": { + "title": "Frigate 正在重新啟動", + "content": "此頁面將在 {{countdown}} 秒後重新載入。", + "button": "立即強制重新載入" + } + }, + "explore": { + "plus": { + "submitToPlus": { + "label": "提交到 Frigate+", + "desc": "位於你想避免的區域的物件並不是誤判。提交這些作為誤判會令模型混淆。" + }, + "review": { + "question": { + "label": "確認此標籤給 Frigate Plus", + "ask_a": "此物件是 {{label}} 嗎?", + "ask_an": "此物件是 {{label}} 嗎?", + "ask_full": "此物件是 {{untranslatedLabel}}({{translatedLabel}})嗎?" + }, + "state": { + "submitted": "已提交" + } + } + }, + "video": { + "viewInHistory": "在歷史記錄中查看" + } + }, + "export": { + "time": { + "fromTimeline": "從時間線選取", + "lastHour_other": "最后{{count}}小時", + "end": { + "label": "選擇結束時間", + "title": "結束時間" + }, + "custom": "自訂", + "start": { + "title": "開始時間", + "label": "選擇開始時間" + } + }, + "name": { + "placeholder": "為匯出命名" + }, + "select": "選取", + "export": "匯出", + "selectOrExport": "選取或匯出", + "toast": { + "error": { + "failed": "無法開始匯出:{{error}}", + "noVaildTimeSelected": "沒有選取有效的時間範圍", + "endTimeMustAfterStartTime": "結束時間必須在開始時間之後" + }, + "success": "成功開始匯出。請到 /exports 資料夾查看檔案。" + }, + "fromTimeline": { + "saveExport": "儲存匯出", + "previewExport": "預覽匯出" + } + }, + "streaming": { + "label": "串流", + "restreaming": { + "disabled": "此鏡頭未啟用重串流。", + "desc": { + "title": "設定 go2rtc 以啟用此鏡頭的更多即時預覽選項及音訊。", + "readTheDocumentation": "閱讀文件" + } + }, + "showStats": { + "desc": "啟用此選項可在鏡頭畫面上顯示串流統計資料。", + "label": "顯示串流統計資料" + }, + "debugView": "除錯檢視" + }, + "search": { + "saveSearch": { + "label": "儲存搜尋", + "desc": "請為這個已儲存的搜尋輸入名稱。", + "placeholder": "請輸入搜尋名稱", + "overwrite": "{{searchName}} 已存在。儲存將會覆蓋現有資料。", + "button": { + "save": { + "label": "儲存此搜尋" + } + }, + "success": "搜尋({{searchName}})已儲存。" + } + }, + "recording": { + "confirmDelete": { + "title": "確認刪除", + "desc": { + "selected": "你確定要刪除與此審查項目相關的所有錄影嗎?

    按住 Shift 鍵可略過未來此對話框。" + } + }, + "button": { + "export": "匯出", + "markAsReviewed": "標記為已審查", + "deleteNow": "立即刪除" + } + } +} diff --git a/web/public/locales/yue-Hant/components/filter.json b/web/public/locales/yue-Hant/components/filter.json new file mode 100644 index 000000000..5168b44e4 --- /dev/null +++ b/web/public/locales/yue-Hant/components/filter.json @@ -0,0 +1,125 @@ +{ + "reset": { + "label": "重設篩選條件為預設值" + }, + "subLabels": { + "all": "所有子標籤", + "label": "子標籤" + }, + "score": "分數", + "features": { + "label": "特徵", + "hasSnapshot": "有快照", + "hasVideoClip": "有影片片段", + "submittedToFrigatePlus": { + "label": "已提交到 Frigate+", + "tips": "你必須先篩選出有快照的追蹤物件。

    沒有快照的追蹤物件無法提交到 Frigate+。" + } + }, + "sort": { + "label": "排序", + "dateAsc": "日期(由舊到新)", + "dateDesc": "日期(由新到舊)", + "scoreAsc": "物件分數(由細到大)", + "scoreDesc": "物件分數(由大到細)", + "speedAsc": "預計速度(由慢到快)", + "speedDesc": "預計速度(由快到慢)", + "relevance": "相關性" + }, + "cameras": { + "label": "鏡頭篩選", + "all": { + "title": "所有鏡頭", + "short": "鏡頭" + } + }, + "review": { + "showReviewed": "顯示已審查" + }, + "motion": { + "showMotionOnly": "只顯示有移動" + }, + "explore": { + "settings": { + "title": "設定", + "defaultView": { + "summary": "摘要", + "unfilteredGrid": "未篩選網格", + "desc": "當未選取篩選條件時,顯示每個標籤最近追蹤物件的摘要,或顯示未篩選的網格。", + "title": "預設檢視" + }, + "gridColumns": { + "title": "網格欄數", + "desc": "選擇網格檢視中的欄數。" + }, + "searchSource": { + "label": "搜尋來源", + "desc": "選擇搜尋追蹤物件的縮圖還是描述。", + "options": { + "thumbnailImage": "縮圖", + "description": "描述" + } + } + }, + "date": { + "selectDateBy": { + "label": "選擇日期進行篩選" + } + } + }, + "logSettings": { + "filterBySeverity": "依嚴重程度篩選日誌", + "loading": { + "desc": "當日誌窗格捲動到底部時,新日誌將自動串流顯示。", + "title": "載入中" + }, + "label": "篩選日誌等級", + "allLogs": "所有日誌", + "disableLogStreaming": "停用日誌串流" + }, + "trackedObjectDelete": { + "title": "確認刪除", + "toast": { + "success": "成功刪除追蹤物件。", + "error": "刪除追蹤物件失敗:{{errorMessage}}" + }, + "desc": "刪除這 {{objectLength}} 個追蹤物件將會移除快照、儲存的嵌入資料,以及相關的物件生命週期記錄。歷史檢視中的錄影檔案不會被刪除。

    你確定要繼續嗎?

    按住 Shift 鍵可略過未來此對話框。" + }, + "recognizedLicensePlates": { + "loading": "載入已識別車牌中…", + "noLicensePlatesFound": "找不到車牌。", + "selectPlatesFromList": "從列表中選取一個或多個車牌。", + "placeholder": "輸入以搜尋車牌…", + "title": "已識別車牌", + "loadFailed": "載入已識別車牌失敗。" + }, + "estimatedSpeed": "預計速度({{unit}})", + "labels": { + "label": "標籤", + "count_one": "{{count}} 個標籤", + "all": { + "title": "所有標籤", + "short": "標籤" + }, + "count_other": "{{count}} 個標籤" + }, + "zoneMask": { + "filterBy": "按區域遮罩篩選" + }, + "zones": { + "label": "區域", + "all": { + "short": "區域", + "title": "所有區域" + } + }, + "filter": "篩選", + "dates": { + "all": { + "title": "所有日期", + "short": "日期" + } + }, + "more": "更多篩選條件", + "timeRange": "時間範圍" +} diff --git a/web/public/locales/yue-Hant/components/icons.json b/web/public/locales/yue-Hant/components/icons.json new file mode 100644 index 000000000..467858b8d --- /dev/null +++ b/web/public/locales/yue-Hant/components/icons.json @@ -0,0 +1,8 @@ +{ + "iconPicker": { + "selectIcon": "選擇圖示", + "search": { + "placeholder": "搜尋圖示…" + } + } +} diff --git a/web/public/locales/yue-Hant/components/input.json b/web/public/locales/yue-Hant/components/input.json new file mode 100644 index 000000000..ed7eee77c --- /dev/null +++ b/web/public/locales/yue-Hant/components/input.json @@ -0,0 +1,10 @@ +{ + "button": { + "downloadVideo": { + "label": "下載影片", + "toast": { + "success": "你的審查項目影片已開始下載。" + } + } + } +} diff --git a/web/public/locales/yue-Hant/components/player.json b/web/public/locales/yue-Hant/components/player.json new file mode 100644 index 000000000..4fe43d29f --- /dev/null +++ b/web/public/locales/yue-Hant/components/player.json @@ -0,0 +1,51 @@ +{ + "noRecordingsFoundForThisTime": "此時間段內沒有錄影", + "noPreviewFound": "找不到預覽", + "submitFrigatePlus": { + "submit": "提交", + "title": "提交此畫面至 Frigate+?" + }, + "streamOffline": { + "desc": "{{cameraName}} 的 detect 串流未接收到任何畫面,請檢查錯誤日誌", + "title": "串流已離線" + }, + "cameraDisabled": "鏡頭已停用", + "stats": { + "bandwidth": { + "short": "頻寬", + "title": "頻寬:" + }, + "latency": { + "value": "{{seconds}} 秒", + "short": { + "value": "{{seconds}} 秒", + "title": "延遲" + }, + "title": "延遲:" + }, + "totalFrames": "總畫面數:", + "droppedFrames": { + "short": { + "title": "已丟棄", + "value": "{{droppedFrames}} 個畫面" + }, + "title": "丟棄畫面數:" + }, + "decodedFrames": "解碼畫面數:", + "droppedFrameRate": "畫面丟棄率:", + "streamType": { + "title": "串流類型:", + "short": "類型" + } + }, + "toast": { + "success": { + "submittedFrigatePlus": "成功提交畫面至 Frigate+" + }, + "error": { + "submitFrigatePlusFailed": "提交畫面至 Frigate+ 失敗" + } + }, + "noPreviewFoundFor": "找不到 {{cameraName}} 的預覽", + "livePlayerRequiredIOSVersion": "此串流類型需要 iOS 17.1 或以上版本。" +} diff --git a/web/public/locales/yue-Hant/objects.json b/web/public/locales/yue-Hant/objects.json new file mode 100644 index 000000000..b0838d796 --- /dev/null +++ b/web/public/locales/yue-Hant/objects.json @@ -0,0 +1,120 @@ +{ + "vehicle": "車輛", + "car": "車", + "boat": "船", + "bus": "巴士", + "motorcycle": "電單車", + "train": "火車", + "bicycle": "單車", + "skateboard": "滑板", + "door": "門", + "blender": "攪拌機", + "sink": "洗手盆", + "scissors": "剪刀", + "clock": "時鐘", + "toothbrush": "牙刷", + "hair_dryer": "吹風機", + "person": "人", + "airplane": "飛機", + "traffic_light": "紅綠燈", + "fire_hydrant": "消防栓", + "street_sign": "街道標誌", + "stop_sign": "停車標誌", + "parking_meter": "咪錶", + "bench": "長凳", + "bird": "鳥", + "cat": "貓", + "sheep": "羊", + "cow": "牛", + "elephant": "大象", + "bear": "熊", + "zebra": "斑馬", + "giraffe": "長頸鹿", + "backpack": "背囊", + "tie": "領呔", + "suitcase": "行李箱", + "frisbee": "飛碟", + "skis": "滑雪板", + "snowboard": "單板滑雪板", + "sports_ball": "運動球", + "kite": "風箏", + "baseball_bat": "棒球棍", + "baseball_glove": "棒球手套", + "surfboard": "衝浪板", + "tennis_racket": "網球拍", + "bottle": "樽", + "plate": "碟", + "wine_glass": "酒杯", + "cup": "杯", + "fork": "叉", + "bowl": "碗", + "banana": "香蕉", + "apple": "蘋果", + "sandwich": "三文治", + "orange": "橙", + "carrot": "紅蘿蔔", + "hot_dog": "熱狗", + "pizza": "薄餅", + "donut": "甜甜圈", + "cake": "蛋糕", + "chair": "凳", + "couch": "梳化", + "laptop": "手提電腦", + "mouse": "滑鼠", + "remote": "遙控器", + "keyboard": "鍵盤", + "cell_phone": "手機", + "microwave": "微波爐", + "oven": "焗爐", + "toaster": "多士爐", + "refrigerator": "雪櫃", + "book": "書", + "vase": "花瓶", + "teddy_bear": "泰迪熊", + "hair_brush": "梳", + "squirrel": "松鼠", + "deer": "鹿", + "animal": "動物", + "bark": "樹皮", + "fox": "狐狸", + "goat": "山羊", + "rabbit": "兔", + "raccoon": "浣熊", + "robot_lawnmower": "自動剪草機", + "waste_bin": "垃圾桶", + "license_plate": "車牌", + "bbq_grill": "燒烤爐", + "amazon": "亞馬遜", + "usps": "美國郵政", + "ups": "UPS", + "postnl": "荷蘭郵政", + "nzpost": "新西蘭郵政", + "postnord": "北歐郵政", + "gls": "GLS", + "dpd": "DPD", + "broccoli": "西蘭花", + "umbrella": "雨傘", + "eye_glasses": "眼鏡", + "dog": "狗", + "desk": "書枱", + "tv": "電視", + "horse": "馬", + "mirror": "鏡", + "spoon": "匙羹", + "hat": "帽", + "shoe": "鞋", + "potted_plant": "盆栽植物", + "fedex": "聯邦快遞", + "handbag": "手袋", + "dining_table": "飯枱", + "an_post": "愛爾蘭郵政", + "knife": "刀", + "window": "窗", + "bed": "床", + "toilet": "廁所", + "purolator": "Purolator", + "on_demand": "按需要提供", + "face": "人臉", + "package": "包裹", + "dhl": "DHL" +} diff --git a/web/public/locales/yue-Hant/views/configEditor.json b/web/public/locales/yue-Hant/views/configEditor.json new file mode 100644 index 000000000..9e2836915 --- /dev/null +++ b/web/public/locales/yue-Hant/views/configEditor.json @@ -0,0 +1,15 @@ +{ + "documentTitle": "設定編輯器 - Frigate", + "configEditor": "設定編輯器", + "copyConfig": "複製設定", + "saveAndRestart": "儲存並重新啟動", + "saveOnly": "只儲存", + "toast": { + "success": { + "copyToClipboard": "設定已複製到剪貼簿。" + }, + "error": { + "savingError": "儲存設定時出錯" + } + } +} diff --git a/web/public/locales/yue-Hant/views/events.json b/web/public/locales/yue-Hant/views/events.json new file mode 100644 index 000000000..1e1039c93 --- /dev/null +++ b/web/public/locales/yue-Hant/views/events.json @@ -0,0 +1,37 @@ +{ + "camera": "鏡頭", + "alerts": "警報", + "empty": { + "alert": "沒有警報需要審查", + "detection": "沒有偵測到的項目需要審查", + "motion": "找不到移動數據" + }, + "timeline": "時間線", + "events": { + "label": "事件", + "noFoundForTimePeriod": "此時段內沒有找到事件。", + "aria": "選擇事件" + }, + "recordings": { + "documentTitle": "錄影 - Frigate" + }, + "calendarFilter": { + "last24Hours": "過去24小時" + }, + "markAsReviewed": "標記為已審查", + "markTheseItemsAsReviewed": "將這些項目標記為已審查", + "newReviewItems": { + "label": "查看新的審查項目", + "button": "有新的審查項目" + }, + "selected_one": "已選擇 {{count}} 項", + "selected_other": "已選擇 {{count}} 項", + "allCameras": "所有鏡頭", + "documentTitle": "審查 - Frigate", + "motion": { + "only": "只顯示移動", + "label": "移動" + }, + "detections": "偵測", + "timeline.aria": "選擇時間線" +} diff --git a/web/public/locales/yue-Hant/views/explore.json b/web/public/locales/yue-Hant/views/explore.json new file mode 100644 index 000000000..bf35cacde --- /dev/null +++ b/web/public/locales/yue-Hant/views/explore.json @@ -0,0 +1,198 @@ +{ + "documentTitle": "瀏覽 - Frigate", + "generativeAI": "生成式人工智能", + "exploreIsUnavailable": { + "title": "無法使用瀏覽功能", + "embeddingsReindexing": { + "startingUp": "啟動中…", + "estimatedTime": "預計剩餘時間:", + "finishingShortly": "即將完成", + "step": { + "thumbnailsEmbedded": "已嵌入縮圖: ", + "descriptionsEmbedded": "已嵌入描述: ", + "trackedObjectsProcessed": "已處理的追蹤物件: " + }, + "context": "完成重新索引追蹤物件的嵌入後即可使用瀏覽功能。" + }, + "downloadingModels": { + "tips": { + "context": "下載完成後,你可能需要重新索引追蹤物件的嵌入。", + "documentation": "閱讀文件" + }, + "error": "發生錯誤。請檢查 Frigate 日誌。", + "context": "Frigate 正在下載必要的嵌入模型以支援語意搜尋功能。這可能需要幾分鐘,視乎你的網絡速度。", + "setup": { + "textTokenizer": "文字分詞器", + "textModel": "文字模型", + "visionModelFeatureExtractor": "視覺模型特徵提取器", + "visionModel": "視覺模型" + } + } + }, + "trackedObjectDetails": "追蹤物件詳情", + "type": { + "details": "詳情", + "snapshot": "快照", + "video": "影片", + "object_lifecycle": "物件生命周期" + }, + "objectLifecycle": { + "title": "物件生命周期", + "noImageFound": "此時間點找不到圖像。", + "createObjectMask": "建立物件遮罩", + "lifecycleItemDesc": { + "active": "{{label}} 變為活躍", + "stationary": "{{label}} 變為靜止", + "attribute": { + "faceOrLicense_plate": "偵測到 {{label}} 的 {{attribute}}", + "other": "{{label}} 被識別為 {{attribute}}" + }, + "header": { + "zones": "區域", + "ratio": "比例", + "area": "區域範圍" + }, + "heard": "聽到 {{label}}", + "entered_zone": "{{label}} 進入了 {{zones}}", + "gone": "{{label}} 離開了", + "visible": "偵測到 {{label}}", + "external": "偵測到 {{label}}" + }, + "annotationSettings": { + "title": "註解設定", + "showAllZones": { + "title": "顯示所有區域", + "desc": "在物件進入區域的畫面上總是顯示區域。" + }, + "offset": { + "tips": "提示:試想像有一段事件片段,當中有人由左行到右。如果事件時間線上的方框一直偏向人物的左邊,則應該減少數值。相反,如果有人由左行到右,而方框一直走在人物前面,則應該增加數值。", + "desc": "此資料來自鏡頭的偵測串流,但覆蓋在錄影串流的畫面上。兩個串流通常無法完全同步。因此邊界框和影片可能無法完全對齊。不過可以使用 annotation_offset 欄位來調整。", + "label": "註解偏移量", + "documentation": "閱讀文件 ", + "millisecondsToOffset": "偵測註解的偏移毫秒數。預設:0" + } + }, + "carousel": { + "previous": "上一張", + "next": "下一張" + }, + "adjustAnnotationSettings": "調整註解設定", + "scrollViewTips": "滾動以查看此物件生命周期中的重要時刻。", + "autoTrackingTips": "自動追蹤鏡頭的邊界框位置可能不準確。" + }, + "details": { + "item": { + "title": "審查項目詳情", + "desc": "審查項目詳情", + "button": { + "share": "分享此審查項目", + "viewInExplore": "在瀏覽中查看" + }, + "tips": { + "mismatch_other": "偵測到 {{count}} 個不可用的物件並包含在此審查項目中。這些物件可能未符合警報或偵測標準,或已被清除/刪除。", + "hasMissingObjects": "如果你想讓 Frigate 保存下列標籤的追蹤物件,請調整設定:{{objects}}" + }, + "toast": { + "success": { + "updatedSublabel": "成功更新子標籤。", + "updatedLPR": "成功更新車牌號碼。", + "regenerate": "已從 {{provider}} 請求新的描述。根據提供者的速度,生成新的描述可能需要一些時間。" + }, + "error": { + "regenerate": "呼叫 {{provider}} 以獲取新描述失敗:{{errorMessage}}", + "updatedSublabelFailed": "更新子標籤失敗:{{errorMessage}}", + "updatedLPRFailed": "更新車牌號碼失敗:{{errorMessage}}" + } + } + }, + "label": "標籤", + "recognizedLicensePlate": "已識別車牌", + "estimatedSpeed": "預計速度", + "objects": "物件", + "camera": "鏡頭", + "zones": "區域", + "timestamp": "時間戳記", + "tips": { + "descriptionSaved": "成功保存描述", + "saveDescriptionFailed": "更新描述失敗:{{errorMessage}}" + }, + "regenerateFromSnapshot": "從快照重新生成", + "button": { + "regenerate": { + "label": "重新生成追蹤物件描述", + "title": "重新生成" + }, + "findSimilar": "尋找相似項目" + }, + "description": { + "label": "描述", + "placeholder": "追蹤物件的描述", + "aiTips": "Frigate 會等到追蹤物件生命周期結束後,才向你的生成式 AI 提供者請求描述。" + }, + "editLPR": { + "descNoLabel": "為此追蹤物件輸入新的車牌號碼", + "title": "編輯車牌號碼", + "desc": "為此 {{label}} 輸入新的車牌號碼" + }, + "topScore": { + "label": "最高分數", + "info": "最高分數是追蹤物件的最高中位分數,因此可能與搜尋結果縮圖上顯示的分數不同。" + }, + "editSubLabel": { + "desc": "為此 {{label}} 輸入新的子標籤", + "title": "編輯子標籤", + "descNoLabel": "為此追蹤物件輸入新的子標籤" + }, + "snapshotScore": { + "label": "快照分數" + }, + "expandRegenerationMenu": "展開重新生成選單", + "regenerateFromThumbnails": "從縮圖重新生成" + }, + "itemMenu": { + "downloadVideo": { + "label": "下載影片", + "aria": "下載影片" + }, + "downloadSnapshot": { + "label": "下載快照", + "aria": "下載快照" + }, + "viewObjectLifecycle": { + "label": "查看物件生命周期", + "aria": "顯示物件生命周期" + }, + "findSimilar": { + "label": "尋找相似項目", + "aria": "尋找相似追蹤物件" + }, + "submitToPlus": { + "label": "提交到 Frigate+", + "aria": "提交到 Frigate Plus" + }, + "viewInHistory": { + "label": "在歷史記錄中查看", + "aria": "在歷史記錄中查看" + }, + "deleteTrackedObject": { + "label": "刪除此追蹤物件" + } + }, + "dialog": { + "confirmDelete": { + "title": "確認刪除", + "desc": "刪除此追蹤物件會移除快照、所有已保存的嵌入,以及相關的物件生命周期記錄。歷史記錄中的錄影不會被刪除。

    你確定要繼續嗎?" + } + }, + "noTrackedObjects": "找不到追蹤物件", + "fetchingTrackedObjectsFailed": "取得追蹤物件時出錯:{{errorMessage}}", + "searchResult": { + "deleteTrackedObject": { + "toast": { + "success": "追蹤物件已成功刪除。", + "error": "刪除追蹤物件失敗:{{errorMessage}}" + } + } + }, + "trackedObjectsCount_other": "{{count}} 個追蹤物件 " +} diff --git a/web/public/locales/yue-Hant/views/exports.json b/web/public/locales/yue-Hant/views/exports.json new file mode 100644 index 000000000..48d839717 --- /dev/null +++ b/web/public/locales/yue-Hant/views/exports.json @@ -0,0 +1,17 @@ +{ + "documentTitle": "匯出 - Frigate", + "search": "搜尋", + "noExports": "未找到匯出項目", + "deleteExport": "刪除匯出", + "editExport": { + "title": "重新命名匯出", + "desc": "請輸入新的匯出名稱。", + "saveExport": "儲存匯出" + }, + "toast": { + "error": { + "renameExportFailed": "重新命名匯出失敗:{{errorMessage}}" + } + }, + "deleteExport.desc": "你確定要刪除 {{exportName}} 嗎?" +} diff --git a/web/public/locales/yue-Hant/views/faceLibrary.json b/web/public/locales/yue-Hant/views/faceLibrary.json new file mode 100644 index 000000000..a55a0de0a --- /dev/null +++ b/web/public/locales/yue-Hant/views/faceLibrary.json @@ -0,0 +1,82 @@ +{ + "selectItem": "選擇 {{item}}", + "details": { + "timestamp": "時間戳記", + "person": "人", + "confidence": "信心指數", + "face": "人臉詳細資料", + "faceDesc": "人臉及相關物件的詳細資料" + }, + "description": { + "addFace": "逐步了解如何新增一個人臉庫的集合。", + "placeholder": "請輸入此集合的名稱" + }, + "documentTitle": "人臉庫 - Frigate", + "uploadFaceImage": { + "title": "上傳人臉圖片", + "desc": "上傳圖片以掃描人臉並納入 {{pageToggle}}" + }, + "createFaceLibrary": { + "title": "建立集合", + "desc": "建立新集合", + "new": "建立新的人臉", + "nextSteps": "建立穩固基礎:
  • 使用訓練分頁,為每位偵測到的人物選擇並訓練圖片。
  • 以正面照片為主,避免用側面或傾斜角度的人臉作訓練。
  • " + }, + "steps": { + "faceName": "請輸入人臉名稱", + "uploadFace": "上傳人臉圖片", + "nextSteps": "下一步" + }, + "train": { + "title": "訓練", + "aria": "選擇訓練" + }, + "selectFace": "選擇人臉", + "deleteFaceLibrary": { + "title": "刪除名稱", + "desc": "你確定要刪除集合 {{name}} 嗎?這將永久刪除所有相關的人臉資料。" + }, + "renameFace": { + "title": "重新命名人臉", + "desc": "請輸入 {{name}} 的新名稱" + }, + "button": { + "uploadImage": "上傳圖片", + "reprocessFace": "重新處理人臉", + "deleteFace": "刪除人臉", + "addFace": "新增人臉", + "deleteFaceAttempts": "刪除人臉嘗試記錄", + "renameFace": "重新命名人臉" + }, + "imageEntry": { + "validation": { + "selectImage": "請選擇一個圖片檔案。" + }, + "dropActive": "將圖片拖到這裡…", + "dropInstructions": "拖放圖片到此處,或點擊選取", + "maxSize": "最大檔案大小:{{size}}MB" + }, + "readTheDocs": "閱讀文件", + "trainFaceAs": "將人臉訓練為:", + "trainFace": "訓練人臉", + "toast": { + "success": { + "uploadedImage": "成功上傳圖片。", + "renamedFace": "成功將人臉重新命名為 {{name}}", + "trainedFace": "成功訓練人臉。", + "updatedFaceScore": "成功更新人臉分數。", + "deletedFace_other": "成功刪除 {{count}} 個人臉。", + "addFaceLibrary": "{{name}} 已成功加入人臉庫!", + "deletedName_other": "成功刪除 {{count}} 個人臉。" + }, + "error": { + "uploadingImageFailed": "上傳圖片失敗:{{errorMessage}}", + "addFaceLibraryFailed": "設定人臉名稱失敗:{{errorMessage}}", + "deleteFaceFailed": "刪除失敗:{{errorMessage}}", + "deleteNameFailed": "刪除名稱失敗:{{errorMessage}}", + "renameFaceFailed": "重新命名人臉失敗:{{errorMessage}}", + "trainFailed": "訓練失敗:{{errorMessage}}", + "updateFaceScoreFailed": "更新人臉分數失敗:{{errorMessage}}" + } + } +} diff --git a/web/public/locales/yue-Hant/views/live.json b/web/public/locales/yue-Hant/views/live.json new file mode 100644 index 000000000..d9dda2630 --- /dev/null +++ b/web/public/locales/yue-Hant/views/live.json @@ -0,0 +1,158 @@ +{ + "documentTitle": "即時畫面 - Frigate", + "cameraAudio": { + "disable": "停用鏡頭音訊", + "enable": "啟用鏡頭音訊" + }, + "ptz": { + "move": { + "clickMove": { + "label": "點擊畫面以置中鏡頭", + "enable": "啟用點擊移動", + "disable": "停用點擊移動" + }, + "up": { + "label": "移動 PTZ 鏡頭向上" + }, + "right": { + "label": "移動 PTZ 鏡頭向右" + }, + "left": { + "label": "移動 PTZ 鏡頭向左" + }, + "down": { + "label": "移動 PTZ 鏡頭向下" + } + }, + "frame": { + "center": { + "label": "點擊畫面以置中 PTZ 鏡頭" + } + }, + "presets": "PTZ 鏡頭預設位置", + "zoom": { + "in": { + "label": "放大 PTZ 鏡頭" + }, + "out": { + "label": "縮小 PTZ 鏡頭" + } + } + }, + "twoWayTalk": { + "enable": "啟用雙向通話", + "disable": "停用雙向通話" + }, + "lowBandwidthMode": "低頻寬模式", + "documentTitle.withCamera": "{{camera}} - 即時畫面 - Frigate", + "recording": { + "disable": "停用錄影", + "enable": "啟用錄影" + }, + "snapshots": { + "enable": "啟用快照", + "disable": "停用快照" + }, + "audioDetect": { + "enable": "啟用音訊偵測", + "disable": "停用音訊偵測" + }, + "autotracking": { + "enable": "啟用自動追蹤", + "disable": "停用自動追蹤" + }, + "streamStats": { + "enable": "顯示串流統計資料", + "disable": "隱藏串流統計資料" + }, + "manualRecording": { + "title": "按需錄影", + "tips": "根據此鏡頭的錄影保留設定手動啟動事件。", + "debugView": "除錯視圖", + "start": "開始按需錄影", + "showStats": { + "label": "顯示統計資料", + "desc": "啟用此選項可在鏡頭畫面上疊加串流統計資料。" + }, + "playInBackground": { + "desc": "啟用此選項可在播放器隱藏時繼續串流播放。", + "label": "背景播放" + }, + "started": "已開始手動按需錄影。", + "end": "結束按需錄影", + "ended": "已結束手動按需錄影。", + "failedToEnd": "無法結束手動按需錄影。", + "failedToStart": "無法開始手動按需錄影。", + "recordDisabledTips": "由於此鏡頭的設定已停用或限制錄影,因此只會儲存快照。" + }, + "camera": { + "enable": "啟用鏡頭", + "disable": "停用鏡頭" + }, + "muteCameras": { + "enable": "所有鏡頭靜音", + "disable": "所有鏡頭取消靜音" + }, + "detect": { + "disable": "停用偵測", + "enable": "啟用偵測" + }, + "streamingSettings": "串流設定", + "notifications": "通知", + "audio": "音訊", + "suspend": { + "forTime": "暫停時間: " + }, + "stream": { + "title": "串流", + "audio": { + "tips": { + "documentation": "閱讀文件 ", + "title": "音訊必須從你的鏡頭輸出,並在 go2rtc 中正確設定此串流。" + }, + "available": "此串流支援音訊", + "unavailable": "此串流不支援音訊" + }, + "twoWayTalk": { + "tips.documentation": "閱讀文件 ", + "available": "此串流支援雙向通話", + "unavailable": "此串流不支援雙向通話", + "tips": "你的裝置必須支援此功能,且需設定 WebRTC 才能使用雙向通話。" + }, + "lowBandwidth": { + "tips": "因緩衝或串流錯誤,即時畫面已切換至低頻寬模式。", + "resetStream": "重置串流" + }, + "playInBackground": { + "tips": "啟用此選項可在播放器隱藏時繼續串流播放。", + "label": "背景播放" + } + }, + "cameraSettings": { + "cameraEnabled": "鏡頭已啟用", + "objectDetection": "物件偵測", + "recording": "錄影", + "snapshots": "快照", + "autotracking": "自動追蹤", + "audioDetection": "音訊偵測", + "title": "{{camera}} 設定" + }, + "history": { + "label": "顯示歷史影像" + }, + "effectiveRetainMode": { + "modes": { + "all": "全部", + "motion": "移動", + "active_objects": "活躍物件" + }, + "notAllTips": "你的 {{source}} 錄影保留設定為 mode: {{effectiveRetainMode}},因此此按需錄影只會保留{{effectiveRetainModeName}}的片段。" + }, + "editLayout": { + "label": "編輯版面配置", + "group": { + "label": "編輯鏡頭群組" + }, + "exitEdit": "結束編輯" + } +} diff --git a/web/public/locales/yue-Hant/views/recording.json b/web/public/locales/yue-Hant/views/recording.json new file mode 100644 index 000000000..34473d299 --- /dev/null +++ b/web/public/locales/yue-Hant/views/recording.json @@ -0,0 +1,12 @@ +{ + "filter": "篩選", + "export": "匯出", + "calendar": "日曆", + "filters": "篩選條件", + "toast": { + "error": { + "noValidTimeSelected": "未選擇有效的時間範圍", + "endTimeMustAfterStartTime": "結束時間必須在開始時間之後" + } + } +} diff --git a/web/public/locales/yue-Hant/views/search.json b/web/public/locales/yue-Hant/views/search.json new file mode 100644 index 000000000..fea893191 --- /dev/null +++ b/web/public/locales/yue-Hant/views/search.json @@ -0,0 +1,72 @@ +{ + "search": "搜尋", + "savedSearches": "已儲存的搜尋", + "searchFor": "搜尋 {{inputValue}}", + "button": { + "clear": "清除搜尋", + "save": "儲存搜尋", + "delete": "刪除已儲存的搜尋", + "filterInformation": "篩選資料", + "filterActive": "篩選中" + }, + "trackedObjectId": "追蹤物件編號", + "filter": { + "label": { + "labels": "標籤", + "zones": "區域", + "search_type": "搜尋類型", + "time_range": "時間範圍", + "after": "之後", + "recognized_license_plate": "已辨識車牌", + "has_clip": "有片段", + "has_snapshot": "有快照", + "min_score": "最低分數", + "before": "之前", + "max_score": "最高分數", + "max_speed": "最高速度", + "min_speed": "最低速度", + "cameras": "鏡頭", + "sub_labels": "子標籤" + }, + "searchType": { + "thumbnail": "縮圖", + "description": "描述" + }, + "toast": { + "error": { + "beforeDateBeLaterAfter": "「結束」日期必須遲於「開始」日期。", + "afterDatebeEarlierBefore": "「開始」日期必須早於「結束」日期。", + "minScoreMustBeLessOrEqualMaxScore": "「最低分數」必須少於或等於「最高分數」。", + "maxScoreMustBeGreaterOrEqualMinScore": "「最高分數」必須多於或等於「最低分數」。", + "maxSpeedMustBeGreaterOrEqualMinSpeed": "「最高速度」必須多於或等於「最低速度」。", + "minSpeedMustBeLessOrEqualMaxSpeed": "「最低速度」必須少於或等於「最高速度」。" + } + }, + "tips": { + "title": "如何使用文字篩選", + "desc": { + "step1": "輸入篩選鍵名後加上冒號(例如:\"cameras:\")。", + "step2": "從建議中選擇一個值,或者自行輸入。", + "step3": "可以用空格隔開,連續使用多個篩選條件。", + "step4": "日期篩選(before: 同 after:)要用 {{DateFormat}} 格式。", + "step5": "時間範圍篩選要用 {{exampleTime}} 格式。", + "step6": "點擊旁邊的「x」就可以移除篩選條件。", + "text": "篩選可以幫你縮窄搜尋結果。以下係使用方法:", + "exampleLabel": "例子:" + } + }, + "header": { + "activeFilters": "啟用中的篩選條件", + "noFilters": "篩選條件", + "currentFilterType": "篩選數值" + } + }, + "similaritySearch": { + "title": "相似搜尋", + "active": "正在進行相似搜尋", + "clear": "清除相似搜尋" + }, + "placeholder": { + "search": "搜尋…" + } +} diff --git a/web/public/locales/yue-Hant/views/settings.json b/web/public/locales/yue-Hant/views/settings.json new file mode 100644 index 000000000..8d83cf33e --- /dev/null +++ b/web/public/locales/yue-Hant/views/settings.json @@ -0,0 +1,593 @@ +{ + "documentTitle": { + "default": "設定 - Frigate", + "authentication": "認證設定 - Frigate", + "camera": "鏡頭設定 - Frigate", + "classification": "進階功能設定 - Frigate", + "masksAndZones": "遮罩與區域編輯器 - Frigate", + "motionTuner": "移動調校器 - Frigate", + "object": "除錯 - Frigate", + "general": "一般設定 - Frigate", + "frigatePlus": "Frigate+ 設定 - Frigate", + "notifications": "通知設定 - Frigate" + }, + "menu": { + "ui": "介面", + "classification": "進階功能", + "cameras": "鏡頭設定", + "masksAndZones": "遮罩/區域", + "motionTuner": "移動調校器", + "debug": "除錯", + "users": "用戶", + "notifications": "通知", + "frigateplus": "Frigate+" + }, + "dialog": { + "unsavedChanges": { + "title": "你有未儲存的更改。", + "desc": "你想在繼續前儲存更改嗎?" + } + }, + "cameraSetting": { + "camera": "鏡頭", + "noCamera": "沒有鏡頭" + }, + "general": { + "title": "一般設定", + "liveDashboard": { + "playAlertVideos": { + "label": "播放警報影片", + "desc": "預設情況下,即時儀表板上的最近警報會以小型循環影片形式播放。停用此選項後,只會在此裝置/瀏覽器上顯示警報的靜態圖片。" + }, + "automaticLiveView": { + "label": "自動即時檢視", + "desc": "當偵測到活動時,自動切換到該鏡頭的即時畫面。若停用此選項,即時儀表板上的鏡頭靜態畫面將每分鐘只更新一次。" + }, + "title": "即時儀表板" + }, + "storedLayouts": { + "title": "儲存的版面配置", + "clearAll": "清除所有版面配置", + "desc": "鏡頭群組內的鏡頭佈局可以拖動或調整大小。位置會儲存在你瀏覽器的本機儲存空間內。" + }, + "cameraGroupStreaming": { + "title": "鏡頭群組串流設定", + "clearAll": "清除所有串流設定", + "desc": "每個鏡頭群組的串流設定會儲存在你瀏覽器的本機儲存空間內。" + }, + "recordingsViewer": { + "defaultPlaybackRate": { + "desc": "錄影播放的預設播放速度。", + "label": "預設播放速度" + }, + "title": "錄影瀏覽器" + }, + "calendar": { + "title": "日曆", + "firstWeekday": { + "label": "每星期的第一天", + "sunday": "星期日", + "monday": "星期一", + "desc": "審查日曆中每星期開始的日子。" + } + }, + "toast": { + "success": { + "clearStoredLayout": "已清除 {{cameraName}} 的儲存版面配置", + "clearStreamingSettings": "已清除所有鏡頭群組的串流設定。" + }, + "error": { + "clearStoredLayoutFailed": "清除儲存版面配置失敗:{{errorMessage}}", + "clearStreamingSettingsFailed": "清除串流設定失敗:{{errorMessage}}" + } + } + }, + "classification": { + "birdClassification": { + "desc": "鳥類分類會使用量化 Tensorflow 模型識別已知鳥類。當辨識到已知鳥類時,牠的常見名稱會加到子標籤上。此資訊會顯示在介面、篩選器及通知中。", + "title": "鳥類分類" + }, + "semanticSearch": { + "title": "語意搜尋", + "desc": "Frigate 的語意搜尋功能讓你可以利用影像本身、自訂文字描述,或自動產生的描述,在審查項目中尋找已追蹤的物件。", + "readTheDocumentation": "閱讀文件", + "reindexNow": { + "label": "立即重建索引", + "confirmTitle": "確認重建索引", + "confirmButton": "重建索引", + "success": "重建索引已成功開始。", + "alreadyInProgress": "重建索引已在進行中。", + "error": "啟動重建索引失敗:{{errorMessage}}", + "confirmDesc": "你確定要重建索引所有已追蹤物件的嵌入向量嗎?這個過程會在背景運行,但可能會用盡你的 CPU,而且需要一定時間。你可以在「瀏覽」頁面查看進度。", + "desc": "重建索引會為所有已追蹤物件重新生成嵌入向量。這個過程會在背景運行,可能會用盡你的 CPU,所需時間取決於已追蹤物件的數量。" + }, + "modelSize": { + "label": "模型大小", + "desc": "用於語意搜尋的模型大小。", + "small": { + "title": "小型", + "desc": "使用小型模型會採用量化版本,較少佔用 RAM,在 CPU 上運行更快,而嵌入品質的差異非常細微。" + }, + "large": { + "title": "大型", + "desc": "使用大型模型會採用完整的 Jina 模型,並在適用情況下自動於 GPU 上運行。" + } + } + }, + "faceRecognition": { + "modelSize": { + "small": { + "title": "小型", + "desc": "使用小型模型會採用 FaceNet 臉部嵌入模型,在大多數 CPU 上能有效運行。" + }, + "large": { + "title": "大型", + "desc": "使用大型模型會採用 ArcFace 臉部嵌入模型,並在適用情況下自動於 GPU 上運行。" + }, + "label": "模型大小", + "desc": "用於人臉識別的模型大小。" + }, + "readTheDocumentation": "閱讀文件", + "title": "人臉識別", + "desc": "人臉識別功能允許為人物分配名字,當辨識到他們的臉孔時,Frigate 會將名字加到子標籤上。此資訊會顯示於介面、篩選器及通知中。" + }, + "licensePlateRecognition": { + "title": "車牌識別", + "readTheDocumentation": "閱讀文件", + "desc": "Frigate 可以識別車輛上的車牌,自動將偵測到的字元加到已辨識車牌欄位,或將已知名稱加到屬於車輛類型的物件的子標籤上。常見用途包括讀取駛入車道或在街道上駛過的車輛的車牌。" + }, + "restart_required": "需要重新啟動(分類設定已變更)", + "toast": { + "error": "儲存設定變更失敗:{{errorMessage}}", + "success": "分類設定已儲存。請重新啟動 Frigate 以套用你的更改。" + }, + "title": "進階功能設定" + }, + "camera": { + "title": "鏡頭設定", + "streams": { + "title": "串流", + "desc": "停用鏡頭會完全停止 Frigate 處理此鏡頭的串流。將會無法使用偵測、錄影和除錯功能。
    注意:這不會停用 go2rtc 的轉播功能。" + }, + "review": { + "title": "審查", + "desc": "啟用或停用此鏡頭的警報和偵測。停用後,將不會產生新的審查項目。", + "alerts": "警報 ", + "detections": "偵測 " + }, + "reviewClassification": { + "readTheDocumentation": "閱讀文件", + "noDefinedZones": "此鏡頭未定義任何區域。", + "zoneObjectAlertsTips": "在{{cameraName}}的{{zone}}區域偵測到的所有{{alertsLabels}}物件將會顯示為警報。", + "objectDetectionsTips": "無論位於哪個區域,在{{cameraName}}上所有未分類的{{detectionsLabels}}物件將會顯示為偵測結果。", + "objectAlertsTips": "在{{cameraName}}上所有{{alertsLabels}}物件將會顯示為警報。", + "zoneObjectDetectionsTips": { + "text": "在{{cameraName}}的{{zone}}區域內所有未分類的{{detectionsLabels}}物件將會顯示為偵測結果。", + "regardlessOfZoneObjectDetectionsTips": "無論位於哪個區域,在{{cameraName}}上所有未分類的{{detectionsLabels}}物件將會顯示為偵測結果。", + "notSelectDetections": "無論位於哪個區域,在{{cameraName}}的{{zone}}區域偵測到、但未分類為警報的{{detectionsLabels}}物件將會顯示為偵測結果。" + }, + "selectDetectionsZones": "選擇偵測的區域", + "limitDetections": "限制偵測至特定區域", + "title": "審查分類", + "desc": "Frigate會將審查項目分類為「警報」同「偵測」。預設情況下,所有 的物件都會被視為警報。你可以透過設定所需區域,細分審查項目分類。", + "selectAlertsZones": "選擇警報的區域", + "toast": { + "success": "審查分類設定已儲存。請重新啟動Frigate以套用更改。" + } + } + }, + "masksAndZones": { + "toast": { + "error": { + "copyCoordinatesFailed": "無法將座標複製到剪貼簿。" + }, + "success": { + "copyCoordinates": "已將{{polyName}}的座標複製到剪貼簿。" + } + }, + "form": { + "zoneName": { + "error": { + "mustBeAtLeastTwoCharacters": "區域名稱必須至少有2個字元。", + "mustNotBeSameWithCamera": "區域名稱不得與鏡頭名稱相同。", + "alreadyExists": "此鏡頭已存在相同名稱的區域。", + "mustNotContainPeriod": "區域名稱不可包含句號。", + "hasIllegalCharacter": "區域名稱包含非法字元。" + } + }, + "distance": { + "error": { + "mustBeFilled": "必須填寫所有距離欄位,才能使用速度估算功能。", + "text": "距離必須大於或等於0.1。" + } + }, + "inertia": { + "error": { + "mustBeAboveZero": "慣性值必須大於0。" + } + }, + "loiteringTime": { + "error": { + "mustBeGreaterOrEqualZero": "逗留時間必須大於或等於0。" + } + }, + "polygonDrawing": { + "removeLastPoint": "移除最後一個點", + "delete": { + "title": "確認刪除", + "desc": "確定要刪除{{type}} {{name}}嗎?", + "success": "已刪除{{name}}。" + }, + "error": { + "mustBeFinished": "必須完成多邊形繪製後才能儲存。" + }, + "snapPoints": { + "false": "不對齊點", + "true": "對齊點" + }, + "reset": { + "label": "清除所有點" + } + } + }, + "zones": { + "label": "區域", + "add": "新增區域", + "edit": "編輯區域", + "point_other": "{{count}}個點", + "clickDrawPolygon": "在圖片上點擊以繪製多邊形。", + "name": { + "title": "名稱", + "inputPlaceHolder": "請輸入名稱…", + "tips": "名稱必須至少有2個字元,且不可與鏡頭或其他區域同名。" + }, + "inertia": { + "title": "慣性", + "desc": "指定物件需在區域內停留多少個畫格,才會被視為進入該區域。預設:3" + }, + "loiteringTime": { + "desc": "設定物件必須於區域內停留的最少秒數,以觸發動作。預設:0", + "title": "逗留時間" + }, + "objects": { + "title": "物件", + "desc": "此區域適用的物件列表。" + }, + "allObjects": "所有物件", + "speedEstimation": { + "title": "速度估算", + "desc": "啟用此區域內物件的速度估算。區域必須正好有4個點。" + }, + "speedThreshold": { + "title": "速度門檻 ({{unit}})", + "desc": "指定物件於此區域被視為有效時所需的最小速度。", + "toast": { + "error": { + "loiteringTimeError": "設有逗留時間大於0的區域,不應同時使用速度估算功能。", + "pointLengthError": "此區域已停用速度估算功能。啟用速度估算的區域必須正好有4個點。" + } + } + }, + "toast": { + "success": "區域({{zoneName}})已儲存。請重新啟動Frigate以套用更改。" + }, + "desc": { + "title": "區域可讓你定義畫面中的特定範圍,以判斷物件是否進入該範圍。", + "documentation": "文件" + }, + "documentTitle": "編輯區域 - Frigate" + }, + "motionMasks": { + "label": "移動遮罩", + "documentTitle": "編輯移動遮罩 - Frigate", + "desc": { + "title": "移動遮罩可防止不需要的移動觸發偵測。遮罩過多會令物件追蹤變得困難。", + "documentation": "文件" + }, + "edit": "編輯移動遮罩", + "point_other": "{{count}}個點", + "clickDrawPolygon": "在圖片上點擊以繪製多邊形。", + "polygonAreaTooLarge": { + "title": "移動遮罩覆蓋了鏡頭畫面{{polygonArea}}%。建議不要使用過大的遮罩。", + "tips": "移動遮罩無法阻止物件被偵測,應使用必要區域來限制範圍。", + "documentation": "閱讀文件" + }, + "context": { + "title": "移動遮罩用於防止某些不需要的移動(如樹枝晃動、鏡頭時間戳記)觸發偵測。移動遮罩應該非常謹慎使用,過度遮罩會令物件追蹤更加困難。", + "documentation": "閱讀文件" + }, + "add": "新增移動遮罩", + "toast": { + "success": { + "title": "{{polygonName}}已儲存。請重新啟動Frigate以套用更改。", + "noName": "移動遮罩已儲存。請重新啟動Frigate以套用更改。" + } + } + }, + "objectMasks": { + "label": "物件遮罩", + "desc": { + "documentation": "文件", + "title": "物件過濾遮罩根據位置,過濾指定物件類型的誤判偵測。" + }, + "add": "新增物件遮罩", + "context": "物件過濾遮罩根據位置,過濾指定物件類型的誤判偵測。", + "point_other": "{{count}}個點", + "clickDrawPolygon": "在圖片上點擊以繪製多邊形。", + "objects": { + "title": "物件", + "desc": "此物件遮罩適用的物件類型。", + "allObjectTypes": "所有物件類型" + }, + "toast": { + "success": { + "title": "{{polygonName}}已儲存。請重新啟動Frigate以套用更改。", + "noName": "物件遮罩已儲存。請重新啟動Frigate以套用更改。" + } + }, + "documentTitle": "編輯物件遮罩 - Frigate", + "edit": "編輯物件遮罩" + }, + "filter": { + "all": "所有遮罩與區域" + }, + "restart_required": "需要重新啟動(遮罩/區域已變更)" + }, + "motionDetectionTuner": { + "title": "移動偵測調校器", + "desc": { + "title": "Frigate首先利用移動偵測作初步篩選,以判斷畫面中是否出現值得進行物件偵測的情況。", + "documentation": "閱讀移動調整指南" + }, + "Threshold": { + "title": "門檻", + "desc": "門檻值決定像素亮度變化多少才會被視為移動。預設:30" + }, + "contourArea": { + "title": "輪廓面積", + "desc": "輪廓面積值用來決定哪些變化像素群符合移動標準。預設:10" + }, + "improveContrast": { + "title": "改善對比度", + "desc": "改善黑暗場景的對比度。預設:開啟" + }, + "toast": { + "success": "移動設定已儲存。" + } + }, + "debug": { + "title": "除錯", + "objectList": "物件列表", + "noObjects": "沒有物件", + "boundingBoxes": { + "title": "邊框框線", + "colors": { + "info": "
  • 啟動時,系統會為每個物件標籤指派不同顏色
  • 深藍色幼線代表目前沒有偵測到該物件
  • 灰色幼線代表該物件被偵測為靜止狀態
  • 粗線代表該物件正被自動追蹤(若已啟用)
  • ", + "label": "物件邊框顏色" + }, + "desc": "顯示追蹤物件周圍的邊框" + }, + "zones": { + "title": "區域", + "desc": "顯示所有已定義區域的輪廓" + }, + "motion": { + "title": "移動方框", + "desc": "顯示偵測到移動的區域方框", + "tips": "

    移動方框

    畫面中偵測到移動的地方將會顯示亮紅色方框

    " + }, + "regions": { + "desc": "顯示屬於物件偵測器感興趣範圍的方框", + "title": "偵測區", + "tips": "

    偵測區方框

    畫面中屬於物件偵測器感興趣的地方將會顯示亮綠色方框,並且進行分析

    " + }, + "desc": "除錯畫面會即時顯示追蹤到的物件及統計資料。物件列表則顯示偵測到物件的延遲總結。", + "timestamp": { + "title": "時間戳記", + "desc": "在圖片上疊加時間戳記" + }, + "detectorDesc": "Frigate 使用你的偵測器({{detectors}})來偵測鏡頭影片串流中的物件。", + "debugging": "除錯中", + "mask": { + "title": "移動遮罩", + "desc": "顯示移動遮罩多邊形" + }, + "objectShapeFilterDrawing": { + "title": "物件形狀篩選繪圖", + "document": "閱讀文件 ", + "score": "分數", + "area": "面積", + "ratio": "比例", + "desc": "在圖片上畫矩形以查看面積與比例詳情", + "tips": "啟用此選項後,會於鏡頭畫面上繪製矩形,以顯示其面積及比例。這些數值可用於設定物件形狀過濾參數。" + } + }, + "users": { + "management": { + "desc": "管理此Frigate個體的用戶帳戶。", + "title": "用戶管理" + }, + "addUser": "新增用戶", + "updatePassword": "更新密碼", + "toast": { + "success": { + "createUser": "成功建立用戶{{user}}", + "deleteUser": "成功刪除用戶{{user}}", + "roleUpdated": "成功更新{{user}}的角色", + "updatePassword": "成功更新密碼。" + }, + "error": { + "createUserFailed": "建立用戶失敗:{{errorMessage}}", + "roleUpdateFailed": "更新角色失敗:{{errorMessage}}", + "setPasswordFailed": "儲存密碼失敗:{{errorMessage}}", + "deleteUserFailed": "刪除用戶失敗:{{errorMessage}}" + } + }, + "table": { + "username": "用戶名稱", + "role": "角色", + "noUsers": "找不到用戶。", + "changeRole": "更改用戶角色", + "password": "密碼", + "deleteUser": "刪除用戶", + "actions": "操作" + }, + "dialog": { + "form": { + "user": { + "title": "用戶名稱", + "desc": "只允許使用字母、數字、句號及底線。", + "placeholder": "輸入用戶名稱" + }, + "password": { + "title": "密碼", + "placeholder": "輸入密碼", + "confirm": { + "placeholder": "確認密碼", + "title": "確認密碼" + }, + "strength": { + "title": "密碼強度: ", + "weak": "弱", + "medium": "中等", + "strong": "強", + "veryStrong": "非常強" + }, + "match": "密碼相符", + "notMatch": "密碼不相符" + }, + "newPassword": { + "confirm": { + "placeholder": "重新輸入新密碼" + }, + "title": "新密碼", + "placeholder": "輸入新密碼" + }, + "usernameIsRequired": "必須輸入用戶名稱" + }, + "createUser": { + "title": "建立新用戶", + "desc": "新增用戶帳戶,並指定可存取Frigate介面各區域的角色。", + "usernameOnlyInclude": "用戶名稱只可包含字母、數字、句號或底線" + }, + "deleteUser": { + "title": "刪除用戶", + "desc": "此操作無法還原,將會永久刪除用戶帳戶及所有相關資料。", + "warn": "確定要刪除{{username}}嗎?" + }, + "changeRole": { + "title": "更改用戶角色", + "desc": "更新{{username}}的權限", + "roleInfo": { + "intro": "為此用戶選擇合適的角色:", + "adminDesc": "可使用所有功能。", + "viewer": "觀看者", + "viewerDesc": "只限使用即時儀表板、審查、瀏覽及匯出功能。", + "admin": "管理員" + } + }, + "passwordSetting": { + "setPassword": "設定密碼", + "updatePassword": "更新{{username}}的密碼", + "desc": "建立強密碼以保障此帳戶安全。" + } + }, + "title": "用戶" + }, + "notification": { + "title": "通知", + "notificationSettings": { + "title": "通知設定", + "desc": "Frigate可原生向你的裝置推送通知,無論在瀏覽器中運行或安裝為PWA。", + "documentation": "閱讀文件" + }, + "notificationUnavailable": { + "title": "無法使用通知功能", + "desc": "網頁推送通知需在安全環境下運作(https://…),這是瀏覽器的限制。請透過安全連線存取Frigate以使用通知功能。", + "documentation": "閱讀文件" + }, + "globalSettings": { + "title": "全域設定", + "desc": "暫停所有已註冊裝置上特定鏡頭的通知。" + }, + "email": { + "placeholder": "例如:example@email.com", + "desc": "需要提供有效的電郵地址,若推送服務出現問題,將會透過此地址通知你。", + "title": "電郵地址" + }, + "cameras": { + "title": "鏡頭", + "noCameras": "沒有可用鏡頭", + "desc": "選擇啟用通知功能的鏡頭。" + }, + "deviceSpecific": "裝置專屬設定", + "registerDevice": "登記此裝置", + "unregisterDevice": "取消登記此裝置", + "sendTestNotification": "發送測試通知", + "active": "通知功能已啟用", + "suspended": "通知功能已暫停{{time}}", + "suspendTime": { + "10minutes": "暫停10分鐘", + "12hours": "暫停12小時", + "30minutes": "暫停30分鐘", + "24hours": "暫停24小時", + "5minutes": "暫停5分鐘", + "1hour": "暫停1小時", + "untilRestart": "暫停至重新啟動", + "suspend": "暫停" + }, + "toast": { + "error": { + "registerFailed": "儲存通知登記失敗。" + }, + "success": { + "registered": "成功登記通知功能。必須重新啟動Frigate後,才能發送任何通知(包括測試通知)。", + "settingSaved": "通知設定已儲存。" + } + }, + "cancelSuspension": "取消暫停" + }, + "frigatePlus": { + "title": "Frigate+設定", + "apiKey": { + "title": "Frigate+ API金鑰", + "validated": "已偵測並驗證Frigate+ API金鑰", + "notValidated": "未偵測到Frigate+ API金鑰或驗證失敗", + "desc": "Frigate+ API金鑰可啟用與Frigate+服務的整合功能。", + "plusLink": "了解更多Frigate+資料" + }, + "snapshotConfig": { + "title": "快照設定", + "documentation": "閱讀文件", + "table": { + "camera": "鏡頭", + "snapshots": "快照", + "cleanCopySnapshots": "clean_copy 快照" + }, + "cleanCopyWarning": "部分鏡頭已啟用快照,但未啟用乾淨副本。你必須於快照設定中啟用clean_copy,才能從這些鏡頭提交影像至Frigate+。", + "desc": "提交至Frigate+需要在設定中同時啟用快照及clean_copy快照功能。" + }, + "modelInfo": { + "title": "模型資料", + "modelType": "模型類型", + "trainDate": "訓練日期", + "baseModel": "基礎模型", + "plusModelType": { + "baseModel": "基礎模型", + "userModel": "微調" + }, + "supportedDetectors": "支援的偵測器", + "cameras": "鏡頭", + "availableModels": "可用模型", + "loadingAvailableModels": "正在載入可用模型…", + "modelSelect": "可於此選擇你在Frigate+上的可用模型。請注意,只能選擇與當前偵測器設定相容的模型。", + "loading": "正在載入模型資料…", + "error": "載入模型資料失敗" + }, + "toast": { + "error": "儲存設定變更失敗:{{errorMessage}}", + "success": "Frigate+設定已儲存。請重新啟動Frigate以套用更改。" + }, + "restart_required": "需要重新啟動(已更改Frigate+模型)" + } +} diff --git a/web/public/locales/yue-Hant/views/system.json b/web/public/locales/yue-Hant/views/system.json new file mode 100644 index 000000000..332520ccb --- /dev/null +++ b/web/public/locales/yue-Hant/views/system.json @@ -0,0 +1,179 @@ +{ + "documentTitle": { + "cameras": "鏡頭統計 - Frigate", + "storage": "儲存裝置統計 - Frigate", + "general": "一般統計 - Frigate", + "enrichments": "進階功能統計 - Frigate", + "logs": { + "frigate": "Frigate 日誌 - Frigate", + "nginx": "Nginx 日誌 - Frigate", + "go2rtc": "Go2RTC 日誌 - Frigate" + } + }, + "title": "系統", + "metrics": "系統指標", + "logs": { + "download": { + "label": "下載日誌" + }, + "type": { + "timestamp": "時間戳記", + "tag": "標籤", + "message": "訊息", + "label": "類型" + }, + "tips": "正在從伺服器串流日誌", + "toast": { + "error": { + "fetchingLogsFailed": "擷取日誌時出錯:{{errorMessage}}", + "whileStreamingLogs": "串流日誌時出錯:{{errorMessage}}" + } + }, + "copy": { + "error": "無法將日誌複製到剪貼簿", + "label": "複製到剪貼簿", + "success": "已將日誌複製到剪貼簿" + } + }, + "general": { + "detector": { + "inferenceSpeed": "偵測器推理速度", + "memoryUsage": "偵測器記憶體使用量", + "title": "偵測器", + "cpuUsage": "偵測器 CPU 使用率", + "temperature": "偵測器溫度" + }, + "hardwareInfo": { + "gpuUsage": "GPU 使用率", + "gpuInfo": { + "vainfoOutput": { + "processOutput": "程序輸出:", + "processError": "程序錯誤:", + "title": "Vainfo 輸出", + "returnCode": "返回代碼:{{code}}" + }, + "nvidiaSMIOutput": { + "title": "Nvidia SMI 輸出", + "vbios": "VBios 資訊:{{vbios}}", + "cudaComputerCapability": "CUDA 計算能力:{{cuda_compute}}", + "name": "名稱:{{name}}", + "driver": "驅動程式:{{driver}}" + }, + "closeInfo": { + "label": "關閉 GPU 資訊" + }, + "toast": { + "success": "已將 GPU 資訊複製到剪貼簿" + }, + "copyInfo": { + "label": "複製 GPU 資訊" + } + }, + "title": "硬件資訊", + "npuUsage": "NPU 使用率", + "gpuMemory": "GPU 記憶體", + "gpuEncoder": "GPU 編碼器", + "gpuDecoder": "GPU 解碼器", + "npuMemory": "NPU 記憶體" + }, + "otherProcesses": { + "title": "其他程序", + "processCpuUsage": "程序 CPU 使用率", + "processMemoryUsage": "程序記憶體使用量" + }, + "title": "一般" + }, + "storage": { + "title": "儲存裝置", + "overview": "概覽", + "recordings": { + "title": "錄影檔案", + "earliestRecording": "最早可用錄影檔案:", + "tips": "此數值代表 Frigate 資料庫中錄影檔案的總儲存使用量。Frigate 不會追蹤磁碟上所有檔案的儲存使用量。" + }, + "cameraStorage": { + "camera": "鏡頭", + "unusedStorageInformation": "未使用儲存資訊", + "storageUsed": "已使用儲存", + "bandwidth": "每小時使用量", + "unused": { + "tips": "若您的磁碟中存有其他檔案,該數值可能無法準確反映 Frigate 可用的空間。Frigate 只追蹤其錄影檔案的儲存使用量。", + "title": "未使用" + }, + "title": "鏡頭儲存", + "percentageOfTotalUsed": "佔總量百分比" + } + }, + "cameras": { + "info": { + "streamDataFromFFPROBE": "串流資料是透過 ffprobe 取得。", + "fetching": "正在取得鏡頭資料", + "video": "影片:", + "codec": "編碼器:", + "resolution": "解像度:", + "tips": { + "title": "鏡頭詳細資訊" + }, + "stream": "串流 {{idx}}", + "audio": "音訊:", + "fps": "每秒影格數 (FPS):", + "unknown": "未知", + "error": "錯誤:{{error}}", + "cameraProbeInfo": "{{camera}} 鏡頭詳細資訊" + }, + "framesAndDetections": "畫面 / 偵測", + "label": { + "camera": "鏡頭", + "detect": "偵測", + "skipped": "略過", + "ffmpeg": "FFmpeg", + "capture": "讀取影像", + "overallFramesPerSecond": "整體每秒畫面數", + "cameraFfmpeg": "{{camName}} FFmpeg", + "cameraDetect": "{{camName}} 偵測", + "cameraFramesPerSecond": "{{camName}} 每秒畫面數", + "cameraDetectionsPerSecond": "{{camName}} 每秒偵測次數", + "cameraSkippedDetectionsPerSecond": "{{camName}} 每秒略過偵測次數", + "overallSkippedDetectionsPerSecond": "整體每秒略過偵測次數", + "cameraCapture": "{{camName}} 讀取影像", + "overallDetectionsPerSecond": "整體每秒偵測次數" + }, + "title": "鏡頭", + "overview": "概覽", + "toast": { + "success": { + "copyToClipboard": "已將鏡頭資料複製到剪貼簿。" + }, + "error": { + "unableToProbeCamera": "無法取得鏡頭資料:{{errorMessage}}" + } + } + }, + "lastRefreshed": "最後更新: ", + "stats": { + "detectIsSlow": "{{detect}} 偵測速度慢 ({{speed}} 毫秒)", + "detectIsVerySlow": "{{detect}} 偵測速度非常慢 ({{speed}} 毫秒)", + "cameraIsOffline": "{{camera}} 已離線", + "detectHighCpuUsage": "{{camera}} 的偵測 CPU 使用率過高 ({{detectAvg}}%)", + "healthy": "系統運作正常", + "ffmpegHighCpuUsage": "{{camera}} 的 FFmpeg CPU 使用率過高 ({{ffmpegAvg}}%)", + "reindexingEmbeddings": "重新索引嵌入資料 (已完成 {{processed}}%)" + }, + "enrichments": { + "title": "進階功能", + "infPerSecond": "每秒推理次數", + "embeddings": { + "image_embedding": "圖片嵌入", + "face_embedding_speed": "人臉嵌入速度", + "face_recognition_speed": "人臉辨識速度", + "plate_recognition_speed": "車牌辨識速度", + "face_recognition": "人臉辨識", + "text_embedding": "文字嵌入", + "yolov9_plate_detection": "YOLOv9 車牌偵測", + "text_embedding_speed": "文字嵌入速度", + "yolov9_plate_detection_speed": "YOLOv9 車牌偵測速度", + "plate_recognition": "車牌辨識", + "image_embedding_speed": "圖片嵌入速度" + } + } +} diff --git a/web/public/locales/zh-CN/common.json b/web/public/locales/zh-CN/common.json index d0bd86582..883984507 100644 --- a/web/public/locales/zh-CN/common.json +++ b/web/public/locales/zh-CN/common.json @@ -35,12 +35,12 @@ "s": "{{time}}秒", "second_other": "{{time}}秒", "formattedTimestamp": { - "12hour": "%m月%-d日 %I:%M:%S %p", - "24hour": "%m月%-d日 %H:%M:%S" + "12hour": "M月d日 ah:mm:ss", + "24hour": "M月d日 HH:mm:ss" }, "formattedTimestamp2": { - "12hour": "%m/%d %I:%M:%S%P", - "24hour": "%d日%m月 %H:%M:%S" + "12hour": "MM月dd日 ah:mm:ss", + "24hour": "MM月dd日 HH:mm:ss" }, "formattedTimestampExcludeSeconds": { "12hour": "%m月%-d日 %I:%M %p", @@ -50,7 +50,28 @@ "12hour": "%Y年%m月%-d日 %I:%M:%S %p", "24hour": "%Y年%m月%-d日 %H:%M" }, - "formattedTimestampOnlyMonthAndDay": "%m月%-d日" + "formattedTimestampOnlyMonthAndDay": "%m月%-d日", + "formattedTimestampHourMinute": { + "12hour": "a h:mm", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "ah:mm:ss", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "M月d日 ah:mm", + "24hour": "M月d日 HH:mm" + }, + "formattedTimestampMonthDayYearHourMinute": { + "24hour": "yyyy年M月d日 HH:mm", + "12hour": "yyyy年M月d日 ah:mm" + }, + "formattedTimestampMonthDay": "M月d日", + "formattedTimestampFilename": { + "12hour": "yy年MM月dd日 ah时mm分ss秒", + "24hour": "yy年MM月dd日 HH时mm分ss秒" + } }, "unit": { "speed": { @@ -82,7 +103,7 @@ "disabled": "禁用", "disable": "禁用", "save": "保存", - "saving": "保存中……", + "saving": "保存中…", "cancel": "取消", "close": "关闭", "copy": "复制", @@ -119,7 +140,7 @@ "configurationEditor": "配置编辑器", "languages": "Languages / 语言", "language": { - "en": "English", + "en": "英语 (English)", "zhCN": "简体中文", "withSystem": { "label": "使用系统语言设置" @@ -149,7 +170,8 @@ "da": "丹麦语 (Dansk)", "sk": "斯拉夫语 (Slovenčina)", "ru": "俄语 (Русский)", - "cs": "捷克语 (Čeština)" + "cs": "捷克语 (Čeština)", + "yue": "粤语 (粵語)" }, "appearance": "外观", "darkMode": { @@ -168,7 +190,8 @@ "nord": "Nord", "red": "红色", "contrast": "高对比度", - "default": "默认" + "default": "默认", + "highcontrast": "高对比" }, "help": "帮助", "documentation": { @@ -183,7 +206,7 @@ "count_other": "{{count}} 个摄像头" } }, - "review": "回放", + "review": "核查", "explore": "探测", "export": "导出", "uiPlayground": "UI 演示", @@ -211,8 +234,8 @@ "role": { "title": "权限组", "admin": "管理员", - "viewer": "查看者", - "desc": "管理员可以完全访问 Frigate UI 的所有功能。查看者则仅限于在 UI 中查看摄像头、审核项和历史录像。" + "viewer": "成员", + "desc": "管理员可以完全访问Frigate界面上所有功能。成员则仅能查看摄像头、核查项和历史录像。" }, "accessDenied": { "documentTitle": "没有权限 - Frigate", diff --git a/web/public/locales/zh-CN/components/dialog.json b/web/public/locales/zh-CN/components/dialog.json index 92c574f12..6a1631c35 100644 --- a/web/public/locales/zh-CN/components/dialog.json +++ b/web/public/locales/zh-CN/components/dialog.json @@ -17,16 +17,20 @@ "review": { "true": { "label": "为 Frigate Plus 确认此标签", - "true_one": "这是 {{label}}", "true_other": "这是 {{label}}" }, "false": { "label": "不为 Frigate Plus 确认此标签", - "false_one": "这不是 {{label}}", "false_other": "这不是 {{label}}" }, "state": { "submitted": "已提交" + }, + "question": { + "label": "为 Frigate Plus 确认此标签", + "ask_a": "这个对象是 {{label}} 吗?", + "ask_an": "这个对象是 {{label}} 吗?", + "ask_full": "这个对象是 {{untranslatedLabel}} ({{translatedLabel}}) 吗?" } } }, @@ -37,7 +41,6 @@ "export": { "time": { "fromTimeline": "从时间线选择", - "lastHour_one": "最后1小时", "lastHour_other": "最后 {{count}} 小时", "custom": "自定义", "start": { @@ -74,7 +77,7 @@ "disabled": "此摄像头未启用视频流转发功能。", "desc": { "title": "为此摄像头设置 go2rtc,以获取额外的实时预览选项和音频支持。", - "readTheDocumentation": "阅读文档(英文) " + "readTheDocumentation": "阅读文档(英文)" } }, "showStats": { @@ -101,12 +104,12 @@ "confirmDelete": { "title": "确认删除", "desc": { - "selected": "您确定要删除与此审核项相关的所有录制视频吗?

    提示:按住 Shift 键点击删除可跳过此对话框。" + "selected": "你确定要删除与此核查项相关的所有录制视频吗?

    提示:按住 Shift 键点击删除可跳过此对话框。" } }, "button": { "export": "导出", - "markAsReviewed": "标记为已审核", + "markAsReviewed": "标记为已核查", "deleteNow": "立即删除" } } diff --git a/web/public/locales/zh-CN/components/filter.json b/web/public/locales/zh-CN/components/filter.json index 089ec985a..e8c9d57bc 100644 --- a/web/public/locales/zh-CN/components/filter.json +++ b/web/public/locales/zh-CN/components/filter.json @@ -61,7 +61,7 @@ } }, "review": { - "showReviewed": "显示已查看的项目" + "showReviewed": "显示已核查的项目" }, "motion": { "showMotionOnly": "仅显示运动" @@ -118,8 +118,8 @@ "recognizedLicensePlates": { "title": "识别的车牌", "loadFailed": "加载识别的车牌失败。", - "loading": "正在加载识别的车牌...", - "placeholder": "输入以搜索车牌...", + "loading": "正在加载识别的车牌…", + "placeholder": "输入以搜索车牌…", "noLicensePlatesFound": "未找到车牌。", "selectPlatesFromList": "从列表中选择一个或多个车牌。" } diff --git a/web/public/locales/zh-CN/components/icons.json b/web/public/locales/zh-CN/components/icons.json index ef18a8125..20f201249 100644 --- a/web/public/locales/zh-CN/components/icons.json +++ b/web/public/locales/zh-CN/components/icons.json @@ -2,7 +2,7 @@ "iconPicker": { "selectIcon": "选择图标", "search": { - "placeholder": "搜索图标..." + "placeholder": "搜索图标…" } } } diff --git a/web/public/locales/zh-CN/components/input.json b/web/public/locales/zh-CN/components/input.json index 767aea545..add854a48 100644 --- a/web/public/locales/zh-CN/components/input.json +++ b/web/public/locales/zh-CN/components/input.json @@ -3,7 +3,7 @@ "downloadVideo": { "label": "下载视频", "toast": { - "success": "您的回放视频已开始下载。" + "success": "你的核查视频已开始下载。" } } } diff --git a/web/public/locales/zh-CN/views/events.json b/web/public/locales/zh-CN/views/events.json index cc12c9838..7e17cc5a4 100644 --- a/web/public/locales/zh-CN/views/events.json +++ b/web/public/locales/zh-CN/views/events.json @@ -1,5 +1,5 @@ { - "alerts": "警告", + "alerts": "警报", "detections": "检测", "motion": { "label": "运动", @@ -7,8 +7,8 @@ }, "allCameras": "所有摄像头", "empty": { - "alert": "还没有“警告”类回放", - "detection": "还没有“探测”类回放", + "alert": "还没有“警报”类核查项", + "detection": "还没有“探测”类核查项", "motion": "还没有运动类数据" }, "timeline": "时间线", @@ -18,18 +18,21 @@ "aria": "选择事件", "noFoundForTimePeriod": "未找到该时间段的事件。" }, - "documentTitle": "预览 - Frigate", + "documentTitle": "核查 - Frigate", "recordings": { "documentTitle": "回放 - Frigate" }, "calendarFilter": { "last24Hours": "过去24小时" }, - "markAsReviewed": "标记为已审核", - "markTheseItemsAsReviewed": "将这些项目标记为已审核", + "markAsReviewed": "标记为已核查", + "markTheseItemsAsReviewed": "将这些项目标记为已核查", "newReviewItems": { - "label": "查看新的审核项目", - "button": "新的待审核项目" + "label": "查看新的核查项目", + "button": "核查新项目" }, - "camera": "摄像头" + "camera": "摄像头", + "selected": "已选择 {{count}} 个", + "selected_one": "已选择 {{count}} 个", + "selected_other": "已选择 {{count}} 个" } diff --git a/web/public/locales/zh-CN/views/explore.json b/web/public/locales/zh-CN/views/explore.json index 2c811b4b9..7fd2c8096 100644 --- a/web/public/locales/zh-CN/views/explore.json +++ b/web/public/locales/zh-CN/views/explore.json @@ -1,11 +1,11 @@ { - "documentTitle": "探索 - Frigate", + "documentTitle": "浏览 - Frigate", "generativeAI": "生成式 AI", "exploreIsUnavailable": { - "title": "探索功能不可用", + "title": "浏览功能不可用", "embeddingsReindexing": { - "context": "跟踪对象嵌入重新索引完成后,可以使用探索功能。", - "startingUp": "启动中...", + "context": "跟踪对象嵌入重新索引完成后,可以使用浏览功能。", + "startingUp": "启动中…", "estimatedTime": "预计剩余时间:", "finishingShortly": "即将完成", "step": { @@ -54,7 +54,12 @@ }, "gone": "{{label}} 离开", "heard": "听到 {{label}}", - "external": "检测到 {{label}}" + "external": "检测到 {{label}}", + "header": { + "ratio": "得分", + "zones": "区域", + "area": "坐标区域" + } }, "annotationSettings": { "title": "标注设置", @@ -78,13 +83,13 @@ "details": { "item": { "title": "回放项目详情", - "desc": "回放项目详情", + "desc": "核查项详情", "button": { - "share": "分享该回放", - "viewInExplore": "在探测中查看" + "share": "分享该核查项", + "viewInExplore": "在 浏览 中查看" }, "tips": { - "mismatch_other": "检测到 {{count}} 个不可用的对象,并已包含在此审核项中。这些对象可能未达到警告或检测标准,或者已被清理/删除。", + "mismatch_other": "检测到 {{count}} 个不可用的对象,并已包含在此核查项中。这些对象可能未达到警报或检测标准,或者已被清理/删除。", "hasMissingObjects": "如果希望 Frigate 保存以下标签的跟踪对象,请调整您的配置:{{objects}}" }, "toast": { @@ -139,7 +144,10 @@ "descNoLabel": "为探测到的对象输入新的车牌值", "title": "编辑车牌" }, - "recognizedLicensePlate": "识别的车牌" + "recognizedLicensePlate": "识别的车牌", + "snapshotScore": { + "label": "快照得分" + } }, "itemMenu": { "downloadVideo": { diff --git a/web/public/locales/zh-CN/views/faceLibrary.json b/web/public/locales/zh-CN/views/faceLibrary.json index b3b32262c..da156177e 100644 --- a/web/public/locales/zh-CN/views/faceLibrary.json +++ b/web/public/locales/zh-CN/views/faceLibrary.json @@ -35,13 +35,15 @@ "deleteFaceAttempts": "尝试删除人脸", "addFace": "添加人脸", "uploadImage": "上传图片", - "reprocessFace": "重新处理人脸" + "reprocessFace": "重新处理人脸", + "renameFace": "重命名人脸", + "deleteFace": "删除人脸" }, "imageEntry": { "validation": { "selectImage": "请选择图片文件。" }, - "dropActive": "拖动图片文件到这里……", + "dropActive": "拖动图片文件到这里…", "dropInstructions": "拖动图片文件到此处或点击选择", "maxSize": "最大文件大小:{{size}}MB" }, @@ -55,7 +57,8 @@ "deletedFace_other": "成功删除 {{count}} 个 人脸特征。", "deletedName_other": "成功删除 {{count}} 个 人脸特征。", "trainedFace": "人脸特征训练成功。", - "updatedFaceScore": "更新人脸特征评分成功。" + "updatedFaceScore": "更新人脸特征评分成功。", + "renamedFace": "成功重命名人脸为{{name}}" }, "error": { "uploadingImageFailed": "图片上传失败:{{errorMessage}}", @@ -63,7 +66,17 @@ "deleteFaceFailed": "删除失败:{{errorMessage}}", "deleteNameFailed": "特征集删除失败:{{errorMessage}}", "trainFailed": "训练失败:{{errorMessage}}", - "updateFaceScoreFailed": "更新人脸评分失败:{{errorMessage}}" + "updateFaceScoreFailed": "更新人脸评分失败:{{errorMessage}}", + "renameFaceFailed": "重命名人脸失败:{{errorMessage}}" } + }, + "steps": { + "faceName": "输入人脸姓名", + "uploadFace": "上传人脸照片", + "nextSteps": "下一步" + }, + "renameFace": { + "desc": "为 {{name}} 输入新的名称", + "title": "重命名人脸" } } diff --git a/web/public/locales/zh-CN/views/live.json b/web/public/locales/zh-CN/views/live.json index 10fa10781..43c1ee7cc 100644 --- a/web/public/locales/zh-CN/views/live.json +++ b/web/public/locales/zh-CN/views/live.json @@ -3,12 +3,12 @@ "documentTitle.withCamera": "{{camera}} - 实时监控 - Frigate", "lowBandwidthMode": "低带宽模式", "twoWayTalk": { - "enable": "开启双向对话", - "disable": "关闭双向对话" + "enable": "开启实时对话", + "disable": "关闭实时通话" }, "cameraAudio": { - "enable": "开启摄像头音频", - "disable": "关闭摄像头音频" + "enable": "开启音频输出", + "disable": "关闭音频输出" }, "ptz": { "move": { diff --git a/web/public/locales/zh-CN/views/search.json b/web/public/locales/zh-CN/views/search.json index d55a611b9..2f1bdf7ad 100644 --- a/web/public/locales/zh-CN/views/search.json +++ b/web/public/locales/zh-CN/views/search.json @@ -47,7 +47,14 @@ "desc": { "text": "筛选器可帮助您缩小搜索范围。注意,目前还暂不支持中文搜索。以下是在输入字段中使用筛选器的方法:", "step": "", - "example": "示例:cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM" + "example": "示例:cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM", + "step2": "选择给出的建议值或自行输入;", + "step3": "多个过滤器之间用空格分隔;", + "step5": "时间范围过滤器使用 {{exampleTime}} 格式;", + "step6": "点击过滤器旁的'x'可移除该过滤选项。", + "exampleLabel": "范例:", + "step1": "输入过滤键名后接冒号(例如 \"cameras:\" );", + "step4": "日期过滤器(before: 和 after:)使用 {{DateFormat}} 格式;" } }, "header": { @@ -62,6 +69,6 @@ "clear": "清除相似搜索" }, "placeholder": { - "search": "搜索..." + "search": "搜索…" } } diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json index 4e2f07bd2..cd651d72e 100644 --- a/web/public/locales/zh-CN/views/settings.json +++ b/web/public/locales/zh-CN/views/settings.json @@ -6,9 +6,10 @@ "classification": "分类设置 - Frigate", "masksAndZones": "遮罩和区域编辑器 - Frigate", "motionTuner": "运动调整器 - Frigate", - "object": "对象设置 - Frigate", + "object": "调试 - Frigate", "general": "常规设置 - Frigate", - "frigatePlus": "Frigate+ 设置 - Frigate" + "frigatePlus": "Frigate+ 设置 - Frigate", + "notifications": "通知设置 - Frigate" }, "menu": { "ui": "界面设置", @@ -40,8 +41,8 @@ "desc": "检测到画面活动时将自动切换至该摄像头实时画面。禁用此选项会导致实时监控页面的摄像头图像每分钟只更新一次。" }, "playAlertVideos": { - "label": "播放警告视频", - "desc": "默认情况下,实时监控页面上的最新警告会以一小段循环的形式进行播放。禁用此选项将仅显示浏览器本地缓存的静态图片。" + "label": "播放警报视频", + "desc": "默认情况下,实时监控页面上的最新警报会以一小段循环视频的形式进行播放。禁用此选项将仅显示浏览器本地缓存的静态图片。" } }, "storedLayouts": { @@ -91,7 +92,7 @@ "label": "立即重建索引", "desc": "重建索引将为所有跟踪对象重新生成特征向量。该过程将在后台运行,可能会使CPU满载,所需时间取决于跟踪对象的数量。", "confirmTitle": "确认重建索引", - "confirmDesc": "确定要为所有跟踪对象重建特征向量索引吗?此过程将在后台运行,但可能会导致CPU满载并耗费较长时间。您可以在探索页面查看进度。", + "confirmDesc": "确定要为所有跟踪对象重建特征向量索引吗?此过程将在后台运行,但可能会导致CPU满载并耗费较长时间。您可以在 浏览 页面查看进度。", "confirmButton": "重建索引", "success": "重建索引已成功启动。", "alreadyInProgress": "重建索引已在执行中。", @@ -118,12 +119,12 @@ "label": "模型大小", "desc": "用于人脸识别的模型尺寸。", "small": { - "title": "小模型", - "desc": "使用小模型将采用FaceNet人脸特征提取模型,可在大多数CPU上高效运行。" + "title": "小", + "desc": "使用模型将采用FaceNet人脸特征提取模型,可在大多数CPU上高效运行。" }, "large": { - "title": "大模型", - "desc": "使用大模型将采用ArcFace人脸特征提取模型,若条件允许将自动使用GPU运行。" + "title": "大", + "desc": "使用模型将采用ArcFace人脸特征提取模型,若条件允许将自动使用GPU运行。" } } }, @@ -135,7 +136,12 @@ "toast": { "success": "分类设置已保存,请重启 Frigate 以应用更改。", "error": "保存配置更改失败:{{errorMessage}}" - } + }, + "birdClassification": { + "title": "鸟类识别分类", + "desc": "鸟类识别分类采用量化TensorFlow模型识别已知鸟类。当识别到已知鸟类时,其通用名称将作为子标签(sub_label)添加。该信息将显示在用户界面、过滤器及通知中。" + }, + "restart_required": "需要重启(分类设置已修改)" }, "camera": { "title": "摄像头设置", @@ -144,29 +150,29 @@ "desc": "禁用摄像头将完全停止 Frigate 对该摄像头视频流的处理。检测、录制和调试功能都将不可用。
    注意:该选项不会禁用 go2rtc 转播。" }, "review": { - "title": "预览", - "desc": "启用/禁用摄像头的警报和检测。禁用后,不会生成新的预览项。", - "alerts": "警告 ", + "title": "核查", + "desc": "启用/禁用摄像头的警报和检测。禁用后,不会生成新的核查项。", + "alerts": "警报 ", "detections": "检测 " }, "reviewClassification": { - "title": "预览分级", - "desc": "Frigate 将回放项目分为“警告”和“检测”。默认情况下,所有的 汽车 的对象都视为警告。你可以通过修改配置文件配置区域来细分。", + "title": "核查分级", + "desc": "Frigate 将核查项分为“警报”和“检测”。默认情况下,所有的 汽车 对象都将视为警报。你可以通过修改配置文件配置区域来细分。", "readTheDocumentation": "阅读文档(英文)", "noDefinedZones": "该摄像头没有设置区域。", - "objectAlertsTips": "所有的 {{alertsLabels}} 对象在 {{cameraName}} 都将显示为警告。", - "zoneObjectAlertsTips": "所有的 {{alertsLabels}} 对象在 {{cameraName}} 的 {{zone}} 区域都将显示为警告。", - "objectDetectionsTips": "所有未在 {{cameraName}} 归类的 {{detectionsLabels}} 对象,无论它位于哪个区域,都将显示为检测。", + "objectAlertsTips": "所有 {{alertsLabels}} 对象在 {{cameraName}} 下都将显示为警报。", + "zoneObjectAlertsTips": "所有 {{alertsLabels}} 对象在 {{cameraName}} 下的 {{zone}} 区内都将显示为警报。", + "objectDetectionsTips": "所有未在 {{cameraName}} 归类的 {{detectionsLabels}} 对象,无论它位于哪个区,都将显示为检测。", "zoneObjectDetectionsTips": { - "text": "所有未在 {{cameraName}} 上归类为 {{detectionsLabels}} 的对象在 {{zone}} 区域都将显示为检测。", - "notSelectDetections": "所有在 {{cameraName}} 的 {{zone}} 上检测到的未归类为警告的 {{detectionsLabels}} 对象,无论它位于哪个区域,都将显示为检测。", + "text": "所有未在 {{cameraName}} 上归类为 {{detectionsLabels}} 的对象在 {{zone}} 区都将显示为检测。", + "notSelectDetections": "所有在 {{cameraName}} 下的 {{zone}} 区内检测到的 {{detectionsLabels}} 对象,如果它未归类为警报,无论它位于哪个区,都将显示为检测。", "regardlessOfZoneObjectDetectionsTips": "所有未在 {{cameraName}} 归类的 {{detectionsLabels}} 对象,无论它位于哪个区域,都将显示为检测。" }, - "selectAlertsZones": "选择要显示为警告的区域", + "selectAlertsZones": "选择警报区", "selectDetectionsZones": "选择检测区域", "limitDetections": "限制仅在特定区域内进行检测", "toast": { - "success": "预览分级配置已保存。请重启 Frigate 以应用更改。" + "success": "核查分级配置已保存。请重启 Frigate 以应用更改。" } } }, @@ -324,7 +330,8 @@ "noName": "对象遮罩已保存。请重启 Frigate 以应用更改。" } } - } + }, + "restart_required": "需要重启(遮罩与区域已修改)" }, "motionDetectionTuner": { "title": "运动检测调整器", @@ -378,12 +385,12 @@ "motion": { "title": "运动区域框", "desc": "在检测到运动的区域显示区域框", - "tips": "

    运动区域框


    将在当前检测到运动的区域内显示红色区域框。

    " + "tips": "

    运动区域框


    将在当前检测到运动的区域内显示红色区域框。

    " }, "regions": { "title": "范围", "desc": "显示发送到运动检测器感兴趣范围的框", - "tips": "

    范围框


    将在帧中发送到目标检测器的感兴趣范围上叠加绿色框。

    " + "tips": "

    范围框


    将在帧中发送到目标检测器的感兴趣范围上叠加绿色框。

    " }, "objectShapeFilterDrawing": { "title": "允许绘制“对象形状过滤器”", @@ -467,7 +474,7 @@ "deleteUser": { "title": "删除该用户", "desc": "此操作无法撤销。这将永久删除用户账户并移除所有相关数据。", - "warn": "你确定要删除 {{username}} 吗?" + "warn": "你确定要删除 {{username}} 吗?" }, "passwordSetting": { "updatePassword": "更新 {{username}} 的密码", @@ -476,8 +483,14 @@ }, "changeRole": { "title": "更改用户权限组", - "desc": "更新 {{username}} 的权限", - "roleInfo": "

    请选择此用户的适当角色:

    " + "desc": "更新 {{username}} 的权限", + "roleInfo": { + "admin": "管理员", + "viewer": "成员", + "viewerDesc": "仅能够查看实时监控面板、核查、浏览和导出功能。", + "adminDesc": "完全功能与访问权限。", + "intro": "为该用户选择一个合适的权限组:" + } } } }, @@ -494,7 +507,7 @@ }, "notificationUnavailable": { "title": "通知功能不可用", - "desc": "网页推送通知需要安全连接(https://...)。这是浏览器的限制。请通过安全方式访问 Frigate 以使用通知功能。", + "desc": "网页推送通知需要安全连接(https://…)。这是浏览器的限制。请通过安全方式访问 Frigate 以使用通知功能。", "documentation": "阅读文档(英文)" }, "email": { @@ -520,7 +533,8 @@ "1hour": "暂停 1 小时", "12hours": "暂停 12 小时", "24hours": "暂停 24 小时", - "untilRestart": "暂停直到重启" + "untilRestart": "暂停直到重启", + "suspend": "暂停" }, "cancelSuspension": "取消暂停", "toast": { @@ -561,15 +575,20 @@ "supportedDetectors": "支持的检测器", "dimensions": "大小", "cameras": "摄像头", - "loading": "正在加载模型信息...", + "loading": "正在加载模型信息…", "error": "加载模型信息失败", "availableModels": "可用模型", - "loadingAvailableModels": "正在加载可用模型...", - "modelSelect": "您可以在Frigate+上选择可用的模型。请注意,只能选择与当前探测器配置兼容的模型。" + "loadingAvailableModels": "正在加载可用模型…", + "modelSelect": "您可以在Frigate+上选择可用的模型。请注意,只能选择与当前探测器配置兼容的模型。", + "plusModelType": { + "baseModel": "基础模型", + "userModel": "定向调优" + } }, "toast": { "success": "Frigate+ 设置已保存。请重启 Frigate 以应用更改。", "error": "配置更改保存失败:{{errorMessage}}" - } + }, + "restart_required": "需要重启(Frigate+模型已修改)" } } diff --git a/web/public/locales/zh-CN/views/system.json b/web/public/locales/zh-CN/views/system.json index 8e442162a..efbdb3a72 100644 --- a/web/public/locales/zh-CN/views/system.json +++ b/web/public/locales/zh-CN/views/system.json @@ -41,7 +41,8 @@ "title": "探测器", "inferenceSpeed": "探测器推理速度", "cpuUsage": "探测器CPU使用率", - "memoryUsage": "探测器内存使用率" + "memoryUsage": "探测器内存使用率", + "temperature": "探测器温度" }, "hardwareInfo": { "title": "硬件信息", @@ -72,7 +73,9 @@ "toast": { "success": "已复制GPU信息到剪贴板" } - } + }, + "npuMemory": "NPU内存", + "npuUsage": "NPU使用率" }, "otherProcesses": { "title": "其他进程", @@ -125,7 +128,7 @@ "camera": "摄像头", "detect": "探测", "skipped": "跳过", - "ffmpeg": "ffmpeg编码器", + "ffmpeg": "FFmpeg编码器", "capture": "捕获" }, "toast": { @@ -142,7 +145,10 @@ "ffmpegHighCpuUsage": "{{camera}} 的 FFMPEG CPU 使用率较高({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} 的 探测 CPU 使用率较高({{detectAvg}}%)", "healthy": "系统运行正常", - "reindexingEmbeddings": "正在重新索引嵌入(已完成 {{processed}}%)" + "reindexingEmbeddings": "正在重新索引嵌入(已完成 {{processed}}%)", + "detectIsSlow": "{{detect}} 运行缓慢({{speed}}毫秒)", + "detectIsVerySlow": "{{detect}} 运行非常缓慢({{speed}}毫秒)", + "cameraIsOffline": "{{camera}} 已离线" }, "enrichments": { "title": "增强功能", @@ -151,7 +157,14 @@ "image_embedding_speed": "图像特征提取速度", "face_embedding_speed": "人脸特征提取速度", "plate_recognition_speed": "车牌识别速度", - "text_embedding_speed": "文本编码速度" + "text_embedding_speed": "文本编码速度", + "face_recognition_speed": "人脸识别速度", + "image_embedding": "图像特征提取", + "text_embedding": "文字编码", + "face_recognition": "人脸特征提取", + "plate_recognition": "车牌识别", + "yolov9_plate_detection_speed": "YOLOv9 车牌检测速度", + "yolov9_plate_detection": "YOLOv9 车牌检测" } } } diff --git a/web/src/App.tsx b/web/src/App.tsx index 83a3b0304..a0062549f 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -6,13 +6,12 @@ import Sidebar from "@/components/navigation/Sidebar"; import { isDesktop, isMobile } from "react-device-detect"; import Statusbar from "./components/Statusbar"; import Bottombar from "./components/navigation/Bottombar"; -import React, { Suspense, lazy } from "react"; +import { Suspense, lazy } from "react"; import { Redirect } from "./components/navigation/Redirect"; import { cn } from "./lib/utils"; import { isPWA } from "./utils/isPWA"; import ProtectedRoute from "@/components/auth/ProtectedRoute"; import { AuthProvider } from "@/context/auth-context"; -import { useTranslation } from "react-i18next"; const Live = lazy(() => import("@/pages/Live")); const Events = lazy(() => import("@/pages/Events")); @@ -27,13 +26,6 @@ const Logs = lazy(() => import("@/pages/Logs")); const AccessDenied = lazy(() => import("@/pages/AccessDenied")); function App() { - const { i18n } = useTranslation(); - - // Set the lang attribute on the html element when language changes - React.useEffect(() => { - document.documentElement.lang = i18n.language; - }, [i18n.language]); - return ( diff --git a/web/src/components/card/AnimatedEventCard.tsx b/web/src/components/card/AnimatedEventCard.tsx index 1fc37b36f..d46509eb6 100644 --- a/web/src/components/card/AnimatedEventCard.tsx +++ b/web/src/components/card/AnimatedEventCard.tsx @@ -229,7 +229,7 @@ export function AnimatedEventCard({ .map((text) => text.charAt(0).toUpperCase() + text.substring(1)) .sort() .join(", ") - .replaceAll("-verified", "")} detected`} + .replaceAll("-verified", "")} ` + t("detected")} ); diff --git a/web/src/components/menu/GeneralSettings.tsx b/web/src/components/menu/GeneralSettings.tsx index 11a3f2ed4..af5855815 100644 --- a/web/src/components/menu/GeneralSettings.tsx +++ b/web/src/components/menu/GeneralSettings.tsx @@ -34,7 +34,7 @@ import { useTheme, } from "@/context/theme-provider"; import { IoColorPalette } from "react-icons/io5"; -import { useState } from "react"; +import { useMemo, useState } from "react"; import { useRestart } from "@/api/ws"; import { Tooltip, @@ -62,6 +62,7 @@ import { toast } from "sonner"; import axios from "axios"; import { FrigateConfig } from "@/types/frigateConfig"; import { useTranslation } from "react-i18next"; +import { supportedLanguageKeys } from "@/lib/const"; type GeneralSettingsProps = { className?: string; @@ -75,17 +76,21 @@ export default function GeneralSettings({ className }: GeneralSettingsProps) { // languages - const languages = [ - { code: "en", label: t("menu.language.en") }, - { code: "es", label: t("menu.language.es") }, - { code: "fr", label: t("menu.language.fr") }, - { code: "zh-CN", label: t("menu.language.zhCN") }, - { code: "tr", label: t("menu.language.tr") }, - { code: "nl", label: t("menu.language.nl") }, - { code: "nb-NO", label: t("menu.language.nb") }, - { code: "pl", label: t("menu.language.pl") }, - { code: "ru", label: t("menu.language.ru") }, - ]; + const languages = useMemo(() => { + // Handle language keys that aren't directly used for translation key + const specialKeyMap: { [key: string]: string } = { + "nb-NO": "nb", + "yue-Hant": "yue", + "zh-CN": "zhCN", + }; + + return supportedLanguageKeys.map((key) => { + return { + code: key, + label: t(`menu.language.${specialKeyMap[key] || key}`), + }; + }); + }, [t]); // settings diff --git a/web/src/components/overlay/ExportDialog.tsx b/web/src/components/overlay/ExportDialog.tsx index 3a5edcba4..44b55bfe3 100644 --- a/web/src/components/overlay/ExportDialog.tsx +++ b/web/src/components/overlay/ExportDialog.tsx @@ -549,7 +549,7 @@ function CustomTimeSelector({ ? [...clock.split(":"), "00"] : clock.split(":"); - const end = new Date(startTime * 1000); + const end = new Date(endTime * 1000); end.setHours( parseInt(hour), parseInt(minute), diff --git a/web/src/components/overlay/GPUInfoDialog.tsx b/web/src/components/overlay/GPUInfoDialog.tsx index 6a1755c9d..549a9f9db 100644 --- a/web/src/components/overlay/GPUInfoDialog.tsx +++ b/web/src/components/overlay/GPUInfoDialog.tsx @@ -107,20 +107,23 @@ export default function GPUInfoDialog({
    - {t("general.hardwareInfo.gpuInfo.nvidiaSMIOutput.name", { - name: nvinfo["0"].driver, + {t("general.hardwareInfo.gpuInfo.nvidiaSMIOutput.driver", { + driver: nvinfo["0"].driver, })}

    - {t("general.hardwareInfo.gpuInfo.nvidiaSMIOutput.name", { - name: nvinfo["0"].cuda_compute, - })} + {t( + "general.hardwareInfo.gpuInfo.nvidiaSMIOutput.cudaComputerCapability", + { + cuda_compute: nvinfo["0"].cuda_compute, + }, + )}

    - {t("general.hardwareInfo.gpuInfo.nvidiaSMIOutput.name", { - name: nvinfo["0"].vbios, + {t("general.hardwareInfo.gpuInfo.nvidiaSMIOutput.vbios", { + vbios: nvinfo["0"].vbios, })}
    diff --git a/web/src/components/overlay/LogInfoDialog.tsx b/web/src/components/overlay/LogInfoDialog.tsx index 3e9696f91..3212fde22 100644 --- a/web/src/components/overlay/LogInfoDialog.tsx +++ b/web/src/components/overlay/LogInfoDialog.tsx @@ -17,6 +17,7 @@ import { import { LogChip } from "../indicators/Chip"; import { useMemo } from "react"; import { Link } from "react-router-dom"; +import { useTranslation } from "react-i18next"; type LogInfoDialogProps = { logLine?: LogLine; @@ -26,6 +27,7 @@ export default function LogInfoDialog({ logLine, setLogLine, }: LogInfoDialogProps) { + const { t } = useTranslation(["views/system"]); const Overlay = isDesktop ? Sheet : Drawer; const Content = isDesktop ? SheetContent : DrawerContent; const Header = isDesktop ? SheetHeader : DrawerHeader; @@ -53,19 +55,27 @@ export default function LogInfoDialog({ {logLine && (
    -
    Type
    +
    + {t("logs.type.label")} +
    -
    Timestamp
    +
    + {t("logs.type.timestamp")} +
    {logLine.dateStamp}
    -
    Tag
    +
    + {t("logs.type.tag")} +
    {logLine.section}
    -
    Message
    +
    + {t("logs.type.message")} +
    {logLine.content.split("\n").map((line) => ( <> diff --git a/web/src/components/overlay/detail/ReviewDetailDialog.tsx b/web/src/components/overlay/detail/ReviewDetailDialog.tsx index c296866c4..a30ad8989 100644 --- a/web/src/components/overlay/detail/ReviewDetailDialog.tsx +++ b/web/src/components/overlay/detail/ReviewDetailDialog.tsx @@ -156,7 +156,11 @@ export default function ReviewDetailDialog({ return ( <> - + setUpload(undefined)} diff --git a/web/src/components/overlay/detail/SearchDetailDialog.tsx b/web/src/components/overlay/detail/SearchDetailDialog.tsx index 9b913ed53..d1917cf05 100644 --- a/web/src/components/overlay/detail/SearchDetailDialog.tsx +++ b/web/src/components/overlay/detail/SearchDetailDialog.tsx @@ -187,7 +187,11 @@ export default function SearchDetailDialog({ const Description = isDesktop ? DialogDescription : MobilePageDescription; return ( - +
    - {snapScore && ( + {snapScore != undefined && (
    @@ -1163,9 +1167,9 @@ export function ObjectSnapshotTab({ ns="components/dialog" values={{ untranslatedLabel: search?.label, - translatedLabel: t( - "filter.label." + search?.label, - ), + translatedLabel: t(search?.label, { + ns: "objects", + }), }} > explore.plus.review.question.ask_full diff --git a/web/src/components/settings/ObjectMaskEditPane.tsx b/web/src/components/settings/ObjectMaskEditPane.tsx index 9a3c3295f..0ce89fb94 100644 --- a/web/src/components/settings/ObjectMaskEditPane.tsx +++ b/web/src/components/settings/ObjectMaskEditPane.tsx @@ -37,7 +37,6 @@ import axios from "axios"; import { toast } from "sonner"; import { Toaster } from "../ui/sonner"; import ActivityIndicator from "../indicators/activity-indicator"; -import { getAttributeLabels } from "@/utils/iconUtil"; import { useTranslation } from "react-i18next"; type ObjectMaskEditPaneProps = { @@ -401,14 +400,6 @@ export function ZoneObjectSelector({ camera }: ZoneObjectSelectorProps) { const { t } = useTranslation(["views/settings"]); const { data: config } = useSWR("config"); - const attributeLabels = useMemo(() => { - if (!config) { - return []; - } - - return getAttributeLabels(config); - }, [config]); - const cameraConfig = useMemo(() => { if (config && camera) { return config.cameras[camera]; @@ -424,20 +415,16 @@ export function ZoneObjectSelector({ camera }: ZoneObjectSelectorProps) { Object.values(config.cameras).forEach((camera) => { camera.objects.track.forEach((label) => { - if (!attributeLabels.includes(label)) { - labels.add(label); - } + labels.add(label); }); }); cameraConfig.objects.track.forEach((label) => { - if (!attributeLabels.includes(label)) { - labels.add(label); - } + labels.add(label); }); return [...labels].sort(); - }, [config, cameraConfig, attributeLabels]); + }, [config, cameraConfig]); return ( <> diff --git a/web/src/components/ui/dialog.tsx b/web/src/components/ui/dialog.tsx index bcaf970c6..c7117cd3f 100644 --- a/web/src/components/ui/dialog.tsx +++ b/web/src/components/ui/dialog.tsx @@ -1,16 +1,80 @@ -import * as React from "react" -import * as DialogPrimitive from "@radix-ui/react-dialog" -import { X } from "lucide-react" +import * as React from "react"; +import * as DialogPrimitive from "@radix-ui/react-dialog"; +import { X } from "lucide-react"; +import { cn } from "@/lib/utils"; -import { cn } from "@/lib/utils" +// Enhanced Dialog with History Support +interface HistoryDialogProps extends DialogPrimitive.DialogProps { + enableHistoryBack?: boolean; +} -const Dialog = DialogPrimitive.Root +const Dialog = ({ + enableHistoryBack = false, + open, + onOpenChange, + ...props +}: HistoryDialogProps) => { + const [internalOpen, setInternalOpen] = React.useState(open || false); + const historyStateRef = React.useRef void; + }>(null); -const DialogTrigger = DialogPrimitive.Trigger + React.useEffect(() => { + if (open !== undefined) { + setInternalOpen(open); + } + }, [open]); -const DialogPortal = DialogPrimitive.Portal + React.useEffect(() => { + if (enableHistoryBack) { + if (internalOpen) { + window.history.pushState({ dialogOpen: true }, ""); -const DialogClose = DialogPrimitive.Close + const listener = () => { + setInternalOpen(false); + if (onOpenChange) onOpenChange(false); + }; + + historyStateRef.current = { listener }; + window.addEventListener("popstate", listener); + + return () => { + if (internalOpen) { + window.removeEventListener("popstate", listener); + historyStateRef.current = null; + } + }; + } else if (historyStateRef.current) { + window.removeEventListener( + "popstate", + historyStateRef.current.listener, + ); + historyStateRef.current = null; + } + } + }, [enableHistoryBack, internalOpen, onOpenChange]); + + const handleOpenChange = (open: boolean) => { + setInternalOpen(open); + if (onOpenChange) { + onOpenChange(open); + } + }; + + return ( + + ); +}; + +Dialog.displayName = "Dialog"; + +const DialogTrigger = DialogPrimitive.Trigger; +const DialogPortal = DialogPrimitive.Portal; +const DialogClose = DialogPrimitive.Close; const DialogOverlay = React.forwardRef< React.ElementRef, @@ -20,12 +84,12 @@ const DialogOverlay = React.forwardRef< ref={ref} className={cn( "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", - className + className, )} {...props} /> -)) -DialogOverlay.displayName = DialogPrimitive.Overlay.displayName +)); +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName; const DialogContent = React.forwardRef< React.ElementRef, @@ -37,19 +101,19 @@ const DialogContent = React.forwardRef< ref={ref} className={cn( "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", - className + className, )} {...props} > {children} - + Close -)) -DialogContent.displayName = DialogPrimitive.Content.displayName +)); +DialogContent.displayName = DialogPrimitive.Content.displayName; const DialogHeader = ({ className, @@ -58,12 +122,12 @@ const DialogHeader = ({
    -) -DialogHeader.displayName = "DialogHeader" +); +DialogHeader.displayName = "DialogHeader"; const DialogFooter = ({ className, @@ -72,12 +136,12 @@ const DialogFooter = ({
    -) -DialogFooter.displayName = "DialogFooter" +); +DialogFooter.displayName = "DialogFooter"; const DialogTitle = React.forwardRef< React.ElementRef, @@ -87,12 +151,12 @@ const DialogTitle = React.forwardRef< ref={ref} className={cn( "text-lg font-semibold leading-none tracking-tight", - className + className, )} {...props} /> -)) -DialogTitle.displayName = DialogPrimitive.Title.displayName +)); +DialogTitle.displayName = DialogPrimitive.Title.displayName; const DialogDescription = React.forwardRef< React.ElementRef, @@ -103,8 +167,8 @@ const DialogDescription = React.forwardRef< className={cn("text-sm text-muted-foreground", className)} {...props} /> -)) -DialogDescription.displayName = DialogPrimitive.Description.displayName +)); +DialogDescription.displayName = DialogPrimitive.Description.displayName; export { Dialog, @@ -117,4 +181,4 @@ export { DialogFooter, DialogTitle, DialogDescription, -} +}; diff --git a/web/src/components/ui/sheet.tsx b/web/src/components/ui/sheet.tsx index 34e5dcaf3..7ef05478f 100644 --- a/web/src/components/ui/sheet.tsx +++ b/web/src/components/ui/sheet.tsx @@ -1,17 +1,84 @@ -import * as React from "react" -import * as SheetPrimitive from "@radix-ui/react-dialog" -import { cva, type VariantProps } from "class-variance-authority" -import { X } from "lucide-react" +import * as React from "react"; +import * as SheetPrimitive from "@radix-ui/react-dialog"; +import { cva, type VariantProps } from "class-variance-authority"; +import { X } from "lucide-react"; -import { cn } from "@/lib/utils" +import { cn } from "@/lib/utils"; -const Sheet = SheetPrimitive.Root +// Enhanced Sheet with History Support +interface HistorySheetProps extends SheetPrimitive.DialogProps { + enableHistoryBack?: boolean; +} -const SheetTrigger = SheetPrimitive.Trigger +const Sheet = ({ + enableHistoryBack = false, + open, + onOpenChange, + ...props +}: HistorySheetProps) => { + const [internalOpen, setInternalOpen] = React.useState(open || false); + const historyStateRef = React.useRef void; + }>(null); -const SheetClose = SheetPrimitive.Close + React.useEffect(() => { + if (open !== undefined) { + setInternalOpen(open); + } + }, [open]); -const SheetPortal = SheetPrimitive.Portal + React.useEffect(() => { + if (enableHistoryBack) { + if (internalOpen) { + window.history.pushState({ sheetOpen: true }, ""); + + const listener = () => { + setInternalOpen(false); + if (onOpenChange) onOpenChange(false); + }; + + historyStateRef.current = { listener }; + window.addEventListener("popstate", listener); + + return () => { + if (internalOpen) { + window.removeEventListener("popstate", listener); + historyStateRef.current = null; + } + }; + } else if (historyStateRef.current) { + window.removeEventListener( + "popstate", + historyStateRef.current.listener, + ); + historyStateRef.current = null; + } + } + }, [enableHistoryBack, internalOpen, onOpenChange]); + + const handleOpenChange = (open: boolean) => { + setInternalOpen(open); + if (onOpenChange) { + onOpenChange(open); + } + }; + + return ( + + ); +}; + +Sheet.displayName = "Sheet"; + +const SheetTrigger = SheetPrimitive.Trigger; + +const SheetClose = SheetPrimitive.Close; + +const SheetPortal = SheetPrimitive.Portal; const SheetOverlay = React.forwardRef< React.ElementRef, @@ -20,13 +87,13 @@ const SheetOverlay = React.forwardRef< -)) -SheetOverlay.displayName = SheetPrimitive.Overlay.displayName +)); +SheetOverlay.displayName = SheetPrimitive.Overlay.displayName; const sheetVariants = cva( "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500", @@ -44,8 +111,8 @@ const sheetVariants = cva( defaultVariants: { side: "right", }, - } -) + }, +); interface SheetContentProps extends React.ComponentPropsWithoutRef, @@ -63,14 +130,14 @@ const SheetContent = React.forwardRef< {...props} > {children} - + Close -)) -SheetContent.displayName = SheetPrimitive.Content.displayName +)); +SheetContent.displayName = SheetPrimitive.Content.displayName; const SheetHeader = ({ className, @@ -79,12 +146,12 @@ const SheetHeader = ({
    -) -SheetHeader.displayName = "SheetHeader" +); +SheetHeader.displayName = "SheetHeader"; const SheetFooter = ({ className, @@ -93,12 +160,12 @@ const SheetFooter = ({
    -) -SheetFooter.displayName = "SheetFooter" +); +SheetFooter.displayName = "SheetFooter"; const SheetTitle = React.forwardRef< React.ElementRef, @@ -109,8 +176,8 @@ const SheetTitle = React.forwardRef< className={cn("text-lg font-semibold text-foreground", className)} {...props} /> -)) -SheetTitle.displayName = SheetPrimitive.Title.displayName +)); +SheetTitle.displayName = SheetPrimitive.Title.displayName; const SheetDescription = React.forwardRef< React.ElementRef, @@ -121,8 +188,8 @@ const SheetDescription = React.forwardRef< className={cn("text-sm text-muted-foreground", className)} {...props} /> -)) -SheetDescription.displayName = SheetPrimitive.Description.displayName +)); +SheetDescription.displayName = SheetPrimitive.Description.displayName; export { Sheet, @@ -135,4 +202,4 @@ export { SheetFooter, SheetTitle, SheetDescription, -} +}; diff --git a/web/src/context/language-provider.tsx b/web/src/context/language-provider.tsx index e0c965494..88ade5032 100644 --- a/web/src/context/language-provider.tsx +++ b/web/src/context/language-provider.tsx @@ -1,15 +1,14 @@ import { createContext, useContext, useState, useEffect, useMemo } from "react"; import i18next from "i18next"; +import { supportedLanguageKeys } from "@/lib/const"; type LanguageProviderState = { language: string; - systemLanguage: string; setLanguage: (language: string) => void; }; const initialState: LanguageProviderState = { language: i18next.language || "en", - systemLanguage: "en", setLanguage: () => null, }; @@ -26,10 +25,31 @@ export function LanguageProvider({ defaultLanguage?: string; storageKey?: string; }) { + const systemLanguage = useMemo(() => { + if (typeof window === "undefined") return defaultLanguage; + + const systemLanguage = window.navigator.language; + + if (supportedLanguageKeys.includes(systemLanguage)) { + return systemLanguage; + } + + // browser languages may include a -REGION (ex: en-US) + if (systemLanguage.includes("-")) { + const shortenedSystemLanguage = systemLanguage.split("-")[0]; + + if (supportedLanguageKeys.includes(shortenedSystemLanguage)) { + return shortenedSystemLanguage; + } + } + + return defaultLanguage; + }, [defaultLanguage]); + const [language, setLanguage] = useState(() => { try { const storedData = localStorage.getItem(storageKey); - const newLanguage = storedData || defaultLanguage; + const newLanguage = storedData || systemLanguage; i18next.changeLanguage(newLanguage); return newLanguage; } catch (error) { @@ -39,19 +59,16 @@ export function LanguageProvider({ } }); - const systemLanguage = useMemo(() => { - if (typeof window === "undefined") return "en"; - return window.navigator.language; - }, []); - useEffect(() => { + // set document lang for smart capitalization + document.documentElement.lang = language; + if (language === systemLanguage) return; i18next.changeLanguage(language); }, [language, systemLanguage]); const value = { language, - systemLanguage, setLanguage: (language: string) => { localStorage.setItem(storageKey, language); setLanguage(language); diff --git a/web/src/context/theme-provider.tsx b/web/src/context/theme-provider.tsx index 2fe14ee66..d2be5e7ee 100644 --- a/web/src/context/theme-provider.tsx +++ b/web/src/context/theme-provider.tsx @@ -23,7 +23,7 @@ export const colorSchemes: ColorScheme[] = [ // eslint-disable-next-line react-refresh/only-export-components export const friendlyColorSchemeName = (className: string): string => { const words = className.split("-").slice(1); // Exclude the first word (e.g., 'theme') - return "menu.theme." + words.join("."); + return "menu.theme." + words.join(""); }; type ThemeProviderProps = { diff --git a/web/src/hooks/use-date-locale.ts b/web/src/hooks/use-date-locale.ts index 9e69a3713..4e51448fa 100644 --- a/web/src/hooks/use-date-locale.ts +++ b/web/src/hooks/use-date-locale.ts @@ -31,6 +31,8 @@ const localeMap: Record Promise> = { fi: () => import("date-fns/locale/fi").then((module) => module.fi), da: () => import("date-fns/locale/da").then((module) => module.da), sk: () => import("date-fns/locale/sk").then((module) => module.sk), + "yue-Hant": () => + import("date-fns/locale/zh-HK").then((module) => module.zhHK), }; export function useDateLocale(): Locale { diff --git a/web/src/hooks/use-timeline-zoom.ts b/web/src/hooks/use-timeline-zoom.ts index bcd996f77..aabd6d22b 100644 --- a/web/src/hooks/use-timeline-zoom.ts +++ b/web/src/hooks/use-timeline-zoom.ts @@ -159,16 +159,30 @@ export function useTimelineZoom({ ); useEffect(() => { - window.addEventListener("wheel", handleWheel, { passive: false }); - window.addEventListener("touchstart", handleTouchStart, { passive: false }); - window.addEventListener("touchmove", handleTouchMove, { passive: false }); + const timelineElement = timelineRef.current; + + if (timelineElement) { + timelineElement.addEventListener("wheel", handleWheel, { + passive: false, + }); + timelineElement.addEventListener("touchstart", handleTouchStart, { + passive: false, + }); + timelineElement.addEventListener("touchmove", handleTouchMove, { + passive: false, + }); + } return () => { - window.removeEventListener("wheel", handleWheel); - window.removeEventListener("touchstart", handleTouchStart); - window.removeEventListener("touchmove", handleTouchMove); + if (timelineElement) { + timelineElement.removeEventListener("wheel", handleWheel); + timelineElement.removeEventListener("touchstart", handleTouchStart); + timelineElement.removeEventListener("touchmove", handleTouchMove); + } }; - }, [handleWheel, handleTouchStart, handleTouchMove]); + // we know that these deps are correct + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [handleWheel, handleTouchStart, handleTouchMove, timelineRef.current]); return { zoomLevel, handleZoom, isZooming, zoomDirection }; } diff --git a/web/src/lib/const.ts b/web/src/lib/const.ts new file mode 100644 index 000000000..bd16d8c39 --- /dev/null +++ b/web/src/lib/const.ts @@ -0,0 +1,14 @@ +export const supportedLanguageKeys = [ + "en", + "es", + "fr", + "de", + "it", + "nl", + "nb-NO", + "tr", + "pl", + "zh-CN", + "yue-Hant", + "ru", +]; diff --git a/web/src/pages/Explore.tsx b/web/src/pages/Explore.tsx index 6b156dfab..7e412201e 100644 --- a/web/src/pages/Explore.tsx +++ b/web/src/pages/Explore.tsx @@ -127,7 +127,6 @@ export default function Explore() { limit: Object.keys(searchSearchParams).length == 0 ? API_LIMIT : undefined, timezone, - in_progress: 0, include_thumbnails: 0, }, ]; diff --git a/web/src/pages/FaceLibrary.tsx b/web/src/pages/FaceLibrary.tsx index 4b5b7ae9a..46c90214b 100644 --- a/web/src/pages/FaceLibrary.tsx +++ b/web/src/pages/FaceLibrary.tsx @@ -3,6 +3,7 @@ import TimeAgo from "@/components/dynamic/TimeAgo"; import AddFaceIcon from "@/components/icons/AddFaceIcon"; import ActivityIndicator from "@/components/indicators/activity-indicator"; import CreateFaceWizardDialog from "@/components/overlay/detail/FaceCreateWizardDialog"; +import TextEntryDialog from "@/components/overlay/dialog/TextEntryDialog"; import UploadImageDialog from "@/components/overlay/dialog/UploadImageDialog"; import FaceSelectionDialog from "@/components/overlay/FaceSelectionDialog"; import { Button } from "@/components/ui/button"; @@ -20,6 +21,11 @@ import { DropdownMenuTrigger, DropdownMenuSeparator, } from "@/components/ui/dropdown-menu"; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover"; import { Toaster } from "@/components/ui/sonner"; import { Tooltip, @@ -41,6 +47,8 @@ import { isDesktop, isMobile } from "react-device-detect"; import { useTranslation } from "react-i18next"; import { LuImagePlus, + LuInfo, + LuPencil, LuRefreshCw, LuScanFace, LuSearch, @@ -221,6 +229,32 @@ export default function FaceLibrary() { [faceImages, refreshFaces, setPageToggle, t], ); + const onRename = useCallback( + (oldName: string, newName: string) => { + axios + .put(`/faces/${oldName}/rename`, { new_name: newName }) + .then((resp) => { + if (resp.status === 200) { + toast.success(t("toast.success.renamedFace", { name: newName }), { + position: "top-center", + }); + setPageToggle("train"); + refreshFaces(); + } + }) + .catch((error) => { + const errorMessage = + error.response?.data?.message || + error.response?.data?.detail || + "Unknown error"; + toast.error(t("toast.error.renameFaceFailed", { errorMessage }), { + position: "top-center", + }); + }); + }, + [setPageToggle, refreshFaces, t], + ); + // keyboard useKeyboardListener(["a", "Escape"], (key, modifiers) => { @@ -274,6 +308,7 @@ export default function FaceLibrary() { trainImages={trainImages} setPageToggle={setPageToggle} onDelete={onDelete} + onRename={onRename} /> {selectedFaces?.length > 0 ? (
    @@ -338,6 +373,7 @@ type LibrarySelectorProps = { trainImages: string[]; setPageToggle: (toggle: string | undefined) => void; onDelete: (name: string, ids: string[], isName: boolean) => void; + onRename: (old_name: string, new_name: string) => void; }; function LibrarySelector({ pageToggle, @@ -346,9 +382,11 @@ function LibrarySelector({ trainImages, setPageToggle, onDelete, + onRename, }: LibrarySelectorProps) { const { t } = useTranslation(["views/faceLibrary"]); const [confirmDelete, setConfirmDelete] = useState(null); + const [renameFace, setRenameFace] = useState(null); const handleDeleteFace = useCallback( (faceName: string) => { @@ -361,6 +399,13 @@ function LibrarySelector({ [faceData, onDelete, setPageToggle], ); + const handleSetOpen = useCallback( + (open: boolean) => { + setRenameFace(open ? renameFace : null); + }, + [renameFace], + ); + return ( <> + { + onRename(renameFace!, newName); + setRenameFace(null); + }} + defaultValue={renameFace || ""} + /> +
    - +
    + + + + + + {t("button.renameFace")} + + + + + + + + {t("button.deleteFace")} + + +
    ))} @@ -569,10 +653,23 @@ function TrainingGrid({ {selectedEvent?.data.sub_label_score && (
    - {t("details.confidence")} +
    + {t("details.subLabelScore")} + + +
    + + Info +
    +
    + + {t("details.scoreInfo")} + +
    +
    - {Math.round(selectedEvent?.data?.sub_label_score || 0) * 100}% + {Math.round((selectedEvent?.data?.sub_label_score || 0) * 100)}%
    )} @@ -583,7 +680,8 @@ function TrainingGrid({
    {formattedDate}
    diff --git a/web/src/utils/dateUtil.ts b/web/src/utils/dateUtil.ts index d974521f8..8b1ef2ff4 100644 --- a/web/src/utils/dateUtil.ts +++ b/web/src/utils/dateUtil.ts @@ -28,9 +28,6 @@ export const getNowYesterdayInLong = (): number => { * The `timezone` option allows you to specify a specific timezone for the output, otherwise the user's browser timezone will be used. * The `use12hour` option allows you to display time in a 12-hour format if true, and 24-hour format if false. * The `dateStyle` and `timeStyle` options allow you to specify pre-defined formats for displaying the date and time. - * The `strftime_fmt` option allows you to specify a custom format using the strftime syntax. - * - * If both `strftime_fmt` and `dateStyle`/`timeStyle` are provided, `strftime_fmt` takes precedence. * * @param unixTimestamp The Unix timestamp to format * @param config An object containing the configuration options for date/time display diff --git a/web/src/views/events/EventView.tsx b/web/src/views/events/EventView.tsx index a0d904d35..4ce7fcad4 100644 --- a/web/src/views/events/EventView.tsx +++ b/web/src/views/events/EventView.tsx @@ -279,32 +279,29 @@ export default function EventView({ value="alert" aria-label={t("alerts")} > - {isMobileOnly ? ( -
    +
    + {reviewCounts.alert > -1 ? ( + reviewCounts.alert + ) : ( + + )} +
    +
    + +
    + {t("alerts")} {reviewCounts.alert > -1 ? ( - reviewCounts.alert + ` ∙ ${reviewCounts.alert}` ) : ( - + )}
    - ) : ( - <> - -
    - {t("alerts")} - {reviewCounts.alert > -1 ? ( - ` ∙ ${reviewCounts.alert}` - ) : ( - - )} -
    - - )} +
    - {isMobileOnly ? ( -
    +
    + {reviewCounts.detection > -1 ? ( + reviewCounts.detection + ) : ( + + )} +
    +
    + +
    + {t("detections")} {reviewCounts.detection > -1 ? ( - reviewCounts.detection + ` ∙ ${reviewCounts.detection}` ) : ( - + )}
    - ) : ( - <> - -
    - {t("detections")} - {reviewCounts.detection > -1 ? ( - ` ∙ ${reviewCounts.detection}` - ) : ( - - )} -
    - - )} +
    - {isMobileOnly ? ( - - ) : ( - <> - -
    {t("motion.label")}
    - - )} + +
    + +
    {t("motion.label")}
    +
    diff --git a/web/src/views/live/LiveCameraView.tsx b/web/src/views/live/LiveCameraView.tsx index 79dbd2f87..3294888c0 100644 --- a/web/src/views/live/LiveCameraView.tsx +++ b/web/src/views/live/LiveCameraView.tsx @@ -531,11 +531,9 @@ export default function LiveCameraView({ Icon={mic ? FaMicrophone : FaMicrophoneSlash} isActive={mic} title={ - (mic - ? t("button.disable", { ns: "common" }) - : t("button.enable", { ns: "common" })) + - " " + - t("button.twoWayTalk", { ns: "common" }) + mic + ? t("twoWayTalk.disable", { ns: "views/live" }) + : t("twoWayTalk.enable", { ns: "views/live" }) } onClick={() => { setMic(!mic); @@ -553,11 +551,9 @@ export default function LiveCameraView({ Icon={audio ? GiSpeaker : GiSpeakerOff} isActive={audio ?? false} title={ - (audio - ? t("button.disable", { ns: "common" }) - : t("button.enable", { ns: "common" })) + - " " + - t("button.cameraAudio", { ns: "common" }) + audio + ? t("cameraAudio.disable", { ns: "views/live" }) + : t("cameraAudio.enable", { ns: "views/live" }) } onClick={() => setAudio(!audio)} disabled={!cameraEnabled} @@ -898,8 +894,7 @@ function PtzControlPanel({

    {clickOverlay ? t("ptz.move.clickMove.disable") - : t("ptz.move.clickMove.enable")}{" "} - click to move + : t("ptz.move.clickMove.enable")}

    @@ -1758,7 +1753,7 @@ function FrigateCameraFeatures({ isRecording && "animate-pulse bg-red-500 hover:bg-red-600", )} > - {t("manualRecording." + isRecording ? "end" : "start")} + {t("manualRecording." + (isRecording ? "end" : "start"))}

    {t("manualRecording.tips")} diff --git a/web/src/views/search/SearchView.tsx b/web/src/views/search/SearchView.tsx index d6803f5de..d72d3dbf4 100644 --- a/web/src/views/search/SearchView.tsx +++ b/web/src/views/search/SearchView.tsx @@ -31,7 +31,7 @@ import { import Chip from "@/components/indicators/Chip"; import { TooltipPortal } from "@radix-ui/react-tooltip"; import SearchActionGroup from "@/components/filter/SearchActionGroup"; -import { useTranslation } from "react-i18next"; +import { Trans, useTranslation } from "react-i18next"; type SearchViewProps = { search: string; @@ -608,8 +608,21 @@ export default function SearchView({ - Matched {value.search_source} at{" "} - {zScoreToConfidence(value.search_distance)}% + + searchResult.tooltip + diff --git a/web/src/views/settings/CameraSettingsView.tsx b/web/src/views/settings/CameraSettingsView.tsx index ce03b5b31..16506b008 100644 --- a/web/src/views/settings/CameraSettingsView.tsx +++ b/web/src/views/settings/CameraSettingsView.tsx @@ -251,8 +251,8 @@ export default function CameraSettingsView({ } useEffect(() => { - document.title = "Camera Settings - Frigate"; - }, []); + document.title = t("documentTitle.camera"); + }, [t]); if (!cameraConfig && !selectedCamera) { return ; diff --git a/web/src/views/settings/NotificationsSettingsView.tsx b/web/src/views/settings/NotificationsSettingsView.tsx index 79963f4b3..a2d43ba91 100644 --- a/web/src/views/settings/NotificationsSettingsView.tsx +++ b/web/src/views/settings/NotificationsSettingsView.tsx @@ -299,6 +299,10 @@ export default function NotificationView({ saveToConfig(values as NotificationSettingsValueType); } + useEffect(() => { + document.title = t("documentTitle.notifications"); + }, [t]); + if (!("Notification" in window) || !window.isSecureContext) { return (

    @@ -317,9 +321,7 @@ export default function NotificationView({ rel="noopener noreferrer" className="inline" > -

    - {t("notification.notificationSettings.documentation")} -

    {" "} + {t("notification.notificationSettings.documentation")}{" "}
    @@ -341,9 +343,7 @@ export default function NotificationView({ rel="noopener noreferrer" className="inline" > -

    - {t("notification.notificationUnavailable.documentation")} -

    {" "} + {t("notification.notificationUnavailable.documentation")}{" "}
    @@ -704,7 +704,7 @@ export function CameraNotificationSwitch({ {!isSuspended ? (