Update docs deps (#10591)

* remove deprecated caution in facor of warning

* Update last dep
This commit is contained in:
Nicolas Mowen 2024-03-21 11:52:45 -06:00 committed by GitHub
parent 0ac7aaabe3
commit e5595ebb2f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 74 additions and 75 deletions

View File

@ -96,7 +96,7 @@ model:
Note that if you rename objects in the labelmap, you will also need to update your `objects -> track` list as well. Note that if you rename objects in the labelmap, you will also need to update your `objects -> track` list as well.
:::caution :::warning
Some labels have special handling and modifications can disable functionality. Some labels have special handling and modifications can disable functionality.

View File

@ -104,7 +104,7 @@ According to [this discussion](https://github.com/blakeblackshear/frigate/issues
Cameras connected via a Reolink NVR can be connected with the http stream, use `channel[0..15]` in the stream url for the additional channels. Cameras connected via a Reolink NVR can be connected with the http stream, use `channel[0..15]` in the stream url for the additional channels.
The setup of main stream can be also done via RTSP, but isn't always reliable on all hardware versions. The example configuration is working with the oldest HW version RLN16-410 device with multiple types of cameras. The setup of main stream can be also done via RTSP, but isn't always reliable on all hardware versions. The example configuration is working with the oldest HW version RLN16-410 device with multiple types of cameras.
:::caution :::warning
The below configuration only works for reolink cameras with stream resolution of 5MP or lower, 8MP+ cameras need to use RTSP as http-flv is not supported in this case. The below configuration only works for reolink cameras with stream resolution of 5MP or lower, 8MP+ cameras need to use RTSP as http-flv is not supported in this case.
@ -145,7 +145,7 @@ cameras:
- path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr_sub?video=copy - path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr_sub?video=copy
input_args: preset-rtsp-restream input_args: preset-rtsp-restream
roles: roles:
- detect - detect
``` ```
#### Reolink Doorbell #### Reolink Doorbell

View File

@ -11,11 +11,11 @@ A camera is enabled by default but can be temporarily disabled by using `enabled
Each role can only be assigned to one input per camera. The options for roles are as follows: Each role can only be assigned to one input per camera. The options for roles are as follows:
| Role | Description | | Role | Description |
| -------- | ---------------------------------------------------------------------------------------- | | -------- | ----------------------------------------------------------------------------------- |
| `detect` | Main feed for object detection. [docs](object_detectors.md) | | `detect` | Main feed for object detection. [docs](object_detectors.md) |
| `record` | Saves segments of the video feed based on configuration settings. [docs](record.md) | | `record` | Saves segments of the video feed based on configuration settings. [docs](record.md) |
| `audio` | Feed for audio based detection. [docs](audio_detectors.md) | | `audio` | Feed for audio based detection. [docs](audio_detectors.md) |
```yaml ```yaml
mqtt: mqtt:
@ -50,7 +50,7 @@ For camera model specific settings check the [camera specific](camera_specific.m
## Setting up camera PTZ controls ## Setting up camera PTZ controls
:::caution :::warning
Not every PTZ supports ONVIF, which is the standard protocol Frigate uses to communicate with your camera. Check the [official list of ONVIF conformant products](https://www.onvif.org/conformant-products/), your camera documentation, or camera manufacturer's website to ensure your PTZ supports ONVIF. Also, ensure your camera is running the latest firmware. Not every PTZ supports ONVIF, which is the standard protocol Frigate uses to communicate with your camera. Check the [official list of ONVIF conformant products](https://www.onvif.org/conformant-products/), your camera documentation, or camera manufacturer's website to ensure your PTZ supports ONVIF. Also, ensure your camera is running the latest firmware.

View File

@ -21,8 +21,8 @@ See [the hwaccel docs](/configuration/hardware_acceleration.md) for more info on
| preset-nvidia | Nvidia GPU | | | preset-nvidia | Nvidia GPU | |
| preset-jetson-h264 | Nvidia Jetson with h264 stream | | | preset-jetson-h264 | Nvidia Jetson with h264 stream | |
| preset-jetson-h265 | Nvidia Jetson with h265 stream | | | preset-jetson-h265 | Nvidia Jetson with h265 stream | |
| preset-rk-h264 | Rockchip MPP with h264 stream | Use image with *-rk suffix and privileged mode | | preset-rk-h264 | Rockchip MPP with h264 stream | Use image with \*-rk suffix and privileged mode |
| preset-rk-h265 | Rockchip MPP with h265 stream | Use image with *-rk suffix and privileged mode | | preset-rk-h265 | Rockchip MPP with h265 stream | Use image with \*-rk suffix and privileged mode |
### Input Args Presets ### Input Args Presets
@ -42,7 +42,7 @@ See [the camera specific docs](/configuration/camera_specific.md) for more info
| preset-rtsp-udp | RTSP Stream via UDP | Use when camera is UDP only | | preset-rtsp-udp | RTSP Stream via UDP | Use when camera is UDP only |
| preset-rtsp-blue-iris | Blue Iris RTSP Stream | Use when consuming a stream from Blue Iris | | preset-rtsp-blue-iris | Blue Iris RTSP Stream | Use when consuming a stream from Blue Iris |
:::caution :::warning
It is important to be mindful of input args when using restream because you can have a mix of protocols. `http` and `rtmp` presets cannot be used with `rtsp` streams. For example, when using a reolink cam with the rtsp restream as a source for record the preset-http-reolink will cause a crash. In this case presets will need to be set at the stream level. See the example below. It is important to be mindful of input args when using restream because you can have a mix of protocols. `http` and `rtmp` presets cannot be used with `rtsp` streams. For example, when using a reolink cam with the rtsp restream as a source for record the preset-http-reolink will cause a crash. In this case presets will need to be set at the stream level. See the example below.
@ -71,11 +71,11 @@ cameras:
Output args presets help make the config more readable and handle use cases for different types of streams to ensure consistent recordings. Output args presets help make the config more readable and handle use cases for different types of streams to ensure consistent recordings.
| Preset | Usage | Other Notes | | Preset | Usage | Other Notes |
| -------------------------------- | --------------------------------- | --------------------------------------------- | | -------------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| preset-record-generic | Record WITHOUT audio | This is the default when nothing is specified | | preset-record-generic | Record WITHOUT audio | This is the default when nothing is specified |
| preset-record-generic-audio-copy | Record WITH original audio | Use this to enable audio in recordings | | preset-record-generic-audio-copy | Record WITH original audio | Use this to enable audio in recordings |
| preset-record-generic-audio-aac | Record WITH transcoded aac audio | Use this to transcode to aac audio. If your source is already aac, use preset-record-generic-audio-copy instead to avoid re-encoding | | preset-record-generic-audio-aac | Record WITH transcoded aac audio | Use this to transcode to aac audio. If your source is already aac, use preset-record-generic-audio-copy instead to avoid re-encoding |
| preset-record-mjpeg | Record an mjpeg stream | Recommend restreaming mjpeg stream instead | | preset-record-mjpeg | Record an mjpeg stream | Recommend restreaming mjpeg stream instead |
| preset-record-jpeg | Record live jpeg | Recommend restreaming live jpeg instead | | preset-record-jpeg | Record live jpeg | Recommend restreaming live jpeg instead |
| preset-record-ubiquiti | Record ubiquiti stream with audio | Recordings with ubiquiti non-standard audio | | preset-record-ubiquiti | Record ubiquiti stream with audio | Recordings with ubiquiti non-standard audio |

View File

@ -5,7 +5,7 @@ title: Full Reference Config
### Full configuration reference: ### Full configuration reference:
:::caution :::warning
It is not recommended to copy this full configuration file. Only specify values that are different from the defaults. Configuration options and default values may change in future versions. It is not recommended to copy this full configuration file. Only specify values that are different from the defaults. Configuration options and default values may change in future versions.

View File

@ -47,7 +47,7 @@ services:
... ...
``` ```
:::caution :::warning
Users of the Snapcraft build of Docker cannot use storage locations outside your $HOME folder. Users of the Snapcraft build of Docker cannot use storage locations outside your $HOME folder.
@ -98,9 +98,9 @@ services:
image: ghcr.io/blakeblackshear/frigate:stable image: ghcr.io/blakeblackshear/frigate:stable
shm_size: "64mb" # update for your cameras based on calculation above shm_size: "64mb" # update for your cameras based on calculation above
devices: devices:
- /dev/bus/usb:/dev/bus/usb # Passes the USB Coral, needs to be modified for other versions - /dev/bus/usb:/dev/bus/usb # Passes the USB Coral, needs to be modified for other versions
- /dev/apex_0:/dev/apex_0 # Passes a PCIe Coral, follow driver instructions here https://coral.ai/docs/m2/get-started/#2a-on-linux - /dev/apex_0:/dev/apex_0 # Passes a PCIe Coral, follow driver instructions here https://coral.ai/docs/m2/get-started/#2a-on-linux
- /dev/video11:/dev/video11 # For Raspberry Pi 4B - /dev/video11:/dev/video11 # For Raspberry Pi 4B
- /dev/dri/renderD128:/dev/dri/renderD128 # For intel hwaccel, needs to be updated for your hardware - /dev/dri/renderD128:/dev/dri/renderD128 # For intel hwaccel, needs to be updated for your hardware
volumes: volumes:
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
@ -158,7 +158,7 @@ The community supported docker image tags for the current stable version are:
## Home Assistant Addon ## Home Assistant Addon
:::caution :::warning
As of HomeAssistant OS 10.2 and Core 2023.6 defining separate network storage for media is supported. As of HomeAssistant OS 10.2 and Core 2023.6 defining separate network storage for media is supported.

View File

@ -74,7 +74,7 @@ go2rtc:
- "ffmpeg:rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2#video=copy#audio=copy#audio=aac" - "ffmpeg:rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2#video=copy#audio=copy#audio=aac"
``` ```
:::caution :::warning
To access the go2rtc stream externally when utilizing the Frigate Add-On (for instance through VLC), you must first enable the RTSP Restream port. You can do this by visiting the Frigate Add-On configuration page within Home Assistant and revealing the hidden options under the "Show disabled ports" section. To access the go2rtc stream externally when utilizing the Frigate Add-On (for instance through VLC), you must first enable the RTSP Restream port. You can do this by visiting the Frigate Add-On configuration page within Home Assistant and revealing the hidden options under the "Show disabled ports" section.

View File

@ -245,7 +245,7 @@ Now that you have optimized your configuration for decoding the video stream, yo
Now that you know where you need to mask, use the "Mask & Zone creator" in the options pane to generate the coordinates needed for your config file. More information about masks can be found [here](../configuration/masks.md). Now that you know where you need to mask, use the "Mask & Zone creator" in the options pane to generate the coordinates needed for your config file. More information about masks can be found [here](../configuration/masks.md).
:::caution :::warning
Note that motion masks should not be used to mark out areas where you do not want objects to be detected or to reduce false positives. They do not alter the image sent to object detection, so you can still get events and detections in areas with motion masks. These only prevent motion in these areas from initiating object detection. Note that motion masks should not be used to mark out areas where you do not want objects to be detected or to reduce false positives. They do not alter the image sent to object detection, so you can still get events and detections in areas with motion masks. These only prevent motion in these areas from initiating object detection.

View File

@ -11,7 +11,7 @@ This is an area targeted for improvement in future releases.
Many people use Frigate to detect cars entering their driveway, and they often run into an issue with repeated events of parked cars and/or long running events after the car parks. This can cause Frigate to store more video than desired. Many people use Frigate to detect cars entering their driveway, and they often run into an issue with repeated events of parked cars and/or long running events after the car parks. This can cause Frigate to store more video than desired.
:::caution :::warning
It is not recommended to use motion masks to try and eliminate parked cars in your driveway. Motion masks are designed to prevent motion from triggering object detection and will not prevent objects from being detected in the area if motion is detected outside of the motion mask. It is not recommended to use motion masks to try and eliminate parked cars in your driveway. Motion masks are designed to prevent motion from triggering object detection and will not prevent objects from being detected in the area if motion is detected outside of the motion mask.

View File

@ -13,7 +13,7 @@ The suggested steps are:
- **Encrypt** content from the proxy webserver by installing SSL (such as with [Let's Encrypt](https://letsencrypt.org/)). Note that SSL is then not required on your Frigate webserver as the proxy encrypts all requests for you - **Encrypt** content from the proxy webserver by installing SSL (such as with [Let's Encrypt](https://letsencrypt.org/)). Note that SSL is then not required on your Frigate webserver as the proxy encrypts all requests for you
- **Restrict** access to your Frigate instance at the proxy using, for example, password authentication - **Restrict** access to your Frigate instance at the proxy using, for example, password authentication
:::caution :::warning
A reverse proxy can be used to secure access to an internal webserver but the user will be entirely reliant A reverse proxy can be used to secure access to an internal webserver but the user will be entirely reliant
on the steps they have taken. You must ensure you are following security best practices. on the steps they have taken. You must ensure you are following security best practices.
This page does not attempt to outline the specific steps needed to secure your internal website. This page does not attempt to outline the specific steps needed to secure your internal website.
@ -91,7 +91,7 @@ This method shows a working example for subdomain type reverse proxy with SSL en
### Setup server and port to reverse proxy ### Setup server and port to reverse proxy
This is set in `$server` and `$port` this should match your ports you have exposed to your docker container. Optionally you listen on port `443` and enable `SSL` This is set in `$server` and `$port` this should match your ports you have exposed to your docker container. Optionally you listen on port `443` and enable `SSL`
``` ```
# ------------------------------------------------------------ # ------------------------------------------------------------
@ -112,7 +112,7 @@ server {
### Setup SSL (optional) ### Setup SSL (optional)
This section points to your SSL files, the example below shows locations to a default Lets Encrypt SSL certificate. This section points to your SSL files, the example below shows locations to a default Lets Encrypt SSL certificate.
``` ```
# Let's Encrypt SSL # Let's Encrypt SSL
@ -122,7 +122,6 @@ This section points to your SSL files, the example below shows locations to a de
ssl_certificate_key /etc/letsencrypt/live/npm-1/privkey.pem; ssl_certificate_key /etc/letsencrypt/live/npm-1/privkey.pem;
``` ```
### Setup reverse proxy settings ### Setup reverse proxy settings
The settings below enabled connection upgrade, sets up logging (optional) and proxies everything from the `/` context to the docker host and port specified earlier in the configuration The settings below enabled connection upgrade, sets up logging (optional) and proxies everything from the `/` context to the docker host and port specified earlier in the configuration

View File

@ -29,8 +29,8 @@ Sample response:
/*************** /***************
* Frames per second being consumed from your camera. If this is higher * Frames per second being consumed from your camera. If this is higher
* than it is supposed to be, you should set -r FPS in your input_args. * than it is supposed to be, you should set -r FPS in your input_args.
* camera_fps = process_fps + skipped_fps * camera_fps = process_fps + skipped_fps
***************/ ***************/
"camera_fps": 5.0, "camera_fps": 5.0,
/*************** /***************
* Number of times detection is run per second. This can be higher than * Number of times detection is run per second. This can be higher than
@ -40,19 +40,19 @@ Sample response:
"detection_fps": 1.5, "detection_fps": 1.5,
/*************** /***************
* PID for the ffmpeg process that consumes this camera * PID for the ffmpeg process that consumes this camera
***************/ ***************/
"capture_pid": 27, "capture_pid": 27,
/*************** /***************
* PID for the process that runs detection for this camera * PID for the process that runs detection for this camera
***************/ ***************/
"pid": 34, "pid": 34,
/*************** /***************
* Frames per second being processed by Frigate. * Frames per second being processed by Frigate.
***************/ ***************/
"process_fps": 5.1, "process_fps": 5.1,
/*************** /***************
* Frames per second skip for processing by Frigate. * Frames per second skip for processing by Frigate.
***************/ ***************/
"skipped_fps": 0.0 "skipped_fps": 0.0
} }
}, },
@ -117,15 +117,15 @@ Sample response:
"cmdline": "ffmpeg...", "cmdline": "ffmpeg...",
"cpu": "5.0", "cpu": "5.0",
"cpu_average": "3.0", "cpu_average": "3.0",
"mem": "0.5", "mem": "0.5"
} }
}, },
"gpu_usages": { "gpu_usages": {
"gpu-type": { "gpu-type": {
"gpu": "17%", "gpu": "17%",
"mem": "18%", "mem": "18%"
}, }
}, }
} }
``` ```
@ -278,7 +278,7 @@ Sub labels must be 100 characters or shorter.
```json ```json
{ {
"subLabel": "some_string", "subLabel": "some_string",
"subLabelScore": 0.79, "subLabelScore": 0.79
} }
``` ```
@ -317,7 +317,7 @@ Accepts the following query string parameters, but they are only applied when an
Create a manual event with a given `label` (ex: doorbell press) to capture a specific event besides an object being detected. Create a manual event with a given `label` (ex: doorbell press) to capture a specific event besides an object being detected.
:::caution :::warning
Recording retention config still applies to manual events, if frigate is configured with `mode: motion` then the manual event will only keep recording segments when motion occurred. Recording retention config still applies to manual events, if frigate is configured with `mode: motion` then the manual event will only keep recording segments when motion occurred.
@ -409,7 +409,7 @@ It is also possible to export this recording as a time-lapse.
```json ```json
{ {
"playback": "realtime", // playback factor: realtime or timelapse_25x "playback": "realtime" // playback factor: realtime or timelapse_25x
} }
``` ```
@ -444,25 +444,25 @@ Returns the snapshot image from the specific point in that cameras recordings.
Reviews from the database. Accepts the following query string parameters: Reviews from the database. Accepts the following query string parameters:
| param | Type | Description | | param | Type | Description |
| -------------------- | ----- | ---------------------------------------------------------------------- | | ---------- | ---- | -------------------------------------------------------------- |
| `before` | int | Epoch time | | `before` | int | Epoch time |
| `after` | int | Epoch time | | `after` | int | Epoch time |
| `cameras` | str | , separated list of cameras | | `cameras` | str | , separated list of cameras |
| `labels` | str | , separated list of labels | | `labels` | str | , separated list of labels |
| `reviewed` | int | Include items that have been reviewed (0 or 1) | | `reviewed` | int | Include items that have been reviewed (0 or 1) |
| `limit` | int | Limit the number of events returned | | `limit` | int | Limit the number of events returned |
| `severity` | str | Limit items to severity (alert, detection, significant_motion) | | `severity` | str | Limit items to severity (alert, detection, significant_motion) |
### `GET /api/review/summary` ### `GET /api/review/summary`
Summary of reviews for the last 30 days. Accepts the following query string parameters: Summary of reviews for the last 30 days. Accepts the following query string parameters:
| param | Type | Description | | param | Type | Description |
| -------------------- | ----- | ---------------------------------------------------------------------- | | ---------- | ---- | --------------------------- |
| `cameras` | str | , separated list of cameras | | `cameras` | str | , separated list of cameras |
| `labels` | str | , separated list of labels | | `labels` | str | , separated list of labels |
| `timezone` | str | Timezone name | | `timezone` | str | Timezone name |
### `POST /api/review/<id>/viewed` ### `POST /api/review/<id>/viewed`

View File

@ -21,7 +21,7 @@ Once logged in, you can generate an API key for Frigate in Settings.
In Frigate, you can use an environment variable or a docker secret named `PLUS_API_KEY` to enable the `SEND TO FRIGATE+` buttons on the events page. Home Assistant Addon users can set it under Settings > Addons > Frigate NVR > Configuration > Options (be sure to toggle the "Show unused optional configuration options" switch). In Frigate, you can use an environment variable or a docker secret named `PLUS_API_KEY` to enable the `SEND TO FRIGATE+` buttons on the events page. Home Assistant Addon users can set it under Settings > Addons > Frigate NVR > Configuration > Options (be sure to toggle the "Show unused optional configuration options" switch).
:::caution :::warning
You cannot use the `environment_vars` section of your configuration file to set this environment variable. You cannot use the `environment_vars` section of your configuration file to set this environment variable.

View File

@ -6,7 +6,7 @@ title: Third Party Extensions
Being open source, others have the possibility to modify and extend the rich functionality Frigate already offers. Being open source, others have the possibility to modify and extend the rich functionality Frigate already offers.
This page is meant to be an overview over additions one can make to the home NVR setup. The list is not exhaustive and can be extended via PR to the Frigate docs. This page is meant to be an overview over additions one can make to the home NVR setup. The list is not exhaustive and can be extended via PR to the Frigate docs.
:::caution :::warning
This page does not recommend or rate the presented projects. This page does not recommend or rate the presented projects.
Please use your own knowledge to assess and vet them before you install anything on your system. Please use your own knowledge to assess and vet them before you install anything on your system.

14
docs/package-lock.json generated
View File

@ -8,9 +8,9 @@
"name": "docs", "name": "docs",
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"@docusaurus/core": "^3.0.0", "@docusaurus/core": "^3.1.1",
"@docusaurus/preset-classic": "^3.0.0", "@docusaurus/preset-classic": "^3.1.1",
"@docusaurus/theme-mermaid": "^3.0.0", "@docusaurus/theme-mermaid": "^3.1.1",
"@mdx-js/react": "^3.0.0", "@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0", "clsx": "^2.0.0",
"prism-react-renderer": "^2.1.0", "prism-react-renderer": "^2.1.0",
@ -21,7 +21,7 @@
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "^3.0.0", "@docusaurus/module-type-aliases": "^3.0.0",
"@docusaurus/types": "^3.0.0", "@docusaurus/types": "^3.0.0",
"@types/react": "^18.2.29" "@types/react": "^18.2.67"
}, },
"engines": { "engines": {
"node": ">=18.0" "node": ">=18.0"
@ -3599,9 +3599,9 @@
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
}, },
"node_modules/@types/react": { "node_modules/@types/react": {
"version": "18.2.63", "version": "18.2.67",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.63.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.67.tgz",
"integrity": "sha512-ppaqODhs15PYL2nGUOaOu2RSCCB4Difu4UFrP4I3NHLloXC/ESQzQMi9nvjfT1+rudd0d2L3fQPJxRSey+rGlQ==", "integrity": "sha512-vkIE2vTIMHQ/xL0rgmuoECBCkZFZeHr49HeWSc24AptMbNRo7pwSBvj73rlJJs9fGKj0koS+V7kQB1jHS0uCgw==",
"dependencies": { "dependencies": {
"@types/prop-types": "*", "@types/prop-types": "*",
"@types/scheduler": "*", "@types/scheduler": "*",

View File

@ -14,9 +14,9 @@
"write-heading-ids": "docusaurus write-heading-ids" "write-heading-ids": "docusaurus write-heading-ids"
}, },
"dependencies": { "dependencies": {
"@docusaurus/core": "^3.0.0", "@docusaurus/core": "^3.1.1",
"@docusaurus/preset-classic": "^3.0.0", "@docusaurus/preset-classic": "^3.1.1",
"@docusaurus/theme-mermaid": "^3.0.0", "@docusaurus/theme-mermaid": "^3.1.1",
"@mdx-js/react": "^3.0.0", "@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0", "clsx": "^2.0.0",
"prism-react-renderer": "^2.1.0", "prism-react-renderer": "^2.1.0",
@ -39,7 +39,7 @@
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "^3.0.0", "@docusaurus/module-type-aliases": "^3.0.0",
"@docusaurus/types": "^3.0.0", "@docusaurus/types": "^3.0.0",
"@types/react": "^18.2.29" "@types/react": "^18.2.67"
}, },
"engines": { "engines": {
"node": ">=18.0" "node": ">=18.0"