From ff9e75ef7589ccc42709a1f0ba9a73b88321ac34 Mon Sep 17 00:00:00 2001 From: Andy Tael Date: Fri, 17 Oct 2025 14:49:58 -0500 Subject: [PATCH] Docusuarus upgrade ans doc updates Signed-off-by: Andy Tael --- docs-source/site/docs/intro.md | 36 +- docs-source/site/docs/setup/database.md | 111 +- docs-source/site/docs/setup/namespace.md | 138 +- docs-source/site/docs/setup/obaas.md | 209 ++- docs-source/site/docs/setup/observability.md | 118 +- docs-source/site/docs/setup/obtaining.md | 123 +- docs-source/site/docs/setup/prereq-chart.md | 234 ++- docs-source/site/docs/setup/prereqs.md | 127 +- docs-source/site/docs/setup/secrets.md | 7 +- docs-source/site/docs/setup/setup.md | 165 +- docs-source/site/docusaurus.config.ts | 6 +- docs-source/site/package-lock.json | 1622 +++++++++++------- docs-source/site/package.json | 10 +- 13 files changed, 2068 insertions(+), 838 deletions(-) diff --git a/docs-source/site/docs/intro.md b/docs-source/site/docs/intro.md index 545a103c4..c90852911 100644 --- a/docs-source/site/docs/intro.md +++ b/docs-source/site/docs/intro.md @@ -1,7 +1,39 @@ --- sidebar_position: 1 --- - # Oracle Backend for Microservices and AI -Oracle Backend for Microservices and AI allows developers to build microservices in Helidon and/or Spring Boot and provisions a “backend as a service” with Oracle Database and other infrastructure components that operate on multiple clouds. Oracle Backend for Microservices and AI vastly simplifies the task of building, testing, and operating microservices platforms for reliable, secure, and scalable enterprise applications. +## Accelerate Your Journey to Cloud-Native Applications + +Oracle Backend for Microservices and AI (OBaaS) is a comprehensive platform that transforms how developers build, deploy, and scale modern applications. By combining the power of Oracle Database with a complete microservices infrastructure, OBaaS eliminates the complexity of cloud-native development and empowers teams to focus on innovation rather than infrastructure. + +## Build Faster, Scale Smarter + +Whether you're building with Helidon, Spring Boot, or integrating AI capabilities, OBaaS provides a production-ready "backend as a service" that handles the heavy lifting. Deploy across multiple clouds with confidence, knowing that your platform is built on proven Oracle technology designed for enterprise-grade reliability, security, and performance. + +## Why Choose Oracle Backend for Microservices and AI? + +### Developer Experience First + +Write code in your preferred framework—Helidon or Spring Boot—while OBaaS handles service discovery, configuration management, API gateways, and data persistence. Spend less time configuring infrastructure and more time building features that matter to your business. + +### Enterprise-Grade Infrastructure + +Built on Oracle Database and designed for mission-critical workloads, OBaaS provides: + +- **Reliability**: High availability and disaster recovery built in +- **Security**: Enterprise-grade security controls and compliance +- **Scalability**: Elastic scaling to meet demand automatically +- **Performance**: Optimized for low latency and high throughput + +### AI-Ready Platform + +Leverage the power of Oracle Database 23ai to integrate artificial intelligence and machine learning directly into your applications. Build intelligent services that learn and adapt without the complexity of managing separate AI infrastructure. + +### Multi-Cloud Flexibility + +Deploy on Oracle Cloud Infrastructure, other cloud providers, or hybrid environments. OBaaS provides consistent operations and portability across clouds, giving you freedom from vendor lock-in. + +### Simplified Operations + +OBaaS vastly simplifies the task of building, testing, and operating microservices platforms. From development through production, automated workflows and integrated tooling streamline every phase of the application lifecycle. diff --git a/docs-source/site/docs/setup/database.md b/docs-source/site/docs/setup/database.md index 33a3d2081..206a79f0a 100644 --- a/docs-source/site/docs/setup/database.md +++ b/docs-source/site/docs/setup/database.md @@ -1,36 +1,67 @@ --- -title: Prepare and Install the OBaaS Database Helm chart +title: Prepare and Install the OBaaS Database Helm Chart sidebar_position: 9 --- -## Prepare and Install the OBaaS Database Helm chart +## Prepare and Install the OBaaS Database Helm Chart -For this step, you will need the **obaas-db** directory in which you will see the following files: +## Overview + +This guide provides instructions for preparing and installing the OBaaS Database Helm chart in your Kubernetes cluster. + +## Prerequisites + +Navigate to the `obaas-db` directory containing the Helm chart files: ```bash cd obaas-db/ ls -Chart.yaml scripts templates values.yaml ``` -You must edit the **values.yaml** file as follows: +Expected output: + +```text +Chart.yaml scripts templates values.yaml +``` + +## Configuration + +### Editing values.yaml + +Before installation, edit the `values.yaml` file according to your environment requirements. + +#### Private Repository Configuration -- If you are using a private repository, you must update each **image** entry to point to your private repository instead of the public repositories. +If you are using a private repository, update each `image` entry to point to your private repository instead of the public repositories. -- (Optional) If you want to install any components in this chart into their own separate namespace, you can override the global namespace by setting a value in the **namespace** property inside the section for that component. +#### Namespace Configuration (Optional) -**Important note**: Please pause to double check all of the values are correct. If there are any errors here, the database provisioning will fail. +To install components into separate namespaces, override the global namespace by setting a value in the `namespace` property inside the component's section. -Install the Helm chart using the following command (The `--debug` flag is optional and enables verbose output from Helm). +:::warning Important +Double-check all values before proceeding. Incorrect values will cause the database provisioning to fail. +::: -- global.obaasName="obaas-dev" - Sets the OBaaS instance name. -- global.targetNamespace="obaas-dev" - Specifies the target namespace (*OPTIONAL*, only needed if you want to override the default namespace). +## Installation -**Note**: If you are installing multiple OBaaS instances in your cluster, each one MUST have a different release name, `obaasName` and `targetNamespace`. +### Single Instance Installation + +Install the Helm chart using the following command: ```bash -helm --debug install obaas-db --set global.obaasName="obaas-dev" --set global.targetNamespace="obaas-dev" ./ +helm --debug install obaas-db \ + --set global.obaasName="obaas-dev" \ + --set global.targetNamespace="obaas-dev" \ + ./ ``` +**Parameters:** + +- `global.obaasName`: Sets the OBaaS instance name +- `global.targetNamespace`: Specifies the target namespace (optional, only needed to override the default namespace) +- `--debug`: Optional flag that enables verbose output from Helm + +**Expected output:** + ```text NAME: obaas-db LAST DEPLOYED: Sun Aug 17 13:09:20 2025 @@ -40,29 +71,57 @@ REVISION: 1 TEST SUITE: None ``` -When the installation has completed, you can use `helm ls` command to view the installed charts: +### Multiple Instance Installation -```text -NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION -obaas-db default 1 2025-09-12 13:51:23.751199 -0500 CDT deployed OBaaS-db-0.1.0 2.0.0-M4 -obaas-observability default 1 2025-09-12 13:45:43.113298 -0500 CDT deployed OBaaS-observability-0.1.0 2.0.0-M4 -obaas-prereqs default 1 2025-09-12 13:37:16.026781 -0500 CDT deployed OBaaS-Prerequisites-0.0.1 2.0.0-M4 +When installing multiple OBaaS instances in your cluster, each instance must have unique values for: + +- Release name +- `obaasName` +- `targetNamespace` + +**Example for development instance:** + +```bash +helm --debug install obaas-db \ + --set global.obaasName="obaas-dev" \ + --set global.targetNamespace="obaas-dev" \ + ./ ``` -If you overrode the namespace for this component, you will see a new namespace called **oracle-database-operator-system** (for example) and the following pods. Otherwise the pods will be in the **obaas-dev** namespace (or whatever name you chose). +**Example for production instance:** -![DB Operator pods](media/image6.png) +```bash +helm --debug install obaas-prod-db \ + --set global.obaasName="obaas-prod" \ + --set global.targetNamespace="obaas-prod" \ + ./ +``` + +## Verification -**Note**: If you are installing multiple OBaaS instances in your cluster, each one MUST have a different release name, `obaasName` and `targetNamespace`. For example (The `--debug` flag is optional and enables verbose output from Helm): +### View Installed Charts -For obaas-dev: +After installation completes, view the installed Helm charts: ```bash -helm --debug install obaas-db --set global.obaasName="obaas-dev" --set global.targetNamespace="obaas-dev" ./ +helm ls ``` -For obaas-prod: +**Expected output:** + +```text +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +obaas-db default 1 2025-09-12 13:51:23.751199 -0500 CDT deployed OBaaS-db-0.1.0 2.0.0-M4 +obaas-observability default 1 2025-09-12 13:45:43.113298 -0500 CDT deployed OBaaS-observability-0.1.0 2.0.0-M4 +obaas-prereqs default 1 2025-09-12 13:37:16.026781 -0500 CDT deployed OBaaS-Prerequisites-0.0.1 2.0.0-M4 +``` + +### Verify Pods and Namespaces + +If you overrode the namespace for this component, you will see a new namespace (e.g., `oracle-database-operator-system`) with the following pods. Otherwise, the pods will be in your target namespace (e.g., `obaas-dev`). ```bash -helm --debug install obaas-prod-db --set global.obaasName="obaas-prod" --set global.targetNamespace="obaas-prod" ./ +kubectl get pods -n oracle-database-operator-system ``` + +![DB Operator pods](media/image6.png) diff --git a/docs-source/site/docs/setup/namespace.md b/docs-source/site/docs/setup/namespace.md index 8980051e0..d99fd5dfc 100644 --- a/docs-source/site/docs/setup/namespace.md +++ b/docs-source/site/docs/setup/namespace.md @@ -2,20 +2,148 @@ title: Create Namespace(s) for OBaaS sidebar_position: 6 --- -## Create the namespace(s) for the OBaaS installation(s) +## Create Namespace(s) for OBaaS -EACH instance of OBaaS must be installed in its own dedicated/unique namespace. +## Overview -**Note**: You will only install the **obaas-prereqs** chart once per cluster, all other charts are installed once per OBaaS instance. The **obaas-prereqs** chart contains items that are cluster-wide and shared by all OBaaS instances in a cluster. If you are going to install multiple OBaaS instances (which is not supported in 2.0.0-M4) we recommend that you put the **obaas-prereqs** chart in its own namespace, separate from all OBaaS instances. +Each OBaaS instance requires its own dedicated namespace for isolation and organization within your Kubernetes cluster. -To create the namespace(s), use the following command(s). For example, to create two installations called `obaas-dev` and `obaas-prod`: +## Namespace Requirements + +### Instance Isolation + +Each OBaaS instance must be installed in its own unique namespace. This ensures: + +- Resource isolation between instances +- Independent lifecycle management +- Clear separation of concerns +- Simplified troubleshooting and maintenance + +### Prerequisites Chart Namespace + +The `obaas-prereqs` chart has special considerations: + +- Installed **once per cluster** (not per instance) +- Contains cluster-wide components shared by all OBaaS instances +- Should be installed in its own dedicated namespace, separate from OBaaS instances + +:::info Multiple Instance Support +Multiple OBaaS instances are not supported in version 2.0.0-M4. This capability is planned for future releases. +::: + +## Creating Namespaces + +### Single Instance + +For a single OBaaS installation, create one namespace: + +```bash +kubectl create ns obaas-dev +``` + +Verify the namespace was created: + +```bash +kubectl get ns obaas-dev +``` + +Expected output: + +```text +NAME STATUS AGE +obaas-dev Active 5s +``` + +### Multiple Instances (Future Support) + +When multiple instances are supported, create a namespace for each instance. For example, to create development and production installations: + +**Development namespace:** ```bash kubectl create ns obaas-dev ``` +**Production namespace:** + ```bash kubectl create ns obaas-prod ``` -Change the value to the desired name(s). +**Verify all namespaces:** + +```bash +kubectl get ns | grep obaas +``` + +Expected output: + +```text +obaas-dev Active 10s +obaas-prod Active 5s +``` + +## Namespace Naming Conventions + +When naming your namespaces, consider the following best practices: + +- Use lowercase letters, numbers, and hyphens only +- Keep names descriptive and meaningful (e.g., `obaas-dev`, `obaas-prod`, `obaas-staging`) +- Include environment indicators for clarity +- Avoid special characters or spaces +- Keep names concise but descriptive + +**Examples of good namespace names:** + +```bash +obaas-dev +obaas-production +obaas-test +obaas-staging +obaas-demo +``` + +## Verification + +After creating namespaces, verify they exist and are active: + +```bash +kubectl get namespaces +``` + +You should see your newly created OBaaS namespaces in the output with `Active` status. + +## Troubleshooting + +### Namespace Already Exists + +If you receive an error that the namespace already exists: + +```bash +kubectl get ns obaas-dev +``` + +If the namespace exists but you want to start fresh, delete it first: + +```bash +kubectl delete ns obaas-dev +``` + +:::warning Data Loss +Deleting a namespace will remove all resources within it. Ensure you have backups if needed before deleting a namespace. +::: + +### Namespace Stuck in Terminating State + +If a namespace is stuck in "Terminating" state: + +```bash +kubectl get ns obaas-dev +``` + +Check for resources preventing deletion: + +```bash +kubectl api-resources --verbs=list --namespaced -o name | \ + xargs -n 1 kubectl get --show-kind --ignore-not-found -n obaas-dev +``` diff --git a/docs-source/site/docs/setup/obaas.md b/docs-source/site/docs/setup/obaas.md index 2ec335a2a..9cffc994a 100644 --- a/docs-source/site/docs/setup/obaas.md +++ b/docs-source/site/docs/setup/obaas.md @@ -2,55 +2,97 @@ title: Prepare and Install the OBaaS Helm chart sidebar_position: 10 --- -## Prepare and Install the OBaaS Helm chart +## OBaaS Helm Chart Installation Guide -For this step, you will need the **obaas** directory in which you will see the following files: +## Overview + +This guide walks you through preparing and installing the OBaaS Helm chart in your Kubernetes cluster. + +## Prerequisites + +Navigate to the `obaas` directory containing the Helm chart files: ```bash cd obaas/ ls -Chart.yaml LICENSE README.md crds templates values.yaml ``` -You must edit the **values.yaml** file as follows: +Expected output: + +```text +Chart.yaml LICENSE README.md crds templates values.yaml +``` + +## Configuration + +### Editing values.yaml + +Before installation, you must edit the `values.yaml` file according to your environment requirements. + +#### Private Repository Configuration + +If you are using a private repository, update each `image` entry to point to your private repository instead of the public repositories. + +#### Component Selection (Optional) -- If you are using a private repository, you must update each **image** entry to point to your private repository instead of the public repositories. +Each component (e.g., apisix, kafka, coherence) has an `enabled: true` entry. To omit a component, change the setting to `false`. -- Optional. Each component listed in the file (e.g., apisix, kafka, coherence, etc.) has an **enabled: true** entry. If you want to omit a component, you must change the setting to **false**. +#### Namespace Configuration (Optional) -- (Optional) If you want to install any components in this chart into their own separate namespace, you can override the global namespace by setting a value in the **namespace** property inside the section for that component. +To install components into separate namespaces, override the global namespace by setting a value in the `namespace` property inside the component's section. -- (Optional) To use an existing Oracle database in your applications, set **database.enabled** to **true** and provide following configurations: - - If the database is an Oracle Autonomous Database in OCI and you want Oracle Database Operator to access and create **tns** and **wallet** secrets containing the connection information for the database: - - Provide **database.type** as **"ADB-S"**. - - You must provide the OCID of your ADB-S instance in the setting **database.oci_db.ocid** - - You must update the values in the **database.oci_config** section as follows: - - The **oke** setting must be **false**. Setting this to true is not supported in 2.0.0-M4. - - Supply your **tenancy**, **user ocid**, **fingerprint**, and **region**. These must match the details you provided when you created the OCI configuration secret earlier. - - If the database is not an Oracle Autonomous Database in OCI or you do not want Oracle Database Operator to create the **tns** secret containing the connection information for the database: - - Modify/Create the [Database Credentials Secret](./secrets.md#database-credentials-secret) to include the **dbhost** and **dbport** for the database instance. - - Leave **database.type** as blank. +#### Database Configuration (Optional) -**Important note**: Please pause to double check all of the values are correct. If there are any errors here, the OBaaS provisioning will fail. +To use an existing Oracle database in your applications, set `database.enabled` to `true` and configure one of the following options: -Install the Helm chart using the following command (The `--debug` flag is optional and enables verbose output from Helm). +##### Option 1: Oracle Autonomous Database (ADB-S) -- global.obaasName="obaas-dev" - Sets the OBaaS instance name. -- global.targetNamespace="obaas-dev" - Specifies the target namespace (*OPTIONAL*, only needed if you want to override the default namespace). +Use this option if your database is an Oracle Autonomous Database in OCI and you want Oracle Database Operator to access and create `tns` and `wallet` secrets. -**Note**: If you are installing multiple OBaaS instances in your cluster, each one MUST have a different release name, `obaasName` and `targetNamespace`. +Configure the following settings: + +- Set `database.type` to `"ADB-S"` +- Provide the OCID of your ADB-S instance in `database.oci_db.ocid` +- Update the `database.oci_config` section: + - Set `oke` to `false` (setting this to `true` is not supported in version 2.0.0-M4) + - Supply your `tenancy`, `user ocid`, `fingerprint`, and `region` (these must match the details provided when creating the OCI configuration secret) + +##### Option 2: Non-ADB or Manual Configuration + +Use this option if your database is not an Oracle Autonomous Database in OCI, or you do not want Oracle Database Operator to create the `tns` secret. + +Configure the following settings: + +- Modify or create the [Database Credentials Secret](./secrets.md#database-credentials-secret) to include `dbhost` and `dbport` for the database instance +- Leave `database.type` blank + +> **Important**: Double-check all values before proceeding. Incorrect values will cause the OBaaS provisioning to fail. + +## Installation + +### Single Instance Installation + +Install the Helm chart using the following command: ```bash -helm --debug install obaas --set global.obaasName="obaas-dev" --set global.targetNamespace="obaas-dev" ./ +helm --debug install obaas \ + --set global.obaasName="obaas-dev" \ + --set global.targetNamespace="obaas-dev" \ + ./ ``` +**Parameters:** + +- `global.obaasName`: Sets the OBaaS instance name +- `global.targetNamespace`: Specifies the target namespace (optional, only needed to override the default namespace) +- `--debug`: Optional flag that enables verbose output from Helm + +**Expected output:** + ```log -I0817 13:21:41.363368 5981 warnings.go:110\] "Warning: unknown field -"spec.serviceName"" -I0817 13:21:41.439521 5981 warnings.go:110\] "Warning: unknown field -"spec.serviceName"" -I0817 13:21:41.439531 5981 warnings.go:110\] "Warning: unknown field -"spec.serviceName"" +I0817 13:21:41.363368 5981 warnings.go:110] "Warning: unknown field "spec.serviceName"" +I0817 13:21:41.439521 5981 warnings.go:110] "Warning: unknown field "spec.serviceName"" +I0817 13:21:41.439531 5981 warnings.go:110] "Warning: unknown field "spec.serviceName"" NAME: obaas LAST DEPLOYED: Sun Aug 17 13:21:15 2025 NAMESPACE: default @@ -59,59 +101,92 @@ REVISION: 1 TEST SUITE: None ``` -You may see some warnings, as shown above, and they can be ignored in 2.0.0-M4. +> **Note**: You may see warnings as shown above. These can be safely ignored in version 2.0.0-M4. -If you overrode the component namespaces, you will now see several new namespaces as requested (see example below). Otherwise all of the pods will be in the **obaas-dev** namespace (or whatever name you chose): +### Multiple Instance Installation -```bash -kubectl get ns -``` +When installing multiple OBaaS instances in your cluster, each instance must have unique values for: +- Release name +- `obaasName` +- `targetNamespace` -```log -NAME STATUS AGE -admin-server Active 32s -apisix Active 32s -application Active 32s -azn-server Active 32s -cert-manager Active 33m -coherence Active 32s -conductor-server Active 32s -config-server Active 32s -default Active 107m -eureka Active 32s -external-secrets Active 33m -ingress-nginx Active 34m -kafka Active 32s -kube-node-lease Active 107m -kube-public Active 107m -kube-state-metrics Active 33m -kube-system Active 107m -metrics-server Active 33m -obaas-admin Active 32s -observability Active 22m -oracle-database-exporter Active 32s -oracle-database-operator-system Active 12m -otmm Active 32s +**Example for development instance:** + +```bash +helm --debug install obaas \ + --set global.obaasName="obaas-dev" \ + --set global.targetNamespace="obaas-dev" \ + ./ ``` -And many new pods. Note that it will take about 5 minutes for all of them to reach ready/running status: +**Example for production instance:** ```bash -kubectl get pod -A +helm --debug install obaas-prod \ + --set global.obaasName="obaas-prod" \ + --set global.targetNamespace="obaas-prod" \ + ./ ``` -**Note**: If you are installing multiple OBaaS instances in your cluster, each one MUST have a different release name, `obaasName` and `targetNamespace`. For example (The `--debug` flag is optional and enables verbose output from Helm): +> **Important**: If you install APISIX in multiple instances, you must set different host names and/or ports for each APISIX ingress. + +## Verification -For obaas-dev: +### Verify Namespaces + +Check that the namespaces have been created: ```bash -helm --debug install obaas --set global.obaasName="obaas-dev" --set global.targetNamespace="obaas-dev" ./ +kubectl get ns ``` -For obaas-prod: +**Expected output (with component namespace overrides):** + +```text +NAME STATUS AGE +admin-server Active 32s +apisix Active 32s +application Active 32s +azn-server Active 32s +cert-manager Active 33m +coherence Active 32s +conductor-server Active 32s +config-server Active 32s +default Active 107m +eureka Active 32s +external-secrets Active 33m +ingress-nginx Active 34m +kafka Active 32s +kube-node-lease Active 107m +kube-public Active 107m +kube-state-metrics Active 33m +kube-system Active 107m +metrics-server Active 33m +obaas-admin Active 32s +observability Active 22m +oracle-database-exporter Active 32s +oracle-database-operator-system Active 12m +otmm Active 32s +``` + +If you did not override component namespaces, all pods will be in the target namespace (e.g., `obaas-dev`). + +### Verify Pods + +Check the status of all pods: ```bash -helm --debug install obaas --set global.obaasName="obaas-prod" --set global.targetNamespace="obaas-prod" ./ +kubectl get pod -A ``` -**Note**: You MUST set different host names and/or ports for the APISIX ingress if you choose to install APISIX in both instances. +> **Note**: It takes approximately 5 minutes for all pods to reach ready/running status. + +## Troubleshooting + +If the installation fails, verify the following: + +1. All values in `values.yaml` are correct +1. Database credentials and connection information are accurate +1. OCI configuration (if using ADB-S) matches the secret created earlier +1. For multiple instances, ensure unique release names, `obaasName`, and `targetNamespace` values +1. For multiple APISIX instances, verify different host names and/or ports are configured diff --git a/docs-source/site/docs/setup/observability.md b/docs-source/site/docs/setup/observability.md index ff88bac67..628941267 100644 --- a/docs-source/site/docs/setup/observability.md +++ b/docs-source/site/docs/setup/observability.md @@ -4,33 +4,64 @@ sidebar_position: 8 --- ## Prepare and Install the OBaaS Observability Helm Chart -**Note**: This step is **optional**. +:::info Optional Component +This installation step is optional. The observability component provides monitoring and metrics capabilities but is not required for basic OBaaS functionality. +::: -For this step, you will need the **obaas-observability** directory in -which you will see the following files: +## Overview + +This guide provides instructions for preparing and installing the OBaaS Observability Helm chart, which enables monitoring and metrics collection for your OBaaS deployment. + +## Prerequisites + +Navigate to the `obaas-observability` directory containing the Helm chart files: ```bash cd obaas-observability/ ls -Chart.yaml LICENSE README.md admin dashboards templates values.yaml ``` -You must edit the **values.yaml** file as follows: +Expected output: + +```text +Chart.yaml LICENSE README.md admin dashboards templates values.yaml +``` + +## Configuration + +### Editing values.yaml + +Before installation, edit the `values.yaml` file according to your environment requirements. -- If you are using a private repository, you must update each **image** entry to point to your private repository instead of the public repositories. -- (Optional) If you want to install any components in this chart into their own separate namespace, you can override the global namespace by setting a value in the **namespace** property inside the section for that component. +#### Private Repository Configuration -Install the Helm chart using the following command (The `--debug` flag is optional and enables verbose output from Helm). +If you are using a private repository, update each `image` entry to point to your private repository instead of the public repositories. -- global.obaasName="obaas-dev" - Sets the OBaaS instance name. -- global.targetNamespace="obaas-dev" - Specifies the target namespace (*OPTIONAL*, only needed if you want to override the default namespace). +#### Namespace Configuration (Optional) -**Note**: If you are installing multiple OBaaS instances in your cluster, each one MUST have a different release name, `obaasName` and `targetNamespace`. +To install components into separate namespaces, override the global namespace by setting a value in the `namespace` property inside the component's section. + +## Installation + +### Single Instance Installation + +Install the Helm chart using the following command: ```bash -helm --debug install obaas-observability --set global.obaasName="obaas-dev" --set global.targetNamespace="obaas-dev" ./ +helm --debug install obaas-observability \ + --set global.obaasName="obaas-dev" \ + --set global.targetNamespace="obaas-dev" \ + ./ ``` +**Parameters:** + +- `global.obaasName`: Sets the OBaaS instance name +- `global.targetNamespace`: Specifies the target namespace (optional, only needed to override the default namespace) +- `--debug`: Optional flag that enables verbose output from Helm + +**Expected output:** + ```log NAME: obaas-observability LAST DEPLOYED: Sun Aug 17 13:00:00 2025 @@ -40,12 +71,44 @@ REVISION: 1 TEST SUITE: None ``` -When the installation has completed, you can use this command to view the installed charts: +### Multiple Instance Installation + +When installing multiple OBaaS instances in your cluster, each instance must have unique values for: + +- Release name +- `obaasName` +- `targetNamespace` + +**Example for development instance:** + +```bash +helm --debug install obaas-observability \ + --set global.obaasName="obaas-dev" \ + --set global.targetNamespace="obaas-dev" \ + ./ +``` + +**Example for production instance:** + +```bash +helm --debug install obaas-prod-observability \ + --set global.obaasName="obaas-prod" \ + --set global.targetNamespace="obaas-prod" \ + ./ +``` + +## Verification + +### View Installed Charts + +After installation completes, view the installed Helm charts: ```bash helm ls ``` +**Expected output:** + ```text NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION obaas default 1 2025-09-12 13:57:55.859836 -0500 CDT deployed OBaaS-0.0.1 2.0.0-M4 @@ -53,24 +116,33 @@ obaas-db default 1 2025-09-12 13:51:23.751199 -0500 CDT depl obaas-observability default 1 2025-09-12 13:45:43.113298 -0500 CDT deployed OBaaS-observability-0.1.0 2.0.0-M4 ``` -If you overrode the namespace, you will see a new namespace, e.g., **observability**, and the following pods. Otherwise these pods will be in the **obaas-dev** namespace (of whatever name you chose). Note that it will take 5 to 10 minutes for all of these to reach ready/running status: +### Verify Pods + +Check the pod status in your observability namespace, for example ```bash -kubectl get pods --n observability # or whatever namespace name you chose +kubectl get pods -n observability ``` -Please wait for all of the pods to be ready before continuing to the next step. +:::note Pod Startup Time +It takes approximately 5 to 10 minutes for all observability pods to reach ready/running status. Please wait for all pods to be ready before continuing to the next step. +::: -**Note**: If you are installing multiple OBaaS instances in your cluster, each one MUST have a different release name, `obaasName` and `targetNamespace`. For example (The `--debug` flag is optional and enables verbose output from Helm): +### Monitor Pod Status -For obaas-dev: +You can watch the pods as they start up: ```bash -helm --debug install obaas-observability --set global.obaasName="obaas-dev" --set global.targetNamespace="obaas-dev" ./ +kubectl get pods -n observability --watch ``` -For obaas-prod: +Press `Ctrl+C` to stop watching once all pods are running. -```bash -helm --debug install obaas-observability --set global.obaasName="obaas-prod" --set global.targetNamespace="obaas-prod" ./ -``` +## Troubleshooting + +If pods fail to start or remain in a pending state: + +1. Check pod events in your observability namespace: `kubectl describe pod -n observability` +2. Review pod logs your observability namespace: `kubectl logs -n observability` +3. Verify resource availability: `kubectl top nodes` +4. Ensure all prerequisite charts are installed and healthy diff --git a/docs-source/site/docs/setup/obtaining.md b/docs-source/site/docs/setup/obtaining.md index a17bef3b0..f0dc099b4 100644 --- a/docs-source/site/docs/setup/obtaining.md +++ b/docs-source/site/docs/setup/obtaining.md @@ -1,10 +1,16 @@ --- -title: Obtaining installation package +title: Obtaining Installation Package sidebar_position: 3 --- ## Obtaining the Installation Package -The installation package is in the [helm](http://tbd) directory which contains the following directories: +## Overview + +The OBaaS installation package contains all necessary Helm charts for deploying OBaaS components in your Kubernetes cluster. + +## Package Location + +The installation package is located in the [helm](http://tbd) directory with the following structure: ```text . @@ -15,12 +21,115 @@ The installation package is in the [helm](http://tbd) directory which contains t └── obaas-prereqs ``` -Each of these directories contains a helm chart. In this milestone release, there are four helm charts: +## Helm Charts + +The installation package includes four Helm charts, each serving a specific purpose in the OBaaS deployment: + +### OBaaS Prerequisites + +**Directory:** `obaas-prereqs` + +Contains cluster-level components shared by all OBaaS installations within a cluster. + +**Key characteristics:** + +- Installed at the cluster level +- Shared across all OBaaS instances in the cluster +- Can only be installed once per cluster + +**Components include:** + +- Cert Manager +- External Secrets Operator +- Ingress controllers +- Other foundational infrastructure + +### OBaaS Database + +**Directory:** `obaas-db` + +Contains components that manage the OBaaS database layer. + +**Key characteristics:** + +- Manages database operations and connections +- Supports Oracle Autonomous Database integration +- Includes Oracle Database Operator + +**Components include:** + +- Oracle Database Operator +- Database connection management +- Schema and credential management + +### OBaaS Observability + +**Directory:** `obaas-observability` -- **OBaaS Prerequisites** This chart contains components that are installed at the cluster level and would be shared by all OBaaS installations in a cluster. This chart can only be installed once per cluster. +Contains components for the optional observability stack. -- **OBaaS Database**. This chart contains components that manage the OBaaS Database. +**Key characteristics:** + +- Optional installation +- Based on SigNoz +- Provides monitoring and metrics capabilities + +**Components include:** + +- Metrics collection +- Logging infrastructure +- Monitoring dashboards +- Alert management + +### OBaaS Core + +**Directory:** `obaas` + +Contains the core OBaaS components and platform services. + +**Key characteristics:** + +- Main application components +- Platform services and runtime +- Service mesh and API gateway + +**Components include:** + +- Eureka (service discovery) +- Admin Server +- Configuration Server +- API Gateway (APISIX) +- Kafka messaging +- Coherence caching +- Application runtime components + +## Installation Order + +Install the Helm charts in the following sequence: + +1. [OBaaS Prerequisites](./prereq-chart.md) (once per cluster) +2. [OBaaS Observability](./observability.md) (optional) +3. [OBaaS Database](./database.md) +4. [OBaaS Core](./obaas.md) + +:::important +The prerequisites chart must be installed first and can only be installed once per cluster. All other charts depend on the components provided by the prerequisites. +::: + +## Helper Scripts + +### private_repo_helper.sh + +The `private_repo_helper.sh` script assists with configuring private container registries. + +**Usage:** + +```bash +./private_repo_helper.sh +``` -- **OBaaS Observability**. This chart contains components for the optional OBaaS observability stack (based on SigNoz). +This script helps you: -- **OBaaS**. This chart contains the remaining components of OBaaS, most notably the OBaaS Platform Services (like Eureka, Admin Server, etc.) +- Configure image pull secrets +- Update chart values to point to private repositories +- Set up registry authentication diff --git a/docs-source/site/docs/setup/prereq-chart.md b/docs-source/site/docs/setup/prereq-chart.md index 1c2b781b5..5dd49687f 100644 --- a/docs-source/site/docs/setup/prereq-chart.md +++ b/docs-source/site/docs/setup/prereq-chart.md @@ -1,30 +1,68 @@ --- -title: Prepare then install OBaaS Prerequisites Helm chart +title: Prepare and Install OBaaS Prerequisites Helm Chart sidebar_position: 7 --- -## Prepare then install OBaaS Prerequisites Helm chart +## Prepare and Install OBaaS Prerequisites Helm Chart -For this step, you will need the **obaas-prereqs** directory, which contains the following files: +## Overview + +The OBaaS Prerequisites chart contains cluster-level components that are shared across all OBaaS instances in your Kubernetes cluster. This chart must be installed once per cluster before installing any OBaaS instances. + +## Prerequisites + +Navigate to the `obaas-prereqs` directory containing the Helm chart files: ```bash cd obaas-prereqs/ ls -Chart.yaml LICENSE README.md templates values.yaml ``` -You must edit the **values.yaml** file as follows: +Expected output: + +```text +Chart.yaml LICENSE README.md templates values.yaml +``` + +## Configuration + +### Editing values.yaml + +Before installation, edit the `values.yaml` file according to your environment requirements. + +#### Private Repository Configuration + +If you are using a private repository, update each `image` entry to point to your private repository instead of the public repositories. -- If you are using a private repository, you must update each **image** entry to point to your private repository instead of the public repositories. -- Optional. Each component listed in the file (e.g., kube-state-metrics, metrics-server, cert-manager, etc.) has an **enabled: true** entry. If you want to omit a component, you must change the setting to **false**. Please note the following limitations: - - The metrics-server is required if you wish to use the Horizontal Pod Autoscaling feature. - - The cert-manager is required. +#### Component Selection (Optional) -Install the Helm chart using the following command (The `--debug` flag is optional and enables verbose output from Helm): +Each component (e.g., kube-state-metrics, metrics-server, cert-manager) has an `enabled: true` entry. To omit a component, change the setting to `false`. + +:::warning Component Dependencies +Note the following required components: + +- **cert-manager**: Required for all installations +- **metrics-server**: Required if you plan to use Horizontal Pod Autoscaling (HPA) +::: + +## Installation + +### Install the Prerequisites Chart + +Install the Helm chart using the following command: ```bash helm --debug install obaas-prereqs ./ ``` +**Installation notes:** + +- `obaas-prereqs` is the Helm release name +- The `--debug` flag is optional and enables verbose output from Helm +- This chart is shared across all OBaaS instances in the cluster +- Do NOT set `obaasName` or `targetNamespace` for this chart + +**Expected output:** + ```log NAME: obaas-prereqs LAST DEPLOYED: Sun Aug 17 12:47:51 2025 @@ -34,44 +72,62 @@ REVISION: 1 TEST SUITE: None ``` -In this command, note that **obaas-prereqs** is the name of the Helm release. Note that obaas-prereqs is shared across all instances in the cluster, so we recommend that you do NOT set the `obaasName` and `targetNamespace` for this chart/release. +:::info Shared Resources +The prerequisites chart creates cluster-level resources shared by all OBaaS instances. It should only be installed once per cluster, and we recommend NOT setting instance-specific parameters like `obaasName` or `targetNamespace`. +::: + +## Verification + +### View Installed Charts -When the installation has completed, you can use this command to view the installed charts: +After installation completes, verify the chart was installed successfully: ```bash helm ls ``` +**Expected output:** + ```text NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION obaas-prereqs default 1 2025-09-12 13:37:16.026781 -0500 CDT deployed OBaaS-Prerequisites-0.0.1 2.0.0-M4 ``` -If you overrode the individual component namespaces, you should now see the requested namespaces have been added (for example see below). Otherwise, all of the pods will be in the **obaas-dev** namespace (or whatever name you chose). +### Verify Namespaces + +Check that the component namespaces have been created: ```bash kubectl get ns ``` -```log -NAME STATUS AGE -cert-manager Active 3m37s -default Active 77m -external-secrets Active 3m37s -ingress-nginx Active 3m54s -kube-node-lease Active 77m -kube-public Active 77m -kube-state-metrics Active 3m37s -kube-system Active 77m -metrics-server Active 3m37s +**Expected output (with component namespace overrides):** + +```text +NAME STATUS AGE +cert-manager Active 3m37s +default Active 77m +external-secrets Active 3m37s +ingress-nginx Active 3m54s +kube-node-lease Active 77m +kube-public Active 77m +kube-state-metrics Active 3m37s +kube-system Active 77m +metrics-server Active 3m37s ``` -And you should see the following pods running (note that they may take a few minutes to reach running and ready status): +If you did not override component namespaces, all pods will be in the default namespace or your chosen target namespace. + +### Verify Pods + +Check that all prerequisite pods are running: ```bash -kubectl get pods --A +kubectl get pods -A ``` +**Expected pods:** + ```text NAMESPACE NAME READY STATUS RESTARTS AGE cert-manager cert-manager-7fbd576ffd-tzkmj 1/1 Running 0 45s @@ -84,23 +140,117 @@ ingress-nginx ingress-nginx-controller-j9bdk 1/1 ingress-nginx ingress-nginx-controller-splg7 1/1 Running 0 45s ingress-nginx ingress-nginx-controller-x2wpz 1/1 Running 0 45s kube-state-metrics kube-state-metrics-784bc85fd8-9fn5k 1/1 Running 0 45s -kube-system coredns-5b559d56fd-772r7 1/1 Running 0 23h -kube-system coredns-5b559d56fd-m5hx7 1/1 Running 0 23h -kube-system coredns-5b559d56fd-w85nh 1/1 Running 0 23h -kube-system csi-oci-node-6qkgt 1/1 Running 0 23h -kube-system csi-oci-node-h4cnh 1/1 Running 0 23h -kube-system csi-oci-node-qxrqc 1/1 Running 0 23h -kube-system kube-dns-autoscaler-5bbc657c97-gr45f 1/1 Running 0 23h -kube-system kube-proxy-64h2t 1/1 Running 0 23h -kube-system kube-proxy-vcvhn 1/1 Running 0 23h -kube-system kube-proxy-zlzxd 1/1 Running 0 23h -kube-system proxymux-client-52pq8 1/1 Running 0 23h -kube-system proxymux-client-95jzz 1/1 Running 0 23h -kube-system proxymux-client-s54g9 1/1 Running 0 23h -kube-system vcn-native-ip-cni-5lqxn 2/2 Running 0 23h -kube-system vcn-native-ip-cni-chb42 2/2 Running 0 23h -kube-system vcn-native-ip-cni-d7thh 2/2 Running 0 23h metrics-server metrics-server-77ff598cd8-b8nt8 1/1 Running 0 45s metrics-server metrics-server-77ff598cd8-bnnld 1/1 Running 0 45s metrics-server metrics-server-77ff598cd8-t6nx8 1/1 Running 0 45s ``` + +:::note Pod Startup Time +It may take a few minutes for all pods to reach Running and Ready status. Monitor the pods until all show `1/1` in the READY column. +::: + +### Monitor Pod Status + +Watch pods as they start up: + +```bash +kubectl get pods -A --watch +``` + +Press `Ctrl+C` to stop watching once all pods are running. + +Alternatively, check specific namespaces: + +```bash +kubectl get pods -n cert-manager +kubectl get pods -n external-secrets +kubectl get pods -n ingress-nginx +kubectl get pods -n metrics-server +kubectl get pods -n kube-state-metrics +``` + +## Installed Components + +The prerequisites chart installs the following cluster-level components: + +### Cert Manager + +**Namespace:** `cert-manager` + +Manages TLS certificates and certificate lifecycle automation. + +**Pods:** + +- `cert-manager`: Core certificate management +- `cert-manager-cainjector`: CA injection for webhooks +- `cert-manager-webhook`: Webhook for certificate validation + +### External Secrets Operator + +**Namespace:** `external-secrets` + +Synchronizes secrets from external secret management systems. + +**Pods:** + +- `external-secrets`: Core operator +- `external-secrets-cert-controller`: Certificate management +- `external-secrets-webhook`: Webhook for validation + +### Ingress NGINX + +**Namespace:** `ingress-nginx` + +Provides ingress controller for routing external traffic to services. + +**Pods:** +- `ingress-nginx-controller`: One pod per worker node (DaemonSet) + +### Metrics Server + +**Namespace:** `metrics-server` + +Collects resource metrics from Kubelets for autoscaling decisions. + +**Pods:** + +- `metrics-server`: Multiple replicas for high availability + +### Kube State Metrics + +**Namespace:** `kube-state-metrics` + +Generates metrics about Kubernetes object states. + +**Pods:** + +- `kube-state-metrics`: Metrics collection service + +## Troubleshooting + +### Pods Not Starting + +If pods fail to start or remain in pending state: + +**Check pod events:** + +```bash +kubectl describe pod -n +``` + +**Check pod logs:** + +```bash +kubectl logs -n +``` + +### Insufficient Resources + +If pods are pending due to insufficient resources: + +```bash +kubectl describe nodes +kubectl top nodes +``` + +Scale your cluster if needed to provide additional capacity. diff --git a/docs-source/site/docs/setup/prereqs.md b/docs-source/site/docs/setup/prereqs.md index 961b86efd..845460c7f 100644 --- a/docs-source/site/docs/setup/prereqs.md +++ b/docs-source/site/docs/setup/prereqs.md @@ -2,26 +2,127 @@ title: Prerequisites sidebar_position: 2 --- -## Prerequisites for Oracle Backend for Microservices and AI -To install OBaaS 2.0.0-M4, you must meet the following prerequisites: +# Prerequisites for Oracle Backend for Microservices and AI -- A CNCF-compliant Kubernetes cluster with working storage provider that provides a storage class for RWX PVs, and ingress. Version 1.33.1. At least 3 worker nodes. At least 2 OCPU and 32GB memory per worker node (this allows for ONE installation of OBaaS and some applications. As a general rule of thumb, double the number of worker nodes if you want to install TWO OBaaS instances. You may need more if you want to install additional applications). OKE "quick create/enhanced" cluster recommended. -- An Oracle Database. Must be version 19c or later. If you want to use the AI features, it must be 23ai. Oracle Autonomous Database 23ai ATP with 2 ECPU and 1TB storage with "secure access from anywhere recommended. -- If you plan to use a private image repository, the images must be copied there. OBaaS provides a helper script, `private_repo_helper.sh`, to perform this task. +## Overview -**Important note:** If your environment does not meet the prerequisites, the installation will fail. Please do not continue with installation until you have confirmed your environment meets the requirements. +Before installing OBaaS 2.0.0-M4, ensure your environment meets all prerequisites. Installing without meeting these requirements will result in deployment failures. -If you use the recommended OKE cluster, your cluster should contain the following namespaces: +:::danger Critical +If your environment does not meet the prerequisites, the installation will fail. Do not proceed with installation until you have confirmed your environment meets all requirements. +::: + +## System Requirements + +### Kubernetes Cluster + +A CNCF-compliant Kubernetes cluster with the following specifications: + +**Cluster version:** + +- Kubernetes 1.33.1 or compatible version + +**Infrastructure requirements:** + +- Minimum 3 worker nodes +- At least 2 OCPU and 32GB memory per worker node +- Working storage provider with storage class for RWX (ReadWriteMany) PVs +- Functioning ingress controller + +**Capacity planning:** + +- Base configuration supports ONE OBaaS installation plus applications +- For TWO OBaaS instances: double the number of worker nodes +- Scale worker nodes based on additional application requirements + +:::tip Recommended +Oracle Kubernetes Engine (OKE) "Quick Create/Enhanced" cluster is the recommended platform for OBaaS deployments. +::: + +### Oracle Database + +An Oracle Database instance with the following requirements: + +**Database version:** + +- Oracle Database 19c or later (minimum) +- Oracle Database 23ai (required for AI features) + +**Recommended configuration:** + +- Oracle Autonomous Database (ADB) 23ai ATP +- 2 ECPU +- 1TB storage +- Secure access from anywhere enabled + +:::info AI Features +To use OBaaS AI capabilities, you must use Oracle Database 23ai. Earlier versions do not support AI features. +::: + +### Private Image Repository (Optional) + +If using a private container image repository: + +**Requirements:** + +- All OBaaS images copied to your private registry +- Registry credentials configured in Kubernetes +- Network access from cluster to private registry + +**Helper script:** + +OBaaS provides the `private_repo_helper.sh` script to assist with copying images to your private repository. + +```bash +./private_repo_helper.sh +``` + +## Verification + +### Verify Kubernetes Cluster + +Check your Kubernetes version: + +```bash +kubectl version --short +``` + +Verify worker nodes meet requirements: + +```bash +kubectl get nodes +kubectl describe nodes | grep -A 5 "Allocated resources" +``` + +Check storage classes: + +```bash +kubectl get storageclass +``` + +Ensure you have a storage class that supports RWX (ReadWriteMany) access mode. + +Verify ingress controller: + +```bash +kubectl get ingressclass +``` + +### Verify Default Namespaces + +For a fresh OKE cluster, verify the default namespaces are present: ```bash kubectl get ns ``` -```log -NAME STATUS AGE -default Active 4m52s -kube-node-lease Active 4m52s -kube-public Active 4m52s -kube-system Active 4m52s +Expected output: + +``` +NAME STATUS AGE +default Active 4m52s +kube-node-lease Active 4m52s +kube-public Active 4m52s +kube-system Active 4m52s ``` diff --git a/docs-source/site/docs/setup/secrets.md b/docs-source/site/docs/setup/secrets.md index db0eb77f6..2186def48 100644 --- a/docs-source/site/docs/setup/secrets.md +++ b/docs-source/site/docs/setup/secrets.md @@ -169,7 +169,9 @@ If you are planning to install multiple OBaaS instances, AND you want to use dif ::: :::note -If you want to use an existing Oracle Database in your applications which is not deployed as an Oracle Autonomous Database in OCI or you do not want Oracle Database Operator to create/sync the **tns** secret containing the connection information for the database, provide the **dbhost** and **dbport** for the database instance while creating the secret as follows:. +If you want to use an existing Oracle Database in your applications which is not deployed as an Oracle Autonomous Database in OCI or you do not want Oracle Database Operator to create/sync the **tns** secret containing the connection information for the database, provide the **dbhost** and **dbport** for the database instance while creating the secret as follows: +::: + ```bash kubectl create secret generic admin-user-authn \ --from-literal=username=ADMIN \ @@ -178,8 +180,7 @@ kubectl create secret generic admin-user-authn \ --from-literal=dbname="demo1" \ --from-literal=dbhost="demodb.demohost" \ --from-literal=dbport="1522" -``` -::: +``` ### OCI Credentials Secret diff --git a/docs-source/site/docs/setup/setup.md b/docs-source/site/docs/setup/setup.md index 80f14a80c..58eb0882a 100644 --- a/docs-source/site/docs/setup/setup.md +++ b/docs-source/site/docs/setup/setup.md @@ -2,45 +2,154 @@ title: Introduction and Installation Flow sidebar_position: 1 --- -## Introduction and Installation flow +## Introduction and Installation Flow -:::important -The installation flow is **VERY** important, you should follow the steps thoroughly. Do not move on to the next step if you have issues. +:::danger Critical +The installation flow is **VERY** important. Follow each step thoroughly and in order. Do not proceed to the next step if you encounter issues. Resolve all problems before continuing. ::: -Oracle Backend for Microservices and AI 2.0.0-M4 is an **internal-only** milestone release. It is not available externally. This release represents a milestone on the path to 2.0.0 -- it is not intended to be a "finished product" so you may encounter some minor issues, and this is expected. Please give feedback to the development team if you find -issues. +## Release Information -The 2.0.0-M4 release has the following key differences from the previous production release (1.4.0): +### Version 2.0.0-M4 -- Installation is performed with Helm instead of Ansible -- You may select which components you wish to install -- You may customize which namespaces you wish to install components into -- You may install more than one OBaaS instance in a cluster with this release, but see the restrictions below +Oracle Backend for Microservices and AI 2.0.0-M4 is an **internal-only** milestone release and is not available externally. This release represents a significant milestone on the path to version 2.0.0 and serves as a preview of upcoming capabilities. -Please note the following known issues in M3: +:::info Milestone Release +This is a milestone release, not a finished product. You may encounter minor issues, which is expected. Please provide feedback to the development team if you encounter any problems. +::: + +### What's New in 2.0.0-M4 + +This release introduces several key improvements over the previous production release (1.4.0): + +**Installation Method:** + +- Helm-based installation (replacing Ansible) +- Simplified deployment process +- Better integration with Kubernetes tooling + +**Flexibility and Customization:** + +- Select which components to install +- Customize namespaces for individual components +- Support for multiple OBaaS instances per cluster (with restrictions) + +**Architecture Improvements:** + +- Modular component design +- Better resource isolation +- Enhanced multi-tenancy support + +### Known Limitations + +Please be aware of the following known issues in this release: + +**Oracle Cloud Infrastructure:** + +- Instance principal authentication for OKE worker nodes may not work reliably in this release +- This limitation affects the Oracle Database Operator's ability to manage Autonomous Database instances + +**Platform Support:** + +- Tested and validated on Oracle Kubernetes Engine (OKE) +- Not tested on Oracle Cloud Native Environment (OCNE) + +**Multi-Instance Installation:** + +- Multiple OBaaS instances per cluster are supported but with restrictions + +:::note Future Release +Version 2.0.0-M5 is planned for mid-October and will address these limitations. +::: + +## Prerequisites + +### Kubernetes Configuration + +Before beginning installation, ensure your `kubectl` context is configured correctly: + +**Set the kubeconfig:** + +```bash +export KUBECONFIG=/path/to/your/kubeconfig +``` + +**Verify the correct cluster:** + +```bash +kubectl cluster-info +kubectl get nodes +``` + +**Verify you have appropriate permissions:** + +```bash +kubectl auth can-i create namespace +kubectl auth can-i create deployment +``` + +### Private Repository Setup (If Required) + +If your environment does not have access to public container repositories, you must prepare a private repository before installation. + +**Using the Helper Script:** + +The installation package includes `private_repo_helper.sh` to assist with image management. + +## Installation Flow + +### Overview + +The installation process consists of cluster-level setup followed by per-instance installation steps. + +**Installation phases:** + +**Phase 1: Cluster-Level Setup** (once per cluster) + +1. Verify Prerequisites +2. Create Secrets +3. Create Namespaces +4. Install Prerequisites Chart + +**Phase 2: Instance Installation** (repeat for each OBaaS instance) + +1. Install Observability Chart (optional) +2. Install Database Chart +3. Install OBaaS Chart +4. Install CloudBank Sample (optional) + +## Installation Best Practices + +### Planning Your Deployment + +**Single Instance:** + +- Use descriptive namespace (e.g., `obaas-prod`, `obaas-dev`) +- Plan resource allocation based on expected workload +- Configure monitoring from the start -- Instance principal authentication for OKE worker nodes, which allows the Oracle Database Operator to manage Autonomous Database instances, may not work in this release -- This release has been tested on OKE; it has not been tested on OCNE. +**Multiple Instances:** -The next release, 2.0.0-M5, is intended to be available approximately mid-October and will address some of these limitations. +- Plan namespace strategy upfront +- Ensure sufficient cluster resources for all instances +- Consider network policies for instance isolation +- Plan for shared vs. dedicated components -**Important note:** Make sure that you have the correct kubectl config set. You can do this by exporting the `KUBECONFIG` variable and pointing to the correct config file. +### Validation at Each Step -### High Level Installation Flow +After each installation step: -To install OBaaS, you will follow this high-level flow: +- Verify all pods are running and ready +- Check logs for errors or warnings +- Test basic connectivity +- Confirm expected resources are created -- Confirm environment meets prerequisites. -- Create required secrets. -- Create the namespace(s) for the OBaaS installation(s) if you're not going to use the default namespaces for each component. -- Prepare then install the OBaaS Prerequisites Helm chart and verify (once per cluster). -- These steps would be repeated once for EACH instance of OBaaS to install: - - Optionally prepare then install the OBaaS Observability Helm chart and verify. - - Prepare then install the OBaaS Database Helm chart and verify. - - Prepare then install the OBaaS Helm chart and verify. - - Optionally install the CloudBank sample application and verify. +### Troubleshooting During Installation -**Important note**: If you want to install in an environment that does not have access to public container repositories, you must first obtain the required images and push them into your private repository. +If you encounter issues: -The script file **private_repo_helper.sh** in the installation package can be used to pull all the required images and push them into your private repository. Note that you may need to run it once while off VPN to allow it to pull the images and ignore push errors. Then run it again on VPN and ignore the pull errors (if any). +1. **Stop and diagnose** - do not proceed to the next step +2. **Check pod status and logs** - identify the failing component +3. **Review configuration** - verify values.yaml settings +4. **Consult documentation** - refer to component-specific guides +5. **Seek assistance** - contact the development team with details diff --git a/docs-source/site/docusaurus.config.ts b/docs-source/site/docusaurus.config.ts index 00b274b15..313ffb4f3 100644 --- a/docs-source/site/docusaurus.config.ts +++ b/docs-source/site/docusaurus.config.ts @@ -26,7 +26,11 @@ const config: Config = { projectName: 'microservices-datadriven', // Usually your repo name. onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', + markdown: { + hooks: { + onBrokenMarkdownLinks: 'warn', + }, + }, // Even if you don't use internationalization, you can use this field to set // useful metadata like html lang. For example, if your site is Chinese, you diff --git a/docs-source/site/package-lock.json b/docs-source/site/package-lock.json index a8ec64e0b..35ffda453 100644 --- a/docs-source/site/package-lock.json +++ b/docs-source/site/package-lock.json @@ -8,8 +8,8 @@ "name": "site", "version": "0.0.0", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/preset-classic": "3.8.1", + "@docusaurus/core": "^3.9.1", + "@docusaurus/preset-classic": "^3.9.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "prism-react-renderer": "^2.3.0", @@ -17,69 +17,126 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/tsconfig": "3.8.1", - "@docusaurus/types": "3.8.1", + "@docusaurus/module-type-aliases": "^3.9.1", + "@docusaurus/tsconfig": "^3.9.1", + "@docusaurus/types": "^3.9.1", "typescript": "~5.6.2" }, "engines": { "node": ">=18.0" } }, + "node_modules/@ai-sdk/gateway": { + "version": "1.0.41", + "resolved": "https://registry.npmjs.org/@ai-sdk/gateway/-/gateway-1.0.41.tgz", + "integrity": "sha512-9X67ATsz3tv6EZZXEBuMlF/wfAXXSvRE6kearB4wqR7qCDFS028wgsgJhxz5DArS53S2i0Mv12hjMlpiJmF/Vg==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "2.0.0", + "@ai-sdk/provider-utils": "3.0.12", + "@vercel/oidc": "3.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/provider": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-2.0.0.tgz", + "integrity": "sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==", + "license": "Apache-2.0", + "dependencies": { + "json-schema": "^0.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ai-sdk/provider-utils": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-3.0.12.tgz", + "integrity": "sha512-ZtbdvYxdMoria+2SlNarEk6Hlgyf+zzcznlD55EAl+7VZvJaSg2sqPvwArY7L6TfDEDJsnCq0fdhBSkYo0Xqdg==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "2.0.0", + "@standard-schema/spec": "^1.0.0", + "eventsource-parser": "^3.0.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/react": { + "version": "2.0.74", + "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-2.0.74.tgz", + "integrity": "sha512-IRq2hH4gevS1YXO7HXgBkJaPW1FiQQVF0tiZvEAWQr8C6NwhR5UMJSeFlrqcOXmS1DvXryN/jYFOonlM9wX1DA==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider-utils": "3.0.12", + "ai": "5.0.74", + "swr": "^2.2.5", + "throttleit": "2.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "zod": "^3.25.76 || ^4.1.8" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, "node_modules/@algolia/abtesting": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.4.0.tgz", - "integrity": "sha512-N0blWT/C0KOZ/OJ9GXBX66odJZlrYjMj3M+01y8ob1mjBFnBaBo7gOCyHBDQy60+H4pJXp3pSGlJOqJIueBH+A==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.6.1.tgz", + "integrity": "sha512-wV/gNRkzb7sI9vs1OneG129hwe3Q5zPj7zigz3Ps7M5Lpo2hSorrOnXNodHEOV+yXE/ks4Pd+G3CDFIjFTWhMQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/autocomplete-core": { - "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==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz", + "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", - "@algolia/autocomplete-shared": "1.17.9" + "@algolia/autocomplete-plugin-algolia-insights": "1.19.2", + "@algolia/autocomplete-shared": "1.19.2" } }, "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "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==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz", + "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.17.9" + "@algolia/autocomplete-shared": "1.19.2" }, "peerDependencies": { "search-insights": ">= 1 < 3" } }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "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.9" - }, - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", - "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz", + "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==", "license": "MIT", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -87,99 +144,99 @@ } }, "node_modules/@algolia/client-abtesting": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.38.0.tgz", - "integrity": "sha512-15d6zv8vtj2l9pnnp/EH7Rhq3/snCCHRz56NnX6xIUPrbJl5gCsIYXAz8C2IEkwOpoDb0r5G6ArY2gKdVMNezw==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.40.1.tgz", + "integrity": "sha512-cxKNATPY5t+Mv8XAVTI57altkaPH+DZi4uMrnexPxPHODMljhGYY+GDZyHwv9a+8CbZHcY372OkxXrDMZA4Lnw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.38.0.tgz", - "integrity": "sha512-jJIbYAhYvTG3+gEAP5Q5Dp6PFJfUR+atz5rsqm5KjAKK+faLFdHJbM2IbOo0xdyGd+SH259MzfQKLJ9mZZ27dQ==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.40.1.tgz", + "integrity": "sha512-XP008aMffJCRGAY8/70t+hyEyvqqV7YKm502VPu0+Ji30oefrTn2al7LXkITz7CK6I4eYXWRhN6NaIUi65F1OA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.38.0.tgz", - "integrity": "sha512-aMCXzVPGJTeQnVU3Sdf30TfMN2+QyWcjfPTCCHyqVVgjPipb6RnK40aISGoO+rlYjh9LunDsNVFLwv+JEIF8bQ==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.40.1.tgz", + "integrity": "sha512-gWfQuQUBtzUboJv/apVGZMoxSaB0M4Imwl1c9Ap+HpCW7V0KhjBddqF2QQt5tJZCOFsfNIgBbZDGsEPaeKUosw==", "license": "MIT", "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-insights": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.38.0.tgz", - "integrity": "sha512-4c3FbpMiJX+VcaAj0rYaQdTLS/CkrdOn4hW+5y1plPov7KC7iSHai/VBbirmHuAfW1hVPCIh1w/4erKKTKuo+Q==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.40.1.tgz", + "integrity": "sha512-RTLjST/t+lsLMouQ4zeLJq2Ss+UNkLGyNVu+yWHanx6kQ3LT5jv8UvPwyht9s7R6jCPnlSI77WnL80J32ZuyJg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.38.0.tgz", - "integrity": "sha512-FzLs6c8TBL4FSgNfnH2NL7O33ktecGiaKO4ZFG51QYORUzD5d6YwB9UBteaIYu/sgFoEdY57diYU4vyBH8R6iA==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.40.1.tgz", + "integrity": "sha512-2FEK6bUomBzEYkTKzD0iRs7Ljtjb45rKK/VSkyHqeJnG+77qx557IeSO0qVFE3SfzapNcoytTofnZum0BQ6r3Q==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.38.0.tgz", - "integrity": "sha512-7apiahlgZLvOqrh0+hAYAp/UWjqz6AfSJrCwnsoQNzgIT09dLSPIKREelkuQeUrKy38vHWWpSQE3M0zWSp/YrA==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.40.1.tgz", + "integrity": "sha512-Nju4NtxAvXjrV2hHZNLKVJLXjOlW6jAXHef/CwNzk1b2qIrCWDO589ELi5ZHH1uiWYoYyBXDQTtHmhaOVVoyXg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.38.0.tgz", - "integrity": "sha512-PTAFMJOpVtJweExEYYgdmSCC6n4V/R+ctDL3fRQy77ulZM/p+zMLIQC9c7HCQE1zqpauvVck3f2zYSejaUTtrw==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.40.1.tgz", + "integrity": "sha512-Mw6pAUF121MfngQtcUb5quZVqMC68pSYYjCRZkSITC085S3zdk+h/g7i6FxnVdbSU6OztxikSDMh1r7Z+4iPlA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" @@ -192,81 +249,81 @@ "license": "MIT" }, "node_modules/@algolia/ingestion": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.38.0.tgz", - "integrity": "sha512-qGSUGgceJHGyJLZ06bFLwVe2Tpf9KwabmoBjFvFscVmMmU5scKya6voCYd9bdX7V0Xy1qya9MGbmTm4zlLuveQ==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.40.1.tgz", + "integrity": "sha512-z+BPlhs45VURKJIxsR99NNBWpUEEqIgwt10v/fATlNxc4UlXvALdOsWzaFfe89/lbP5Bu4+mbO59nqBC87ZM/g==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.38.0.tgz", - "integrity": "sha512-VnCtAUcHirvv/dDHg9jK1Z5oo4QOC5FKDxe40x8qloru2qDcjueT34jiAsB0gRos3VWf9v4iPSYTqMIFOcADpQ==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.40.1.tgz", + "integrity": "sha512-VJMUMbO0wD8Rd2VVV/nlFtLJsOAQvjnVNGkMkspFiFhpBA7s/xJOb+fJvvqwKFUjbKTUA7DjiSi1ljSMYBasXg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.38.0.tgz", - "integrity": "sha512-fqgeU9GqxQorFUeGP4et1MyY28ccf9PCeciHwDPSbPYYiTqBItHdUIiytsNpjC5Dnc0RWtuXWCltLwSw9wN/bQ==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.40.1.tgz", + "integrity": "sha512-ehvJLadKVwTp9Scg9NfzVSlBKH34KoWOQNTaN8i1Ac64AnO6iH2apJVSP6GOxssaghZ/s8mFQsDH3QIZoluFHA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "@algolia/client-common": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.38.0.tgz", - "integrity": "sha512-nAUKbv4YQIXbpPi02AQvSPisD5FDDbT8XeYSh9HFoYP0Z3IpBLLDg7R4ahPvzd7gGsVKgEbXzRPWESXSji5yIg==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.40.1.tgz", + "integrity": "sha512-PbidVsPurUSQIr6X9/7s34mgOMdJnn0i6p+N6Ab+lsNhY5eiu+S33kZEpZwkITYBCIbhzDLOvb7xZD3gDi+USA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0" + "@algolia/client-common": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.38.0.tgz", - "integrity": "sha512-bkuAHaadC6OxJd3SVyQQnU1oJ9G/zdCqua7fwr1tJDrA/v7KzeS5np4/m6BuRUpTgVgFZHSewGnMcgj9DLBoaQ==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.40.1.tgz", + "integrity": "sha512-ThZ5j6uOZCF11fMw9IBkhigjOYdXGXQpj6h4k+T9UkZrF2RlKcPynFzDeRgaLdpYk8Yn3/MnFbwUmib7yxj5Lw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0" + "@algolia/client-common": "5.40.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.38.0.tgz", - "integrity": "sha512-yHDKZTnMPR3/4bY0CVC1/uRnnbAaJ+pctRuX7G/HflBkKOrnUBDEGtQQHzEfMz2FHZ/tbCL+Q9r6mvwTSGp8nw==", + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.40.1.tgz", + "integrity": "sha512-H1gYPojO6krWHnUXu/T44DrEun/Wl95PJzMXRcM/szstNQczSbwq6wIFJPI9nyE95tarZfUNU3rgorT+wZ6iCQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.38.0" + "@algolia/client-common": "5.40.1" }, "engines": { "node": ">= 14.0.0" @@ -3209,21 +3266,24 @@ } }, "node_modules/@docsearch/css": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", - "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.2.0.tgz", + "integrity": "sha512-65KU9Fw5fGsPPPlgIghonMcndyx1bszzrDQYLfierN+Ha29yotMHzVS94bPkZS6On9LS8dE4qmW4P/fGjtCf/g==", "license": "MIT" }, "node_modules/@docsearch/react": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", - "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.2.0.tgz", + "integrity": "sha512-zSN/KblmtBcerf7Z87yuKIHZQmxuXvYc6/m0+qnjyNu+Ir67AVOagTa1zBqcxkVUVkmBqUExdcyrdo9hbGbqTw==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-core": "1.17.9", - "@algolia/autocomplete-preset-algolia": "1.17.9", - "@docsearch/css": "3.9.0", - "algoliasearch": "^5.14.2" + "@ai-sdk/react": "^2.0.30", + "@algolia/autocomplete-core": "1.19.2", + "@docsearch/css": "4.2.0", + "ai": "^5.0.30", + "algoliasearch": "^5.28.0", + "marked": "^16.3.0", + "zod": "^4.1.8" }, "peerDependencies": { "@types/react": ">= 16.8.0 < 20.0.0", @@ -3247,9 +3307,9 @@ } }, "node_modules/@docusaurus/babel": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.8.1.tgz", - "integrity": "sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.9.1.tgz", + "integrity": "sha512-/uoi3oG+wvbVWNBRfPrzrEslOSeLxrQEyWMywK51TLDFTANqIRivzkMusudh5bdDty8fXzCYUT+tg5t697jYqg==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", @@ -3262,28 +3322,28 @@ "@babel/runtime": "^7.25.9", "@babel/runtime-corejs3": "^7.25.9", "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/utils": "3.9.1", "babel-plugin-dynamic-import-node": "^2.3.3", "fs-extra": "^11.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/bundler": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.8.1.tgz", - "integrity": "sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.9.1.tgz", + "integrity": "sha512-E1c9DgNmAz4NqbNtiJVp4UgjLtr8O01IgtXD/NDQ4PZaK8895cMiTOgb3k7mN0qX8A3lb8vqyrPJ842+yMpuUg==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.8.1", - "@docusaurus/cssnano-preset": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", + "@docusaurus/babel": "3.9.1", + "@docusaurus/cssnano-preset": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", "babel-loader": "^9.2.1", "clean-css": "^5.3.3", "copy-webpack-plugin": "^11.0.0", @@ -3304,7 +3364,7 @@ "webpackbar": "^6.0.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@docusaurus/faster": "*" @@ -3316,18 +3376,18 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.8.1.tgz", - "integrity": "sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA==", - "license": "MIT", - "dependencies": { - "@docusaurus/babel": "3.8.1", - "@docusaurus/bundler": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.9.1.tgz", + "integrity": "sha512-FWDk1LIGD5UR5Zmm9rCrXRoxZUgbwuP6FBA7rc50DVfzqDOMkeMe3NyJhOsA2dF0zBE3VbHEIMmTjKwTZJwbaA==", + "license": "MIT", + "dependencies": { + "@docusaurus/babel": "3.9.1", + "@docusaurus/bundler": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "boxen": "^6.2.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", @@ -3361,14 +3421,14 @@ "update-notifier": "^6.0.2", "webpack": "^5.95.0", "webpack-bundle-analyzer": "^4.10.2", - "webpack-dev-server": "^4.15.2", + "webpack-dev-server": "^5.2.2", "webpack-merge": "^6.0.1" }, "bin": { "docusaurus": "bin/docusaurus.mjs" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@mdx-js/react": "^3.0.0", @@ -3377,9 +3437,9 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz", - "integrity": "sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.9.1.tgz", + "integrity": "sha512-2y7+s7RWQMqBg+9ejeKwvZs7Bdw/hHIVJIodwMXbs2kr+S48AhcmAfdOh6Cwm0unJb0hJUshN0ROwRoQMwl3xg==", "license": "MIT", "dependencies": { "cssnano-preset-advanced": "^6.1.2", @@ -3388,31 +3448,31 @@ "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/logger": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.8.1.tgz", - "integrity": "sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.9.1.tgz", + "integrity": "sha512-C9iFzXwHzwvGlisE4bZx+XQE0JIqlGAYAd5LzpR7fEDgjctu7yL8bE5U4nTNywXKHURDzMt4RJK8V6+stFHVkA==", "license": "MIT", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz", - "integrity": "sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.9.1.tgz", + "integrity": "sha512-/1PY8lqry8jCt0qZddJSpc0U2sH6XC27kVJZfpA7o2TiQ3mdBQyH5AVbj/B2m682B1ounE+XjI0LdpOkAQLPoA==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -3436,7 +3496,7 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3444,12 +3504,12 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz", - "integrity": "sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.9.1.tgz", + "integrity": "sha512-YBce3GbJGGcMbJTyHcnEOMvdXqg41pa5HsrMCGA5Rm4z0h0tHS6YtEldj0mlfQRhCG7Y0VD66t2tb87Aom+11g==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.8.1", + "@docusaurus/types": "3.9.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3463,19 +3523,19 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz", - "integrity": "sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.9.1.tgz", + "integrity": "sha512-vT6kIimpJLWvW9iuWzH4u7VpTdsGlmn4yfyhq0/Kb1h4kf9uVouGsTmrD7WgtYBUG1P+TSmQzUUQa+ALBSRTig==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "cheerio": "1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", @@ -3488,7 +3548,7 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", @@ -3497,20 +3557,20 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz", - "integrity": "sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.1.tgz", + "integrity": "sha512-DyLk9BIA6I9gPIuia8XIL+XIEbNnExam6AHzRsfrEq4zJr7k/DsWW7oi4aJMepDnL7jMRhpVcdsCxdjb0/A9xg==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/module-type-aliases": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", @@ -3522,7 +3582,7 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3530,22 +3590,22 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.1.tgz", - "integrity": "sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.9.1.tgz", + "integrity": "sha512-/1wFzRnXYASI+Nv9ck9IVPIMw0O5BGQ8ZVhDzEwhkL+tl44ycvSnY6PIe6rW2HLxsw61Z3WFwAiU8+xMMtMZpg==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3553,36 +3613,36 @@ } }, "node_modules/@docusaurus/plugin-css-cascade-layers": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.1.tgz", - "integrity": "sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.9.1.tgz", + "integrity": "sha512-/QyW2gRCk/XE3ttCK/ERIgle8KJ024dBNKMu6U5SmpJvuT2il1n5jR/48Pp/9wEwut8WVml4imNm6X8JsL5A0Q==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.8.1.tgz", - "integrity": "sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.9.1.tgz", + "integrity": "sha512-qPeAuk0LccC251d7jg2MRhNI+o7niyqa924oEM/AxnZJvIpMa596aAxkRImiAqNN6+gtLE1Hkrz/RHUH2HDGsA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", "fs-extra": "^11.1.1", "react-json-view-lite": "^2.3.0", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3590,18 +3650,18 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.1.tgz", - "integrity": "sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.9.1.tgz", + "integrity": "sha512-k4Qq2HphqOrIU/CevGPdEO1yJnWUI8m0zOJsYt5NfMJwNsIn/gDD6gv/DKD+hxHndQT5pacsfBd4BWHZVNVroQ==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3609,19 +3669,19 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.1.tgz", - "integrity": "sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.9.1.tgz", + "integrity": "sha512-n9BURBiQyJKI/Ecz35IUjXYwXcgNCSq7/eA07+ZYcDiSyH2p/EjPf8q/QcZG3CyEJPZ/SzGkDHePfcVPahY4Gg==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3629,18 +3689,18 @@ } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz", - "integrity": "sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.9.1.tgz", + "integrity": "sha512-rZAQZ25ZuXaThBajxzLjXieTDUCMmBzfAA6ThElQ3o7Q+LEpOjCIrwGFau0KLY9HeG6x91+FwwsAM8zeApYDrg==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3648,23 +3708,23 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz", - "integrity": "sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.9.1.tgz", + "integrity": "sha512-k/bf5cXDxAJUYTzqatgFJwmZsLUbIgl6S8AdZMKGG2Mv2wcOHt+EQNN9qPyWZ5/9cFj+Q8f8DN+KQheBMYLong==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3672,22 +3732,22 @@ } }, "node_modules/@docusaurus/plugin-svgr": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.1.tgz", - "integrity": "sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.9.1.tgz", + "integrity": "sha512-TeZOXT2PSdTNR1OpDJMkYqFyX7MMhbd4t16hQByXksgZQCXNyw3Dio+KaDJ2Nj+LA4WkOvsk45bWgYG5MAaXSQ==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@svgr/core": "8.1.0", "@svgr/webpack": "^8.1.0", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3695,29 +3755,29 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.8.1.tgz", - "integrity": "sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/plugin-content-blog": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/plugin-content-pages": "3.8.1", - "@docusaurus/plugin-css-cascade-layers": "3.8.1", - "@docusaurus/plugin-debug": "3.8.1", - "@docusaurus/plugin-google-analytics": "3.8.1", - "@docusaurus/plugin-google-gtag": "3.8.1", - "@docusaurus/plugin-google-tag-manager": "3.8.1", - "@docusaurus/plugin-sitemap": "3.8.1", - "@docusaurus/plugin-svgr": "3.8.1", - "@docusaurus/theme-classic": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-search-algolia": "3.8.1", - "@docusaurus/types": "3.8.1" + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.9.1.tgz", + "integrity": "sha512-ZHga2xsxxsyd0dN1BpLj8S889Eu9eMBuj2suqxdw/vaaXu/FjJ8KEGbcaeo6nHPo8VQcBBnPEdkBtSDm2TfMNw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.1", + "@docusaurus/plugin-content-blog": "3.9.1", + "@docusaurus/plugin-content-docs": "3.9.1", + "@docusaurus/plugin-content-pages": "3.9.1", + "@docusaurus/plugin-css-cascade-layers": "3.9.1", + "@docusaurus/plugin-debug": "3.9.1", + "@docusaurus/plugin-google-analytics": "3.9.1", + "@docusaurus/plugin-google-gtag": "3.9.1", + "@docusaurus/plugin-google-tag-manager": "3.9.1", + "@docusaurus/plugin-sitemap": "3.9.1", + "@docusaurus/plugin-svgr": "3.9.1", + "@docusaurus/theme-classic": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/theme-search-algolia": "3.9.1", + "@docusaurus/types": "3.9.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3725,27 +3785,26 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz", - "integrity": "sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/plugin-content-blog": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/plugin-content-pages": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-translations": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.9.1.tgz", + "integrity": "sha512-LrAIu/mQ04nG6s1cssC0TMmICD8twFIIn/hJ5Pd9uIPQvtKnyAKEn12RefopAul5KfMo9kixPaqogV5jIJr26w==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/module-type-aliases": "3.9.1", + "@docusaurus/plugin-content-blog": "3.9.1", + "@docusaurus/plugin-content-docs": "3.9.1", + "@docusaurus/plugin-content-pages": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/theme-translations": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", - "copy-text-to-clipboard": "^3.2.0", "infima": "0.2.0-alpha.45", "lodash": "^4.17.21", "nprogress": "^0.2.0", @@ -3758,7 +3817,7 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3766,15 +3825,15 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.8.1.tgz", - "integrity": "sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.9.1.tgz", + "integrity": "sha512-j9adi961F+6Ps9d0jcb5BokMcbjXAAJqKkV43eo8nh4YgmDj7KUNDX4EnOh/MjTQeO06oPY5cxp3yUXdW/8Ggw==", "license": "MIT", "dependencies": { - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/module-type-aliases": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3785,7 +3844,7 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", @@ -3794,21 +3853,21 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz", - "integrity": "sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ==", - "license": "MIT", - "dependencies": { - "@docsearch/react": "^3.9.0", - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-translations": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "algoliasearch": "^5.17.1", - "algoliasearch-helper": "^3.22.6", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.1.tgz", + "integrity": "sha512-WjM28bzlgfT6nHlEJemkwyGVpvGsZWPireV/w+wZ1Uo64xCZ8lNOb4xwQRukDaLSed3oPBN0gSnu06l5VuCXHg==", + "license": "MIT", + "dependencies": { + "@docsearch/react": "^3.9.0 || ^4.1.0", + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/plugin-content-docs": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/theme-translations": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", + "algoliasearch": "^5.37.0", + "algoliasearch-helper": "^3.26.0", "clsx": "^2.0.0", "eta": "^2.2.0", "fs-extra": "^11.1.1", @@ -3817,7 +3876,7 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3825,33 +3884,34 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz", - "integrity": "sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.9.1.tgz", + "integrity": "sha512-mUQd49BSGKTiM6vP9+JFgRJL28lMIN3PUvXjF3rzuOHMByUZUBNwCt26Z23GkKiSIOrRkjKoaBNTipR/MHdYSQ==", "license": "MIT", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/tsconfig": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.8.1.tgz", - "integrity": "sha512-XBWCcqhRHhkhfolnSolNL+N7gj3HVE3CoZVqnVjfsMzCoOsuQw2iCLxVVHtO+rePUUfouVZHURDgmqIySsF66A==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.9.1.tgz", + "integrity": "sha512-stdzM1dNDgRO0OvxeznXlE3N1igUoeHPNJjiKqyffLizgpVgNXJBAWeG6fuoYiCH4udGUBqy2dyM+1+kG2/UPQ==", "dev": true, "license": "MIT" }, "node_modules/@docusaurus/types": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.8.1.tgz", - "integrity": "sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.9.1.tgz", + "integrity": "sha512-ElekJ29sk39s5LTEZMByY1c2oH9FMtw7KbWFU3BtuQ1TytfIK39HhUivDEJvm5KCLyEnnfUZlvSNDXeyk0vzAA==", "license": "MIT", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", + "@types/mdast": "^4.0.2", "@types/react": "*", "commander": "^5.1.0", "joi": "^17.9.2", @@ -3880,14 +3940,14 @@ } }, "node_modules/@docusaurus/utils": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.8.1.tgz", - "integrity": "sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.9.1.tgz", + "integrity": "sha512-YAL4yhhWLl9DXuf5MVig260a6INz4MehrBGFU/CZu8yXmRiYEuQvRFWh9ZsjfAOyaG7za1MNmBVZ4VVAi/CiJA==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-common": "3.8.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils-common": "3.9.1", "escape-string-regexp": "^4.0.0", "execa": "5.1.1", "file-loader": "^6.2.0", @@ -3908,31 +3968,31 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/utils-common": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.8.1.tgz", - "integrity": "sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.9.1.tgz", + "integrity": "sha512-4M1u5Q8Zn2CYL2TJ864M51FV4YlxyGyfC3x+7CLuR6xsyTVNBNU4QMcPgsTHRS9J2+X6Lq7MyH6hiWXyi/sXUQ==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.8.1", + "@docusaurus/types": "3.9.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz", - "integrity": "sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.9.1.tgz", + "integrity": "sha512-5bzab5si3E1udrlZuVGR17857Lfwe8iFPoy5AvMP9PXqDfoyIKT7gDQgAmxdRDMurgHaJlyhXEHHdzDKkOxxZQ==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", @@ -3940,7 +4000,7 @@ "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@hapi/hoek": { @@ -4042,6 +4102,120 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", @@ -4137,6 +4311,15 @@ "node": ">= 8" } }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -4234,6 +4417,12 @@ "micromark-util-symbol": "^1.0.1" } }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -4607,21 +4796,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz", - "integrity": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "version": "4.19.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", + "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -4813,9 +4990,9 @@ } }, "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", "license": "MIT" }, "node_modules/@types/sax": { @@ -4828,12 +5005,11 @@ } }, "node_modules/@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.0.tgz", + "integrity": "sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==", "license": "MIT", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -4847,14 +5023,24 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.9.tgz", + "integrity": "sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==", "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", - "@types/send": "*" + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, "node_modules/@types/sockjs": { @@ -4902,6 +5088,15 @@ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "license": "ISC" }, + "node_modules/@vercel/oidc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@vercel/oidc/-/oidc-3.0.2.tgz", + "integrity": "sha512-JekxQ0RApo4gS4un/iMGsIL1/k4KUBe3HmnGcDvzHuFBdQdudEJgTqcsJC7y6Ul4Yw5CeykgvQbX2XeEJd0+DA==", + "license": "Apache-2.0", + "engines": { + "node": ">= 20" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -5170,6 +5365,24 @@ "node": ">=8" } }, + "node_modules/ai": { + "version": "5.0.74", + "resolved": "https://registry.npmjs.org/ai/-/ai-5.0.74.tgz", + "integrity": "sha512-QbYNq7gFDa79GZ4PXZuWxJQdOF9aXUfWtrLxQ9CXGl4RRuKkRC1Nmag4p2oNEX3lPU0rzN4VH25h4AUbTopSfw==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/gateway": "1.0.41", + "@ai-sdk/provider": "2.0.0", + "@ai-sdk/provider-utils": "3.0.12", + "@opentelemetry/api": "1.9.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, "node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", @@ -5216,25 +5429,25 @@ } }, "node_modules/algoliasearch": { - "version": "5.38.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.38.0.tgz", - "integrity": "sha512-8VJKIzheeI9cjuVJhU1hYEVetOTe7LvA+CujAI7yqvYsPtZfVEvv1pg9AeFNtHBg/ZoSLGU5LPijhcY5l3Ea9g==", - "license": "MIT", - "dependencies": { - "@algolia/abtesting": "1.4.0", - "@algolia/client-abtesting": "5.38.0", - "@algolia/client-analytics": "5.38.0", - "@algolia/client-common": "5.38.0", - "@algolia/client-insights": "5.38.0", - "@algolia/client-personalization": "5.38.0", - "@algolia/client-query-suggestions": "5.38.0", - "@algolia/client-search": "5.38.0", - "@algolia/ingestion": "1.38.0", - "@algolia/monitoring": "1.38.0", - "@algolia/recommend": "5.38.0", - "@algolia/requester-browser-xhr": "5.38.0", - "@algolia/requester-fetch": "5.38.0", - "@algolia/requester-node-http": "5.38.0" + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.40.1.tgz", + "integrity": "sha512-iUNxcXUNg9085TJx0HJLjqtDE0r1RZ0GOGrt8KNQqQT5ugu8lZsHuMUYW/e0lHhq6xBvmktU9Bw4CXP9VQeKrg==", + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.6.1", + "@algolia/client-abtesting": "5.40.1", + "@algolia/client-analytics": "5.40.1", + "@algolia/client-common": "5.40.1", + "@algolia/client-insights": "5.40.1", + "@algolia/client-personalization": "5.40.1", + "@algolia/client-query-suggestions": "5.40.1", + "@algolia/client-search": "5.40.1", + "@algolia/ingestion": "1.40.1", + "@algolia/monitoring": "1.40.1", + "@algolia/recommend": "5.40.1", + "@algolia/requester-browser-xhr": "5.40.1", + "@algolia/requester-fetch": "5.40.1", + "@algolia/requester-node-http": "5.40.1" }, "engines": { "node": ">= 14.0.0" @@ -5521,9 +5734,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.7.tgz", - "integrity": "sha512-bxxN2M3a4d1CRoQC//IqsR5XrLh0IJ8TCv2x6Y9N0nckNz/rTjZB3//GGscZziZOxmjP55rzxg/ze7usFI9FqQ==", + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.17.tgz", + "integrity": "sha512-j5zJcx6golJYTG6c05LUZ3Z8Gi+M62zRT/ycz4Xq4iCOdpcxwg7ngEYD4KA0eWZC7U17qh/Smq8bYbACJ0ipBA==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -5665,9 +5878,9 @@ } }, "node_modules/browserslist": { - "version": "4.26.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", - "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", "funding": [ { "type": "opencollective", @@ -5684,9 +5897,9 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.8.3", - "caniuse-lite": "^1.0.30001741", - "electron-to-chromium": "^1.5.218", + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", "node-releases": "^2.0.21", "update-browserslist-db": "^1.1.3" }, @@ -5703,6 +5916,21 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -5830,9 +6058,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001745", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001745.tgz", - "integrity": "sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==", + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", "funding": [ { "type": "opencollective", @@ -6345,18 +6573,6 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "license": "MIT" }, - "node_modules/copy-text-to-clipboard": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz", - "integrity": "sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/copy-webpack-plugin": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", @@ -6436,12 +6652,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.45.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.1.tgz", - "integrity": "sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz", + "integrity": "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==", "license": "MIT", "dependencies": { - "browserslist": "^4.25.3" + "browserslist": "^4.26.3" }, "funding": { "type": "opencollective", @@ -6449,9 +6665,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.45.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.45.1.tgz", - "integrity": "sha512-OHnWFKgTUshEU8MK+lOs1H8kC8GkTi9Z1tvNkxrCcw9wl3MJIO7q2ld77wjWn4/xuGrVu2X+nME1iIIPBSdyEQ==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.46.0.tgz", + "integrity": "sha512-NMCW30bHNofuhwLhYPt66OLOKTMbOhgTTatKVbaQC3KRHpTCiRIBYvtshr+NBYSnBxwAFhjW/RfJ0XbIjS16rw==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -7031,16 +7247,32 @@ "node": ">=0.10.0" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "license": "MIT", "dependencies": { - "execa": "^5.0.0" + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" }, "engines": { - "node": ">= 10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defer-to-connect": { @@ -7314,9 +7546,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.224", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.224.tgz", - "integrity": "sha512-kWAoUu/bwzvnhpdZSIc6KUyvkI1rbRXMT0Eq8pKReyOyaPZcctMli+EgvcN1PAvwVc7Tdo4Fxi2PsLNDU05mdg==", + "version": "1.5.237", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz", + "integrity": "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -7716,6 +7948,15 @@ "node": ">=0.8.x" } }, + "node_modules/eventsource-parser": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -8196,18 +8437,6 @@ "node": ">=14.14" } }, - "node_modules/fs-monkey": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", - "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", - "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==", - "license": "ISC" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -8301,27 +8530,6 @@ "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", "license": "ISC" }, - "node_modules/glob": { - "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", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -8334,6 +8542,22 @@ "node": ">= 6" } }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -8797,22 +9021,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/html-entities": { - "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", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -9058,6 +9266,15 @@ "node": ">=10.17.0" } }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -9155,17 +9372,6 @@ "node": ">=12" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "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" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -9348,6 +9554,39 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -9364,6 +9603,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-network-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", + "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-npm": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.1.0.tgz", @@ -9607,6 +9858,12 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -9852,6 +10109,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/marked": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.0.tgz", + "integrity": "sha512-CTPAcRBq57cn3R8n3hwc2REddc28hjR7RzDXQ+lXLmMJYqn20BaI2cGw6QjgZGIgVfp2Wdfw4aMzgNteQ6qJgQ==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -10279,15 +10548,21 @@ } }, "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "license": "Unlicense", + "version": "4.49.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.49.0.tgz", + "integrity": "sha512-L9uC9vGuc4xFybbdOpRLoOAOq1YEBBsocCs5NVW32DfU+CZWWIn3OVF+lB8Gp4ttBVSMazwrTrjv8ussX/e3VQ==", + "license": "Apache-2.0", "dependencies": { - "fs-monkey": "^1.0.4" + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" }, - "engines": { - "node": ">= 4.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" } }, "node_modules/merge-descriptors": { @@ -12528,15 +12803,6 @@ "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -12658,16 +12924,20 @@ } }, "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", "license": "MIT", "dependencies": { - "@types/retry": "0.12.0", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" }, "engines": { - "node": ">=8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-timeout": { @@ -12836,15 +13106,6 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -15318,22 +15579,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rtlcss": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", @@ -15352,6 +15597,18 @@ "node": ">=12.0.0" } }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -16037,9 +16294,9 @@ } }, "node_modules/std-env": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", "license": "MIT" }, "node_modules/string_decoder": { @@ -16166,18 +16423,18 @@ } }, "node_modules/style-to-js": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz", - "integrity": "sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.18.tgz", + "integrity": "sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==", "license": "MIT", "dependencies": { - "style-to-object": "1.0.9" + "style-to-object": "1.0.11" } }, "node_modules/style-to-object": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.9.tgz", - "integrity": "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.11.tgz", + "integrity": "sha512-5A560JmXr7wDyGLK12Nq/EYS38VkGlglVzkis1JEdbGWSnbQIEhZzTJhzURXN5/8WwwFCs/f/VVcmkTppbXLow==", "license": "MIT", "dependencies": { "inline-style-parser": "0.2.4" @@ -16263,6 +16520,19 @@ "node": ">= 10" } }, + "node_modules/swr": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.6.tgz", + "integrity": "sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/tapable": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", @@ -16363,6 +16633,34 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "license": "MIT" }, + "node_modules/thingies": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", + "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", + "license": "MIT", + "engines": { + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/throttleit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz", + "integrity": "sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -16420,6 +16718,22 @@ "node": ">=6" } }, + "node_modules/tree-dump": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -16605,9 +16919,9 @@ } }, "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" @@ -16672,9 +16986,9 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -16913,6 +17227,15 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -17125,44 +17448,50 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", "license": "MIT", "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } } }, "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==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "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==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "^1.54.0" }, "engines": { "node": ">= 0.6" @@ -17178,54 +17507,52 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", + "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", + "express": "^4.21.2", "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "webpack": { @@ -17236,6 +17563,36 @@ } } }, + "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webpack-dev-server/node_modules/ws": { "version": "8.18.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", @@ -17488,12 +17845,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "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==", - "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", @@ -17527,6 +17878,36 @@ } } }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/xdg-basedir": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", @@ -17569,6 +17950,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zod": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", + "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/docs-source/site/package.json b/docs-source/site/package.json index fd5026977..90b26c8cc 100644 --- a/docs-source/site/package.json +++ b/docs-source/site/package.json @@ -15,8 +15,8 @@ "typecheck": "tsc" }, "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/preset-classic": "3.8.1", + "@docusaurus/core": "^3.9.1", + "@docusaurus/preset-classic": "^3.9.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "prism-react-renderer": "^2.3.0", @@ -24,9 +24,9 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/tsconfig": "3.8.1", - "@docusaurus/types": "3.8.1", + "@docusaurus/module-type-aliases": "^3.9.1", + "@docusaurus/tsconfig": "^3.9.1", + "@docusaurus/types": "^3.9.1", "typescript": "~5.6.2" }, "browserslist": {