From ede7f32cc0212206a2cda92928432d8a2153eb86 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Thu, 18 Jul 2024 11:25:52 -0700 Subject: [PATCH 01/22] docs: DOC-1279 --- static/packs-data/packs_information.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 6a1c7ff7b5..0aac29ac9c 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -1,4 +1,24 @@ [ + { + "name": "amazon-linux-eks", + "description": "The Amazon EKS optimized Amazon Linux AMI is built on top of Amazon Linux 2 (AL2) and Amazon Linux 2023 (AL2023). This image is configured to serve as the base image for Amazon EKS nodes." + }, + { + "name": "ambassador", + "description": "Ambassador is a Kubernetes-native API gateway built on the Envoy Proxy. Ambassador simplifies the process of exposing, securing, and managing traffic to services in Kubernetes clusters, reducing challenges to implement complex networking scenarios in cloud-native environments." + }, + { + "name": "antrea", + "description": "Antrea is a Kubernetes networking solution intended to be Kubernetes native. It operates at Layer 3/4 to provide networking and security services for a Kubernetes cluster, leveraging Open vSwitch as the networking data plane." + }, + { + "name": "appdynamics-collector", + "description": "AppDynamics Collector is a component within the AppDynamics platform that gathers and processes telemetry data from applications, databases, or other monitored systems, and sends this data to the AppDynamics backend for analysis and visualization." + }, + { + "name": "appdynamics-operator", + "description": "AppDynamics Operator is a Kubernetes-native component designed to manage and automate the deployment and configuration of AppDynamics monitoring agents within Kubernetes environments." + }, { "name": "centos", "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open source communities to build upon. Spectro Cloudprovides CentOS as a development framework for its users." From 884b113e620cdf4d305a751fa4099047b4d19287 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Thu, 18 Jul 2024 11:39:34 -0700 Subject: [PATCH 02/22] chore: updated antrea --- docs/docs-content/integrations/antrea-cni.md | 132 ------------------- docs/docs-content/integrations/antrea.md | 63 +++++++++ static/packs-data/packs_information.json | 4 + 3 files changed, 67 insertions(+), 132 deletions(-) delete mode 100644 docs/docs-content/integrations/antrea-cni.md create mode 100644 docs/docs-content/integrations/antrea.md diff --git a/docs/docs-content/integrations/antrea-cni.md b/docs/docs-content/integrations/antrea-cni.md deleted file mode 100644 index 24004e2c2f..0000000000 --- a/docs/docs-content/integrations/antrea-cni.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -sidebar_label: "Antrea CNI" -title: "Antrea CNI" -description: "Antrea CNI network pack for Palette Kubernetes Clusters" -type: "integration" -category: ["network", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/antrea/blobs/sha256:3c5704caf6652c63374282cbf413f8e73a77c4efbc49f375c19c73f8e2ec4148?type=image.webp" -tags: ["packs", "antrea", "cni", "network"] ---- - -Palette supports Antrea controller network interface (CNI) for VMware Kubernetes clusters. Antrea CNI enables each pod -to have exclusive IP addresses from the subnet with direct accessibility. - -Antrea leverages [Open vSwitch](https://www.openvswitch.org/) to implement pod networking and security features. Open -vSwitch enables Antrea to implement Kubernetes network policies efficiently. - -## Supported Versions - -**1.9.x** - -## Prerequisites - -- Enable the integrated NodeIPAM controller in the Antrea manifest: `NodeIPAM:enable`.
- -- When deploying a cluster using Palette, use the `podCIDR` parameter in the Pack section of the Kubernetes manifest. - The classless inter-domain routing (CIDR) IP specified in the Kubernetes manifest always takes precedence. - -
- -- When deploying a cluster using `kubeadm init` to use Antrea CIDRs, you would specify the `--pod-network-cidr ` - option and provide the IP address with the CIDR. For example: - -
- - `--pod-network-cidr=10.244.0.0/16` - -
- -:::warning - -The CIDR IP specified in Palette using the `podCIDR` parameter in the Kubernetes manifest always takes precedence. - -If you wish to use Antrea CIDRs, the `podCIDR` and `serviceCIDR` parameters must be blank in the Kubernetes manifest. - -To avoid overlapping your pod network with any of your host networks, you should think of a suitable CIDR block to -specify if you deploy a cluster using `kubeadm init` or as a replacement in your network plugin's YAML. - -::: - -
- -- The Open vSwitch kernel module must be present on every Kubernetes node. - -## Parameters - -The Antrea CNI pack supports the following parameters. - -| Parameter | Description | Required (Y/N) | -| -------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------- | -| nodeIPAM:enable | Enables the integrated NodeIPAM controller in the Antrea manifest. The default is `false`. | Y | -| clusterCIDRs | CIDR ranges for pods in the cluster. The CIDRs can be either IPv4 or IPv6. You can specify up to one CIDR for each IP family. | N | -| serviceCIDR | IPv4 CIDR ranges reserved for Services. | N | -| serviceCIDRv6 | IPv6 CIDR ranges reserved for Services. | N | -| nodeCIDRMaskSizeIPv4 | Mask size for IPv4 Node CIDR in IPv4 or dual-stack cluster. | N | -| nodeCIDRMaskSizeIPv6 | Mask size for IPv6 Node CIDR in IPv6 or dual-stack cluster. | N | -| NodeIPAM | The feature toggle for `antrea-controller`. The default is `false`. If you use CIDR ranges, set this to `true`. | N | -| ServiceExternalIP | The feature toggle for `antrea-agent` and `antrea-controller`. If you use the LoadBalancer service, set this to `true`. | N | - -## Usage - -Kubernetes network policies are supported by default. - -Antrea supports LoadBalancer services. Typically, implementing LoadBalancer services requires an external load balancer -that is implemented by the Kubernetes cloud provider. - -Antrea provides two options for supporting LoadBalancer services without using an external load balancer: - -
- -- Using Antrea’s built-in external IP management for Services of type LoadBalancer. - -- Leveraging MetalLB. - -For detailed information, refer to Antrea’s -[Service of type LoadBalancer](https://antrea.io/docs/v1.9.0/docs/service-loadbalancer) documentation. - -To learn more about using MetalLB, review -[Using MetalLB with Antrea](https://antrea.io/docs/v1.9.0/docs/service-loadbalancer/#using-metallb-with-antrea). - -
- -# Troubleshooting - -If routing problems occur or some hosts cannot communicate outside their subnet, this indicates overlapping IP addresses -or conflicting CIDR IPs. - -Ensure you have provided a non-overlapping IP address for your pod network in Palette's Kubernetes manifest using the -`podCIDR` parameter. The CIDR IP specified with the `podCIDR` parameter in the Kubernetes manifest always takes -precedence. - -If you wish to use Antrea CIDRs and have deployed a cluster using Palette, ensure that you have done the following: - -- Removed any value for `podCIDR` and `serviceCIDR` in the Kubernetes manifest. -- Provided a non-overlapping IP address for your pod network. - -
- -## Terraform - -You can reference the Antrea CNI pack in Terraform with a data resource. - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "antrea" { - name = "antrea" - version = "1.9.0" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - -## References - -- [Antrea Service of type LoadBalancer](https://antrea.io/docs/v1.9.0/docs/service-loadbalancer) -- [MetalLB](https://metallb.universe.tf) -- [Antrea](https://antrea.io/) -- [Antrea IPAM Capabilities](https://antrea.io/docs/v1.6.1/docs/antrea-ipam/) -- [Using MetalLB with Antrea](https://antrea.io/docs/v1.9.0/docs/service-loadbalancer/#using-metallb-with-antrea) diff --git a/docs/docs-content/integrations/antrea.md b/docs/docs-content/integrations/antrea.md new file mode 100644 index 0000000000..c2a7d189ab --- /dev/null +++ b/docs/docs-content/integrations/antrea.md @@ -0,0 +1,63 @@ +--- +sidebar_label: "Antrea" +title: "Antrea" +description: "Antrea CNI network pack for Palette Kubernetes Clusters" +type: "integration" +category: ["network", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/antrea/blobs/sha256:3c5704caf6652c63374282cbf413f8e73a77c4efbc49f375c19c73f8e2ec4148?type=image.webp" +tags: ["packs", "antrea", "cni", "network"] +--- + +Palette supports Antrea controller network interface (CNI) for VMware Kubernetes clusters. Antrea CNI enables each pod +to have exclusive IP addresses from the subnet with direct accessibility. + +Antrea leverages [Open vSwitch](https://www.openvswitch.org/) to implement pod networking and security features. Open +vSwitch enables Antrea to implement Kubernetes network policies efficiently. + +## Supported Versions + + + + + + + +## Troubleshooting + +If routing problems occur or some hosts cannot communicate outside their subnet, this indicates overlapping IP addresses +or conflicting CIDR IPs. + +Ensure you have provided a non-overlapping IP address for your pod network in Palette's Kubernetes manifest using the +`podCIDR` parameter. The CIDR IP specified with the `podCIDR` parameter in the Kubernetes manifest always takes +precedence. + +If you wish to use Antrea CIDRs and have deployed a cluster using Palette, ensure that you have done the following: + +- Removed any value for `podCIDR` and `serviceCIDR` in the Kubernetes manifest. +- Provided a non-overlapping IP address for your pod network. + +## Terraform + +You can reference the Antrea CNI pack in Terraform with a data resource. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "antrea" { + name = "antrea" + version = "1.9.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` + +## References + +- [Antrea Service of type LoadBalancer](https://antrea.io/docs/v1.9.0/docs/service-loadbalancer) +- [MetalLB](https://metallb.universe.tf) +- [Antrea](https://antrea.io/) +- [Antrea IPAM Capabilities](https://antrea.io/docs/v1.6.1/docs/antrea-ipam/) +- [Using MetalLB with Antrea](https://antrea.io/docs/v1.9.0/docs/service-loadbalancer/#using-metallb-with-antrea) diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 0aac29ac9c..079921a6ba 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -19,6 +19,10 @@ "name": "appdynamics-operator", "description": "AppDynamics Operator is a Kubernetes-native component designed to manage and automate the deployment and configuration of AppDynamics monitoring agents within Kubernetes environments." }, + { + "name": "argo-rollouts", + "description": "Argo Rollouts is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes." + }, { "name": "centos", "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open source communities to build upon. Spectro Cloudprovides CentOS as a development framework for its users." From d4eae600b5fca48910a03114f855e087cb7fb330 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Thu, 18 Jul 2024 12:45:20 -0700 Subject: [PATCH 03/22] chore: fixed test issue --- .prettierignore | 2 +- jest.config.js | 2 +- .../IconMapper/dynamicFontAwesomeImports.js | 51 ------------------- .../IconMapper/dynamicFontAwesomeImports.ts | 51 +++++++++++++++++++ src/components/Technologies/Technologies.tsx | 6 ++- 5 files changed, 58 insertions(+), 54 deletions(-) delete mode 100644 src/components/IconMapper/dynamicFontAwesomeImports.js create mode 100644 src/components/IconMapper/dynamicFontAwesomeImports.ts diff --git a/.prettierignore b/.prettierignore index c4f6caeef6..0226eded6f 100644 --- a/.prettierignore +++ b/.prettierignore @@ -11,4 +11,4 @@ docs/api-content/**/*.json # Troublesome files tsconfig.json -src/components/IconMapper/dynamicFontAwesomeImports.js \ No newline at end of file +src/components/IconMapper/dynamicFontAwesomeImports.ts \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index b32519fcf4..14462d9e61 100644 --- a/jest.config.js +++ b/jest.config.js @@ -4,7 +4,7 @@ module.exports = { preset: "ts-jest", testEnvironment: "jsdom", moduleNameMapper: { - ".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": `identity-obj-proxy`, + ".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2|svg)$": `identity-obj-proxy`, }, testPathIgnorePatterns: [`node_modules`, `\\.cache`, `.*/build`, `visuals`], testEnvironment: `jsdom`, diff --git a/src/components/IconMapper/dynamicFontAwesomeImports.js b/src/components/IconMapper/dynamicFontAwesomeImports.js deleted file mode 100644 index a98f03e718..0000000000 --- a/src/components/IconMapper/dynamicFontAwesomeImports.js +++ /dev/null @@ -1,51 +0,0 @@ -import { faCubes } from '@fortawesome/free-solid-svg-icons'; -import { faTerminal } from '@fortawesome/free-solid-svg-icons'; -import { faPersonWalkingLuggage } from '@fortawesome/free-solid-svg-icons'; -import { faObjectGroup } from '@fortawesome/free-solid-svg-icons'; -import { faEnvelopeOpenText } from '@fortawesome/free-solid-svg-icons'; -import { faDatabase } from '@fortawesome/free-solid-svg-icons'; -import { faHdd } from '@fortawesome/free-solid-svg-icons'; -import { faCloudArrowDown } from '@fortawesome/free-solid-svg-icons'; -import { faNetworkWired } from '@fortawesome/free-solid-svg-icons'; -import { faServer } from '@fortawesome/free-solid-svg-icons'; -import { faUsers } from '@fortawesome/free-solid-svg-icons'; -import { faWarehouse } from '@fortawesome/free-solid-svg-icons'; -import { faFlagCheckered } from '@fortawesome/free-solid-svg-icons'; -import { faPalette } from '@fortawesome/free-solid-svg-icons'; -import { faBook } from '@fortawesome/free-solid-svg-icons'; -import { faBookmark } from '@fortawesome/free-solid-svg-icons'; -import { faGavel } from '@fortawesome/free-solid-svg-icons'; -import { faTowerObservation } from '@fortawesome/free-solid-svg-icons'; -import { faLock } from '@fortawesome/free-solid-svg-icons'; -import { faGears } from '@fortawesome/free-solid-svg-icons'; -import { faScrewdriverWrench } from '@fortawesome/free-solid-svg-icons'; -import { faEyeSlash } from '@fortawesome/free-solid-svg-icons'; -import { faShield } from '@fortawesome/free-solid-svg-icons'; -import { faMicrochip } from '@fortawesome/free-solid-svg-icons'; - -export const fontAwesomeIcons = { - "cubes": faCubes, - "terminal": faTerminal, - "person-walking-luggage": faPersonWalkingLuggage, - "object-group": faObjectGroup, - "envelope-open-text": faEnvelopeOpenText, - "database": faDatabase, - "hdd": faHdd, - "cloud-arrow-down": faCloudArrowDown, - "network-wired": faNetworkWired, - "server": faServer, - "users": faUsers, - "warehouse": faWarehouse, - "flag-checkered": faFlagCheckered, - "palette": faPalette, - "book": faBook, - "bookmark": faBookmark, - "gavel": faGavel, - "tower-observation": faTowerObservation, - "lock": faLock, - "gears": faGears, - "screwdriver-wrench": faScrewdriverWrench, - "eye-slash": faEyeSlash, - "shield": faShield, - "microchip": faMicrochip -}; \ No newline at end of file diff --git a/src/components/IconMapper/dynamicFontAwesomeImports.ts b/src/components/IconMapper/dynamicFontAwesomeImports.ts new file mode 100644 index 0000000000..a8be8760e0 --- /dev/null +++ b/src/components/IconMapper/dynamicFontAwesomeImports.ts @@ -0,0 +1,51 @@ +import { faCubes } from "@fortawesome/free-solid-svg-icons"; +import { faTerminal } from "@fortawesome/free-solid-svg-icons"; +import { faPersonWalkingLuggage } from "@fortawesome/free-solid-svg-icons"; +import { faObjectGroup } from "@fortawesome/free-solid-svg-icons"; +import { faEnvelopeOpenText } from "@fortawesome/free-solid-svg-icons"; +import { faDatabase } from "@fortawesome/free-solid-svg-icons"; +import { faHdd } from "@fortawesome/free-solid-svg-icons"; +import { faCloudArrowDown } from "@fortawesome/free-solid-svg-icons"; +import { faNetworkWired } from "@fortawesome/free-solid-svg-icons"; +import { faServer } from "@fortawesome/free-solid-svg-icons"; +import { faUsers } from "@fortawesome/free-solid-svg-icons"; +import { faWarehouse } from "@fortawesome/free-solid-svg-icons"; +import { faFlagCheckered } from "@fortawesome/free-solid-svg-icons"; +import { faPalette } from "@fortawesome/free-solid-svg-icons"; +import { faBook } from "@fortawesome/free-solid-svg-icons"; +import { faBookmark } from "@fortawesome/free-solid-svg-icons"; +import { faGavel } from "@fortawesome/free-solid-svg-icons"; +import { faTowerObservation } from "@fortawesome/free-solid-svg-icons"; +import { faLock } from "@fortawesome/free-solid-svg-icons"; +import { faGears } from "@fortawesome/free-solid-svg-icons"; +import { faScrewdriverWrench } from "@fortawesome/free-solid-svg-icons"; +import { faEyeSlash } from "@fortawesome/free-solid-svg-icons"; +import { faShield } from "@fortawesome/free-solid-svg-icons"; +import { faMicrochip } from "@fortawesome/free-solid-svg-icons"; + +export const fontAwesomeIcons = { + cubes: faCubes, + terminal: faTerminal, + "person-walking-luggage": faPersonWalkingLuggage, + "object-group": faObjectGroup, + "envelope-open-text": faEnvelopeOpenText, + database: faDatabase, + hdd: faHdd, + "cloud-arrow-down": faCloudArrowDown, + "network-wired": faNetworkWired, + server: faServer, + users: faUsers, + warehouse: faWarehouse, + "flag-checkered": faFlagCheckered, + palette: faPalette, + book: faBook, + bookmark: faBookmark, + gavel: faGavel, + "tower-observation": faTowerObservation, + lock: faLock, + gears: faGears, + "screwdriver-wrench": faScrewdriverWrench, + "eye-slash": faEyeSlash, + shield: faShield, + microchip: faMicrochip, +}; diff --git a/src/components/Technologies/Technologies.tsx b/src/components/Technologies/Technologies.tsx index 04c72a1bd2..ce4bd62303 100644 --- a/src/components/Technologies/Technologies.tsx +++ b/src/components/Technologies/Technologies.tsx @@ -111,7 +111,11 @@ export default function Technologies({ data, repositories }: TechnologiesProps) const sortedCategoriesMap = new Map( [...categoriesMap.entries()].sort(([key1], [key2]) => { - return packTypeNames[key1].localeCompare(packTypeNames[key2]); + const name1 = packTypeNames[key1]; + const name2 = packTypeNames[key2]; + if (!name1) return 1; + if (!name2) return -1; + return name1.localeCompare(name2); }) ); From e2ae152b9f8ae6cb904ff1351e06cbb022345faa Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Thu, 18 Jul 2024 13:30:53 -0700 Subject: [PATCH 04/22] docs: updated EFS --- .../{aws-efs.md => csi-aws-efs.md} | 373 +++++++++++++----- .../IconMapper/dynamicFontAwesomeImports.js | 51 +++ static/packs-data/packs_information.json | 16 + 3 files changed, 349 insertions(+), 91 deletions(-) rename docs/docs-content/integrations/{aws-efs.md => csi-aws-efs.md} (53%) create mode 100644 src/components/IconMapper/dynamicFontAwesomeImports.js diff --git a/docs/docs-content/integrations/aws-efs.md b/docs/docs-content/integrations/csi-aws-efs.md similarity index 53% rename from docs/docs-content/integrations/aws-efs.md rename to docs/docs-content/integrations/csi-aws-efs.md index 79489d789f..3ff190fb62 100644 --- a/docs/docs-content/integrations/aws-efs.md +++ b/docs/docs-content/integrations/csi-aws-efs.md @@ -10,69 +10,97 @@ logoUrl: "https://registry.dev.spectrocloud.com/v1/csi-aws-efs/blobs/sha256:5d1e tags: ["packs", "aws-efs", "storage"] --- -You can access information from an Amazon Elastic File System (Amazon EFS) volume within a specific region, no matter -which availability zone it's in. The cluster can be distributed across availability zones instead of having it in one -location and replicating it multiple times. +## Versions Supported -Palette handles setting up the AWS EFS as a volume with ease when adding the PersistentVolume storage container. Palette -will dynamically provision the AWS EFS storage layer for the worker node. + + -## Versions Supported +### Policy Information - +You must create a policy that allows you to use EFS from your IAM account. You can use the following JSON to create the +policy. - +```yaml +{ + "Version": "2012-10-17", + "Statement": + [ + { + "Effect": "Allow", + "Action": ["elasticfilesystem:DescribeAccessPoints", "elasticfilesystem:DescribeFileSystems"], + "Resource": "*", + }, + { + "Effect": "Allow", + "Action": ["elasticfilesystem:CreateAccessPoint"], + "Resource": "*", + "Condition": { "StringLike": { "aws:RequestTag/efs.csi.aws.com/cluster": "true" } }, + }, + { + "Effect": "Allow", + "Action": "elasticfilesystem:DeleteAccessPoint", + "Resource": "*", + "Condition": { "StringEquals": { "aws:ResourceTag/efs.csi.aws.com/cluster": "true" } }, + }, + ], +} +``` -## Prerequisites +### Storage Class -- Create the Identity and Access Management (IAM) role that allows the driver to manage AWS EFS access points. The - [Introducing Amazon EFS CSI dynamic provisioning](https://aws.amazon.com/blogs/containers/introducing-efs-csi-dynamic-provisioning/) - blog provides information on `EFSCSIControllerIAMPolicy`. +Palette creates storage classes named _spectro-storage-class_. You can view a list of storage classes using this kubectl +command: -- An AWS EFS file system is available. Check out the guide - [Create your Amazon EFS file system](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) - if you need additional guidance. +```bash +kubectl get storageclass +``` -- Create your EKS cluster using static provisioning. Static provisioning requires you to create a virtual private cloud - (VPC), subnets, route tables, internet gateway and NAT gateways in the AWS console. +### PersistentVolumeClaim - You can use the same VPC or a different one for EFS: +A PersistentVolumeClaim (PVC) is a request made by a pod for a certain amount of storage from the cluster. It acts as a +link between the pod and the storage resource, allowing the pod to use the storage. You can learn details about a PVC, +as shown in the following output, when you use the `kubectl describe pvc` command. - - Using the same VPC for EFS ensures EFS is reachable from your EKS cluster. We recommend using the same VPC because - it doesn't require peering. +```bash +kubectl describe pvc my-efs-volume +``` - - If you use a different VPC for EFS, you need to peer the VPC with the VPC on which the EKS cluster is - running.

+```shell hideClipboard +Name: efs +Namespace: default +StorageClass: aws-efs +Status: Pending -- The security group associated with your EFS file system must have an inbound rule that allows Network File System - (NFS) traffic (port 2049) from the CIDR for your cluster's VPC. +Volume: -## Parameters +Labels: -The table lists commonly used parameters you can configure when adding this pack. +Annotations: kubectl.kubernetes.io/last-applied-configuration: +{"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{"volume.beta.kubernetes.io/ +storage-class":"aws-efs"},"name":"..."} -| Parameter | Description | Default | -| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | -| storageClassName | AWS Volume type to be used. | spectro-storage-class | -| isDefaultClass | Toggle for Default class. | true | -| fileSystemId | The file system under which access points are created. Create the file system prior to this setup. This is a required field and needs to be set to a pre-created AWS EFS volume. Other values can use the default setting. | Set this to an AWS EFS volume you have already created. | -| provisioningMode | Type of volume provisioned by AWS EFS. For now, this is the only access point supported. | efs-ap | -| directoryPerms | Directory permissions for Access Point root directory creation. | 700 | -| gidRangeStart | Starting range of the Portable Operating System Interface (POSIX) group Id to be applied for access point root directory creation (optional). | 1000 | -| gidRangeEnd | End range of the POSIX group Id (optional). | 2000 | -| basePath | Path under which access points for dynamic provisioning is created. If this parameter is not specified, access points are created under the root directory of the file system. | `/base_efs` | +volume.beta.kubernetes.io/storage-class: aws-efs -## Usage +Finalizers: [kubernetes.io/pvc-protection] -There are two ways to add AWS EFS to Palette: +Capacity: -- Add EFS as a base CSI layer in a cluster profile. -- Add EFS as an Add-on layer, which will create a new storage class using the AWS EFS file system. +Access Modes: + +Events: +| Type | Reason | Age | From | Message | +| ------- | ------------------ | ------------------ | --------------------------- | ------------------------ | +| Warning | ProvisioningFailed | 43s (x12 over 11m) | persistentvolume-controller | no volume plugin matched | +Mounted By: +``` + +
+ ### Policy Information You must create a policy that allows you to use EFS from your IAM account. You can use the following JSON to create the -policy.

+policy. ```yaml { @@ -103,7 +131,7 @@ policy.

### Storage Class Palette creates storage classes named _spectro-storage-class_. You can view a list of storage classes using this kubectl -command:
+command: ```bash kubectl get storageclass @@ -113,20 +141,98 @@ kubectl get storageclass A PersistentVolumeClaim (PVC) is a request made by a pod for a certain amount of storage from the cluster. It acts as a link between the pod and the storage resource, allowing the pod to use the storage. You can learn details about a PVC, -as shown in the following output, when you use the `kubectl describe pvc` command.
+as shown in the following output, when you use the `kubectl describe pvc` command. ```bash kubectl describe pvc my-efs-volume ``` +```shell hideClipboard +Name: efs +Namespace: default +StorageClass: aws-efs +Status: Pending + +Volume: + +Labels: + +Annotations: kubectl.kubernetes.io/last-applied-configuration: +{"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{"volume.beta.kubernetes.io/ +storage-class":"aws-efs"},"name":"..."} + +volume.beta.kubernetes.io/storage-class: aws-efs + +Finalizers: [kubernetes.io/pvc-protection] + +Capacity: + +Access Modes: + +Events: +| Type | Reason | Age | From | Message | +| ------- | ------------------ | ------------------ | --------------------------- | ------------------------ | +| Warning | ProvisioningFailed | 43s (x12 over 11m) | persistentvolume-controller | no volume plugin matched | +Mounted By: +``` + +
+ + +### Policy Information + +You must create a policy that allows you to use EFS from your IAM account. You can use the following JSON to create the +policy. + ```yaml +{ + "Version": "2012-10-17", + "Statement": + [ + { + "Effect": "Allow", + "Action": ["elasticfilesystem:DescribeAccessPoints", "elasticfilesystem:DescribeFileSystems"], + "Resource": "*", + }, + { + "Effect": "Allow", + "Action": ["elasticfilesystem:CreateAccessPoint"], + "Resource": "*", + "Condition": { "StringLike": { "aws:RequestTag/efs.csi.aws.com/cluster": "true" } }, + }, + { + "Effect": "Allow", + "Action": "elasticfilesystem:DeleteAccessPoint", + "Resource": "*", + "Condition": { "StringEquals": { "aws:ResourceTag/efs.csi.aws.com/cluster": "true" } }, + }, + ], +} +``` -Name: efs +### Storage Class -Namespace: default +Palette creates storage classes named _spectro-storage-class_. You can view a list of storage classes using this kubectl +command: -StorageClass: aws-efs +```bash +kubectl get storageclass +``` + +### PersistentVolumeClaim + +A PersistentVolumeClaim (PVC) is a request made by a pod for a certain amount of storage from the cluster. It acts as a +link between the pod and the storage resource, allowing the pod to use the storage. You can learn details about a PVC, +as shown in the following output, when you use the `kubectl describe pvc` command. +```bash +kubectl describe pvc my-efs-volume +``` + +```shell hideClipboard +Name: efs +Namespace: default +StorageClass: aws-efs Status: Pending Volume: @@ -150,7 +256,89 @@ Events: | ------- | ------------------ | ------------------ | --------------------------- | ------------------------ | | Warning | ProvisioningFailed | 43s (x12 over 11m) | persistentvolume-controller | no volume plugin matched | Mounted By: +``` + + + + + +### Policy Information + +You must create a policy that allows you to use EFS from your IAM account. You can use the following JSON to create the +policy. + +```yaml +{ + "Version": "2012-10-17", + "Statement": + [ + { + "Effect": "Allow", + "Action": ["elasticfilesystem:DescribeAccessPoints", "elasticfilesystem:DescribeFileSystems"], + "Resource": "*", + }, + { + "Effect": "Allow", + "Action": ["elasticfilesystem:CreateAccessPoint"], + "Resource": "*", + "Condition": { "StringLike": { "aws:RequestTag/efs.csi.aws.com/cluster": "true" } }, + }, + { + "Effect": "Allow", + "Action": "elasticfilesystem:DeleteAccessPoint", + "Resource": "*", + "Condition": { "StringEquals": { "aws:ResourceTag/efs.csi.aws.com/cluster": "true" } }, + }, + ], +} +``` + +### Storage Class + +Palette creates storage classes named _spectro-storage-class_. You can view a list of storage classes using this kubectl +command: + +```bash +kubectl get storageclass +``` + +### PersistentVolumeClaim +A PersistentVolumeClaim (PVC) is a request made by a pod for a certain amount of storage from the cluster. It acts as a +link between the pod and the storage resource, allowing the pod to use the storage. You can learn details about a PVC, +as shown in the following output, when you use the `kubectl describe pvc` command. + +```bash +kubectl describe pvc my-efs-volume +``` + +```shell hideClipboard +Name: efs +Namespace: default +StorageClass: aws-efs +Status: Pending + +Volume: + +Labels: + +Annotations: kubectl.kubernetes.io/last-applied-configuration: +{"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{"volume.beta.kubernetes.io/ +storage-class":"aws-efs"},"name":"..."} + +volume.beta.kubernetes.io/storage-class: aws-efs + +Finalizers: [kubernetes.io/pvc-protection] + +Capacity: + +Access Modes: + +Events: +| Type | Reason | Age | From | Message | +| ------- | ------------------ | ------------------ | --------------------------- | ------------------------ | +| Warning | ProvisioningFailed | 43s (x12 over 11m) | persistentvolume-controller | no volume plugin matched | +Mounted By: ``` @@ -295,48 +483,52 @@ Mounted By: ## Troubleshooting Some basic troubleshooting steps you can take if you receive errors in your pods when mounting an Amazon EFS volume in -your Amazon EKS cluster are to verify you have the following:
+your Amazon EKS cluster are to verify you have the following: -- An Amazon EFS file system created with a mount target in each of the worker node subnets. -- A valid EFS storage class definition using the efs.csi.aws.com provisioner. -- A valid PersistentVolumeClaim (PVC) definition and PersistentVolume definition. This isn't needed if you're using +If you encounter some issues when mounting an Amazon EFS volume in your Amazon EKS cluster, start by reviewing the items +below: + +- Ensure you have an Amazon EFS file system created with a mount target in each of the worker node subnets. +- A valid EFS storage class definition is created and using the `efs.csi.aws.com` provisioner. +- A valid PersistentVolumeClaim (PVC) definition and PersistentVolume definition. This is not necessary if you are using dynamic provisioning. -- The Amazon EFS CSI driver installed in the cluster. +- The Amazon EFS CSI driver is installed in the cluster. + +### Common Issues The following list provides more specific details to help you troubleshoot issues when mounting an Amazon EFS volume. -CSI driver pod logs are also available to determine the cause of the mount failures. If the volume is failing to mount, -the efs-plugin logs are available.
-- **Mount Targets:** Verify the mount targets are configured correctly. Be sure to create the EFS mount targets in each - Availability Zone where the EKS worker nodes are running. +:::tip -- **Allow NFS Traffic:** Verify the security group associated with your EFS file system and worker nodes allows NFS - traffic. +The CSI driver pod logs are also available to help you determine the cause of the mount failures. If the volume is +failing to mount, use `efs-plugin` logs to help you debug. Use the following command to view the logs. - - The security group that's associated with your EFS file system must have an inbound rule that allows NFS traffic - (port 2049) from the CIDR for your cluster's VPC. +```shell +kubectl logs --namespace kube-system --label app=efs-csi-node --containe efs-plugin +``` - - The security group that's associated with your worker nodes where the pods are failing to mount the EFS volume must - have an outbound rule that allows NFS traffic (port 2049) to the EFS file system. +::: -- **Subdirectories:** If you're mounting the pod to a subdirectory, verify the subdirectory is created in your EFS file - system. When you add sub paths in persistent volumes, the EFS CSI driver doesn't create the subdirectory path in the - EFS file system as part of the mount operation. Subdirectories must be present before you start the mount operation. +- **Mount Targets:** Verify the mount targets are configured correctly. Be sure to create the EFS mount targets in each + Availability Zone where the EKS worker nodes are running. -- **DNS server:** Confirm the cluster's Virtual Private Cloud (VPC) uses the Amazon DNS server. To verify the DNS - server, log in to the worker node and issue the following command, replacing `region` with your AWS Region: +- **Allow NFS Traffic:** Verify the security group associated with your EFS file system and worker nodes allows NFS + traffic. The security group that's associated with your EFS file system must have an inbound rule that allows NFS + traffic (port 2049) from the CIDR for your cluster's VPC. The security group that's associated with your worker nodes + where the pods are failing to mount the EFS volume must have an outbound rule that allows NFS traffic (port 2049) to + the EFS file system. -
+- **Subdirectories:** If you are mounting the pod to a subdirectory, verify the subdirectory is created in your EFS file + system. When you add sub paths in persistent volumes, the EFS CSI driver does not create the subdirectory path in the + EFS file system as part of the mount operation. Subdirectories must be present before you start the mount operation. - ```bash - nslookup fs-4fxxxxxx.efs.region.amazonaws.com - - ``` +- **DNS server:** Confirm the cluster's Virtual Private Cloud (VPC) uses the Amazon DNS server. -- **Permissions:** Verify you have "iam" mount options in the persistent volume definition when using a restrictive file - system policy. In some cases, the EFS file system policy is configured to restrict mount permissions to specific IAM - roles. In this case, the EFS mount helper in the EFS CSI driver requires the `-o iam` mount option during the mount - operation. Include the **spec.mountOptions** property:

+- **Permissions:** Verify you have `iam` mount options in the Persistent Volume (PV) definition when using a restrictive + file system policy. In some cases, the EFS file system policy is configured to restrict mount permissions to specific + IAM roles. In this case, the EFS mount helper in the EFS CSI driver requires the `-o iam` mount option during the + mount operation. Include the **spec.mountOptions** property in the Persistent Volume (PV) definition to specify the + mount options. ```bash spec: @@ -345,38 +537,37 @@ the efs-plugin logs are available.
``` - **IAM role:** Verify the Amazon EFS CSI driver controller service account associates with the correct IAM role and the - IAM role has the required permissions. - - Run the following command:
+ IAM role has the required permissions. Use the following command to view the service account annotation. ```bash - kubectl describe sa efs-csi-controller-sa -namespace kube-system + kubectl describe sa efs-csi-controller-sa --namespace kube-system ``` - You should see this annotation: + The output should look similar to the following: ```bash - eks\.amazonaws\.com/role-arn"="arn:aws:iam::111122223333:role/AmazonEKS_EFS_CSI_Driver_Policy + eks.amazonaws.com/role-arn"="arn:aws:iam::111122223333:role/AmazonEKS_EFS_CSI_Driver_Policy ``` -- **Driver Pods:** Verify the EFS CSI driver pods are running. Issue the following command to display a list of - controller pods and node pods running in your cluster: +- **Driver Pods:** Verify the EFS CSI driver pods are active. Issue the following command to display a list of + controller pods and node pods active in your cluster. ```bash - kubectl get all -label app.kubernetes.io/name=aws-efs-csi-driver -namespace kube-system + kubectl get all --label app.kubernetes.io/name=aws-efs-csi-driver --namespace kube-system ``` -- **File system won't mount:** Verify the EFS mount operation from the EC2 worker node where the pod is failing to mount - the file system. Log in to the Amazon EKS worker node where the pod is scheduled. Then, use the EFS mount helper to - try to manually mount the EFS file system to the worker node. You can run the following command to test: +- **File System Not Mounting:** Verify the EFS mount operation from the EC2 worker node where the pod is failing to + mount the file system. Log in to the Amazon EKS worker node where the pod is scheduled. Then, use the EFS mount helper + to try to manually mount the EFS file system to the worker node. Use the following command to mount the EFS file + system. ```bash sudo mount -types -efs -options tls file-system-dns-name efs-mount-point/ ``` -You can find more information in Amazon's -[Troubleshoot Amazon EFS](https://aws.amazon.com/premiumsupport/knowledge-center/eks-troubleshoot-efs-volume-mount-issues/) -guide. +Check out the +[Amazon EFS](https://aws.amazon.com/premiumsupport/knowledge-center/eks-troubleshoot-efs-volume-mount-issues/) +troubleshooting guide for more information. ## Terraform @@ -389,7 +580,7 @@ data "spectrocloud_registry" "public_registry" { data "spectrocloud_pack_simple" "csi-aws-efs" { name = "aws-efs" - version = "1.4.0" + version = "1.7.0" type = "helm" registry_uid = data.spectrocloud_registry.public_registry.id } diff --git a/src/components/IconMapper/dynamicFontAwesomeImports.js b/src/components/IconMapper/dynamicFontAwesomeImports.js new file mode 100644 index 0000000000..a98f03e718 --- /dev/null +++ b/src/components/IconMapper/dynamicFontAwesomeImports.js @@ -0,0 +1,51 @@ +import { faCubes } from '@fortawesome/free-solid-svg-icons'; +import { faTerminal } from '@fortawesome/free-solid-svg-icons'; +import { faPersonWalkingLuggage } from '@fortawesome/free-solid-svg-icons'; +import { faObjectGroup } from '@fortawesome/free-solid-svg-icons'; +import { faEnvelopeOpenText } from '@fortawesome/free-solid-svg-icons'; +import { faDatabase } from '@fortawesome/free-solid-svg-icons'; +import { faHdd } from '@fortawesome/free-solid-svg-icons'; +import { faCloudArrowDown } from '@fortawesome/free-solid-svg-icons'; +import { faNetworkWired } from '@fortawesome/free-solid-svg-icons'; +import { faServer } from '@fortawesome/free-solid-svg-icons'; +import { faUsers } from '@fortawesome/free-solid-svg-icons'; +import { faWarehouse } from '@fortawesome/free-solid-svg-icons'; +import { faFlagCheckered } from '@fortawesome/free-solid-svg-icons'; +import { faPalette } from '@fortawesome/free-solid-svg-icons'; +import { faBook } from '@fortawesome/free-solid-svg-icons'; +import { faBookmark } from '@fortawesome/free-solid-svg-icons'; +import { faGavel } from '@fortawesome/free-solid-svg-icons'; +import { faTowerObservation } from '@fortawesome/free-solid-svg-icons'; +import { faLock } from '@fortawesome/free-solid-svg-icons'; +import { faGears } from '@fortawesome/free-solid-svg-icons'; +import { faScrewdriverWrench } from '@fortawesome/free-solid-svg-icons'; +import { faEyeSlash } from '@fortawesome/free-solid-svg-icons'; +import { faShield } from '@fortawesome/free-solid-svg-icons'; +import { faMicrochip } from '@fortawesome/free-solid-svg-icons'; + +export const fontAwesomeIcons = { + "cubes": faCubes, + "terminal": faTerminal, + "person-walking-luggage": faPersonWalkingLuggage, + "object-group": faObjectGroup, + "envelope-open-text": faEnvelopeOpenText, + "database": faDatabase, + "hdd": faHdd, + "cloud-arrow-down": faCloudArrowDown, + "network-wired": faNetworkWired, + "server": faServer, + "users": faUsers, + "warehouse": faWarehouse, + "flag-checkered": faFlagCheckered, + "palette": faPalette, + "book": faBook, + "bookmark": faBookmark, + "gavel": faGavel, + "tower-observation": faTowerObservation, + "lock": faLock, + "gears": faGears, + "screwdriver-wrench": faScrewdriverWrench, + "eye-slash": faEyeSlash, + "shield": faShield, + "microchip": faMicrochip +}; \ No newline at end of file diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 079921a6ba..09bf0dbd0f 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -23,6 +23,22 @@ "name": "argo-rollouts", "description": "Argo Rollouts is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes." }, + { + "name": "avi", + "description": "AVI AKO is a Kubernetes operator which works as an ingress controller and performs Avi-specific functions in a Kubernetes environment with the Avi Controller. AKO is deployed as a pod in the cluster and translates the required Kubernetes objects to Avi objects and automates the implementation of ingresses/routes/services on the Service Engines (SE) via the Avi Controller." + }, + { + "name": "avi-ako", + "description": "AVI AKO is a Kubernetes operator which works as an ingress controller and performs Avi-specific functions in a Kubernetes environment with the Avi Controller. AKO is deployed as a pod in the cluster and translates the required Kubernetes objects to Avi objects and automates the implementation of ingresses/routes/services on the Service Engines (SE) via the Avi Controller." + }, + { + "name": "aws-alb", + "description": "AWS Load Balancer Controller is a controller to help manage Elastic Load Balancers for a Kubernetes cluster. AWS Load Balancer Controller satisfies Kubernetes Ingress resources by provisioning Application Load Balancers. It also satisfies Kubernetes Service resources by provisioning Network Load Balancers." + }, + { + "name": "csi-aws-efs", + "description": "The Amazon Elastic File System Container Storage Interface (CSI) Driver implements the CSI specification for container orchestrators to manage the lifecycle of Amazon EFS file systems. Amazon EFS CSI driver supports dynamic provisioning and static provisioning. " + }, { "name": "centos", "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open source communities to build upon. Spectro Cloudprovides CentOS as a development framework for its users." From db1c3d477f7b2a24a8812b400dc55070dcfdbd14 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Thu, 18 Jul 2024 13:49:24 -0700 Subject: [PATCH 05/22] docs: updated Calico --- docs/docs-content/integrations/calico.md | 264 ------------------ docs/docs-content/integrations/cni-calico.md | 214 ++++++++++++++ .../release-notes/known-issues.md | 2 +- static/packs-data/packs_information.json | 4 + 4 files changed, 219 insertions(+), 265 deletions(-) delete mode 100644 docs/docs-content/integrations/calico.md create mode 100644 docs/docs-content/integrations/cni-calico.md diff --git a/docs/docs-content/integrations/calico.md b/docs/docs-content/integrations/calico.md deleted file mode 100644 index 3ec0a4370c..0000000000 --- a/docs/docs-content/integrations/calico.md +++ /dev/null @@ -1,264 +0,0 @@ ---- -sidebar_label: "Calico" -title: "Calico" -description: "Reference documentation for the Calico pack in Palette" -hide_table_of_contents: true -type: "integration" -category: ["network", "amd64", "fips"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/cni-calico/blobs/sha256:9a08103ccd797857a81b6ce55fa4f84a48bcb2bddfc7a4ff27878819c87e1e30?type=image.webp" -tags: ["packs", "calico", "network"] ---- - -Palette Network Pack(s) helps provision resources for setting up Cluster networking in Kubernetes. Design goals for the -Kubernetes network model can be found -[here](https://kubernetes.io/docs/concepts/cluster-administration/networking/#the-kubernetes-network-model). - -[Project Calico](http://docs.projectcalico.org/) is an open-source container networking provider and network policy -engine. - -Calico provides highly scalable networking and network policy solution for connecting Kubernetes pods based on the same -IP networking principles as the internet, for both Linux (open source) and Windows (proprietary - available from -[Tigera](https://www.tigera.io/essentials/)). Calico can be deployed without encapsulation or overlays to provide -high-performance, high-scale data center networking. Calico also provides a fine-grained, intent-based network security -policy for Kubernetes pods via its distributed firewall. - -Calico manifest used for networking does the following: - -- Installs the `calico/node` container on each host using a DaemonSet. -- Installs the Calico CNI binaries and network config on each host using a DaemonSet. -- Runs `calico/kube-controllers` as a deployment. -- The `calico-etcd-secrets` secret, which optionally allows for providing etcd TLS assets. -- The `calico-config` ConfigMap, which contains parameters for configuring the install. - -:::warning - -Limitations: AWS, VMWare supports IP-in-IP encapsulation type. Azure supports VXLAN encapsulation type. - -::: - -## Versions Supported - - - - - -### Prerequisites - -- You have created a bind mount for the `/var/lib/calico` folder on the Edge host. For more information, refer to - [Create Bind Mounts](#create-bind-mounts-for-edge-deployments). - -### Parameters - -| Name | Supported Values | Default value | Description | -| ------------------------ | ----------------------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| calico.encapsulationType | `CALICO_IPV4POOL_IPIP`, `CALICO_IPV4POOL_VXLAN` | `CALICO_IPV4POOL_IPIP` - AWS, VMware clouds | The encapsulation type to be used for networking (depends on the cloud) | -| | | `CALICO_IPV4POOL_VXLAN` - Azure cloud | | -| calico.encapsulationMode | `Always, CrossSubnet, Never` | Always | The mode to use the IPv4 POOL created at start up | -| calico.calicoNetworkCIDR | CIDR range | `192.168.0.0/16` | CIDR range to be assigned for Pods. This range should match the `podCIDR` range specified in the Kubernetes layer | - -### Usage - -#### Create Bind Mounts for Edge Deployments - -In Edge deployments, Calico requires a bind mount on the host machine. Without the bind mount, it's possible for the -Calico pods to be stuck in the init state. Use the following example to create a bind mount from `/var/lib/calico` on -the Edge host. When you build an installer ISO with the `bind_mounts` block, the folders specified in the block will be -mounted. For more information about building the installer ISO, refer to -[Build Installer ISO](../clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso.md). - -```yaml -#cloud-config -stylus: - site: - debug: true - insecureSkipVerify: false - paletteEndpoint: api.console.spectrocloud.com - name: edge-appliance-1 - caCerts: - - | - -----BEGIN CERTIFICATE----- - - -----END CERTIFICATE----- - -install: - bind_mounts: - - /var/lib/calico -``` - - - - -### Prerequisites - -- You have created a bind mount for the `/var/lib/calico` folder on the Edge host. For more information, refer to - [Create Bind Mounts](#create-bind-mounts-for-edge-deployments). - -### Parameters - -| Name | Supported Values | Default value | Description | -| ------------------------ | ----------------------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| calico.encapsulationType | `CALICO_IPV4POOL_IPIP`, `CALICO_IPV4POOL_VXLAN` | `CALICO_IPV4POOL_IPIP` - AWS, VMware clouds | The encapsulation type to be used for networking (depends on the cloud) | -| | | `CALICO_IPV4POOL_VXLAN` - Azure cloud | | -| calico.encapsulationMode | `Always, CrossSubnet, Never` | Always | The mode to use the IPv4 POOL created at start up | -| calico.calicoNetworkCIDR | CIDR range | `192.168.0.0/16` | CIDR range to be assigned for Pods. This range should match the `podCIDR` range specified in the Kubernetes layer | - -### Usage - -#### Create Bind Mounts for Edge Deployments - -In Edge deployments, Calico requires a bind mount on the host machine. Without the bind mount, it's possible for the -Calico pods to be stuck in the init state. Use the following example to create a bind mount from `/var/lib/calico` on -the Edge host. When you build an installer ISO with the `bind_mounts` block, the folders specified in the block will be -mounted. For more information about building the installer ISO, refer to -[Build Installer ISO](../clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso.md). - -```yaml -#cloud-config -stylus: - site: - debug: true - insecureSkipVerify: false - paletteEndpoint: api.console.spectrocloud.com - name: edge-appliance-1 - caCerts: - - | - -----BEGIN CERTIFICATE----- - - -----END CERTIFICATE----- - -install: - bind_mounts: - - /var/lib/calico -``` - - - - - -### Prerequisites - -- You have created a bind mount for the `/var/lib/calico` folder on the Edge host. For more information, refer to - [Create Bind Mounts](#create-bind-mounts-for-edge-deployments). - -### Parameters - -| Name | Supported Values | Default value | Description | -| ------------------------ | ----------------------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| calico.encapsulationType | `CALICO_IPV4POOL_IPIP`, `CALICO_IPV4POOL_VXLAN` | `CALICO_IPV4POOL_IPIP` - AWS, VMware clouds | The encapsulation type to be used for networking (depends on the cloud) | -| | | `CALICO_IPV4POOL_VXLAN` - Azure cloud | | -| calico.encapsulationMode | `Always, CrossSubnet, Never` | Always | The mode to use the IPv4 POOL created at start up | -| calico.calicoNetworkCIDR | CIDR range | `192.168.0.0/16` | CIDR range to be assigned for Pods. This range should match the `podCIDR` range specified in the Kubernetes layer | - -### Usage - -#### Create Bind Mounts for Edge Deployments - -In Edge deployments, Calico requires a bind mount on the host machine. Without the bind mount, it's possible for the -Calico pods to be stuck in the init state. Use the following example to create a bind mount from `/var/lib/calico` on -the Edge host. When you build an installer ISO with the `bind_mounts` block, the folders specified in the block will be -mounted. For more information about building the installer ISO, refer to -[Build Installer ISO](../clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso.md). - -```yaml -#cloud-config -stylus: - site: - debug: true - insecureSkipVerify: false - paletteEndpoint: api.console.spectrocloud.com - name: edge-appliance-1 - caCerts: - - | - -----BEGIN CERTIFICATE----- - - -----END CERTIFICATE----- - -install: - bind_mounts: - - /var/lib/calico -``` - - - - - -### Prerequisites - -- You have created a bind mount for the `/var/lib/calico` folder on the Edge host. For more information, refer to - [Create Bind Mounts](#create-bind-mounts-for-edge-deployments). - -### Parameters - -| Name | Supported Values | Default value | Description | -| ------------------------ | ----------------------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| calico.encapsulationType | `CALICO_IPV4POOL_IPIP`, `CALICO_IPV4POOL_VXLAN` | `CALICO_IPV4POOL_IPIP` - AWS, VMware clouds | The encapsulation type to be used for networking (depends on the cloud) | -| | | `CALICO_IPV4POOL_VXLAN` - Azure cloud | | -| calico.encapsulationMode | `Always, CrossSubnet, Never` | Always | The mode to use the IPv4 POOL created at start up | -| calico.calicoNetworkCIDR | CIDR range | `192.168.0.0/16` | CIDR range to be assigned for Pods. This range should match the `podCIDR` range specified in the Kubernetes layer | - -### Usage - -#### Create Bind Mounts for Edge Deployments - -In Edge deployments, Calico requires a bind mount on the host machine. Without the bind mount, it's possible for the -Calico pods to be stuck in the init state. Use the following example to create a bind mount from `/var/lib/calico` on -the Edge host. When you build an installer ISO with the `bind_mounts` block, the folders specified in the block will be -mounted. For more information about building the installer ISO, refer to -[Build Installer ISO](../clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso.md). - -```yaml {14-16} -#cloud-config -stylus: - site: - debug: true - insecureSkipVerify: false - paletteEndpoint: api.console.spectrocloud.com - name: edge-appliance-1 - caCerts: - - | - -----BEGIN CERTIFICATE----- - - -----END CERTIFICATE----- - -install: - bind_mounts: - - /var/lib/calico -``` - - - - - -All versions below version 3.23.x are deprecated. - - - - - -## Troubleshooting - -- A daemon set is installed and so a calico-node pod should run on all the nodes in the cluster to provide networking. -- For any issues with networking, check calico-node and calico-kube-controller pods on the cluster. - -## Terraform - -Use the following Terraform snippet to reference the Calico CNI pack in your Terraform template. - -```hcl - -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "calico" { - name = "cni-calico" - version = "3.26.0" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - -## References - -- [Calico Documentation](https://docs.tigera.io/calico/latest/reference) diff --git a/docs/docs-content/integrations/cni-calico.md b/docs/docs-content/integrations/cni-calico.md new file mode 100644 index 0000000000..a169f69bf9 --- /dev/null +++ b/docs/docs-content/integrations/cni-calico.md @@ -0,0 +1,214 @@ +--- +sidebar_label: "Calico" +title: "Calico" +description: "Reference documentation for the Calico pack in Palette" +hide_table_of_contents: true +type: "integration" +category: ["network", "amd64", "fips"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/cni-calico/blobs/sha256:9a08103ccd797857a81b6ce55fa4f84a48bcb2bddfc7a4ff27878819c87e1e30?type=image.webp" +tags: ["packs", "calico", "network"] +--- + +:::warning + +Limitations: AWS, VMWare supports IP-in-IP encapsulation type. Azure supports VXLAN encapsulation type. + +::: + +## Versions Supported + + + + + +### Create Bind Mounts for Edge Deployments + +In Edge deployments, Calico requires a bind mount on the host machine. Without the bind mount, it's possible for the +Calico pods to be stuck in the init state. Use the following example to create a bind mount from `/var/lib/calico` on +the Edge host. When you build an installer ISO with the `bind_mounts` block, the folders specified in the block will be +mounted. For more information about building the installer ISO, refer to +[Build Installer ISO](../clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso.md). + +```yaml +#cloud-config +stylus: + site: + debug: true + insecureSkipVerify: false + paletteEndpoint: api.console.spectrocloud.com + name: edge-appliance-1 + caCerts: + - | + -----BEGIN CERTIFICATE----- + + -----END CERTIFICATE----- + +install: + bind_mounts: + - /var/lib/calico +``` + + + + + +### Create Bind Mounts for Edge Deployments + +In Edge deployments, Calico requires a bind mount on the host machine. Without the bind mount, it's possible for the +Calico pods to be stuck in the init state. Use the following example to create a bind mount from `/var/lib/calico` on +the Edge host. When you build an installer ISO with the `bind_mounts` block, the folders specified in the block will be +mounted. For more information about building the installer ISO, refer to +[Build Installer ISO](../clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso.md). + +```yaml +#cloud-config +stylus: + site: + debug: true + insecureSkipVerify: false + paletteEndpoint: api.console.spectrocloud.com + name: edge-appliance-1 + caCerts: + - | + -----BEGIN CERTIFICATE----- + + -----END CERTIFICATE----- + +install: + bind_mounts: + - /var/lib/calico +``` + + + + +### Create Bind Mounts for Edge Deployments + +In Edge deployments, Calico requires a bind mount on the host machine. Without the bind mount, it's possible for the +Calico pods to be stuck in the init state. Use the following example to create a bind mount from `/var/lib/calico` on +the Edge host. When you build an installer ISO with the `bind_mounts` block, the folders specified in the block will be +mounted. For more information about building the installer ISO, refer to +[Build Installer ISO](../clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso.md). + +```yaml +#cloud-config +stylus: + site: + debug: true + insecureSkipVerify: false + paletteEndpoint: api.console.spectrocloud.com + name: edge-appliance-1 + caCerts: + - | + -----BEGIN CERTIFICATE----- + + -----END CERTIFICATE----- + +install: + bind_mounts: + - /var/lib/calico +``` + + + + + +### Create Bind Mounts for Edge Deployments + +In Edge deployments, Calico requires a bind mount on the host machine. Without the bind mount, it's possible for the +Calico pods to be stuck in the init state. Use the following example to create a bind mount from `/var/lib/calico` on +the Edge host. When you build an installer ISO with the `bind_mounts` block, the folders specified in the block will be +mounted. For more information about building the installer ISO, refer to +[Build Installer ISO](../clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso.md). + +```yaml +#cloud-config +stylus: + site: + debug: true + insecureSkipVerify: false + paletteEndpoint: api.console.spectrocloud.com + name: edge-appliance-1 + caCerts: + - | + -----BEGIN CERTIFICATE----- + + -----END CERTIFICATE----- + +install: + bind_mounts: + - /var/lib/calico +``` + + + + + +### Create Bind Mounts for Edge Deployments + +In Edge deployments, Calico requires a bind mount on the host machine. Without the bind mount, it's possible for the +Calico pods to be stuck in the init state. Use the following example to create a bind mount from `/var/lib/calico` on +the Edge host. When you build an installer ISO with the `bind_mounts` block, the folders specified in the block will be +mounted. For more information about building the installer ISO, refer to +[Build Installer ISO](../clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso.md). + +```yaml {14-16} +#cloud-config +stylus: + site: + debug: true + insecureSkipVerify: false + paletteEndpoint: api.console.spectrocloud.com + name: edge-appliance-1 + caCerts: + - | + -----BEGIN CERTIFICATE----- + + -----END CERTIFICATE----- + +install: + bind_mounts: + - /var/lib/calico +``` + + + + + +All versions below version 3.23.x are deprecated. + + + + + +## Troubleshooting + +The following are some tips to troubleshoot issues with the Calico CNI. + +- A daemon set is installed, the calico-node pod should be deployed on all the nodes in the cluster to provide + networking. + +- For any issues with networking, check the logs of the `calico-node` and `calico-kube-controller` pods on the cluster. + +## Terraform + +Use the following Terraform snippet to reference the Calico CNI pack in your Terraform template. + +```hcl + +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "calico" { + name = "cni-calico" + version = "3.27.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` + +## References + +- [Calico Documentation](https://docs.tigera.io/calico/latest/reference) diff --git a/docs/docs-content/release-notes/known-issues.md b/docs/docs-content/release-notes/known-issues.md index aee54cffee..19955b18b9 100644 --- a/docs/docs-content/release-notes/known-issues.md +++ b/docs/docs-content/release-notes/known-issues.md @@ -38,7 +38,7 @@ The following table lists all known issues that are currently active and affecti | Conducting cluster node scaling operations on a cluster undergoing a backup can lead to issues and potential unresponsiveness. | To avoid this, ensure no backup operations are in progress before scaling nodes or performing other cluster operations that change the cluster state | April 14, 2024 | Clusters | | Palette automatically creates an AWS security group for worker nodes using the format `-node`. If a security group with the same name already exists in the VPC, the cluster creation process fails. | To avoid this, ensure that no security group with the same name exists in the VPC before creating a cluster. | April 14, 2024 | Clusters | | K3s version 1.27.7 has been marked as _Deprecated_. This version has a known issue that causes clusters to crash. | Upgrade to a newer version of K3s to avoid the issue, such as versions 1.26.12, 1.28.5, and 1.27.11. You can learn more about the issue in the [K3s GitHub issue](https://github.com/k3s-io/k3s/issues/9047) page. | April 14, 2024 | Packs, Clusters | -| When deploying a multi-node AWS EKS cluster with the Container Network Interface (CNI) [Calico](../integrations/calico.md), the cluster deployment fails. | A workaround is to use the AWS VPC CNI in the interim while the issue is resolved. | April 14, 2024 | Packs, Clusters | +| When deploying a multi-node AWS EKS cluster with the Container Network Interface (CNI) , the cluster deployment fails. | A workaround is to use the AWS VPC CNI in the interim while the issue is resolved. | April 14, 2024 | Packs, Clusters | | If a Kubernetes cluster deployed onto VMware is deleted, and later re-created with the same name, the cluster creation process fails. The issue is caused by existing resources remaining inside the PCG, or the System PCG, that are not cleaned up during the cluster deletion process. | Refer to the [VMware Resources Remain After Cluster Deletion](../troubleshooting/pcg.md#scenario---vmware-resources-remain-after-cluster-deletion) troubleshooting guide for resolution steps. | April 14, 2024 | Clusters | | In a VMware environment, self-hosted Palette instances do not receive a unique cluster ID when deployed, which can cause issues during a node repave event, such as a Kubernetes version upgrade. Specifically, Persistent Volumes (PVs) and Persistent Volume Claims (PVCs) will experience start problems due to the lack of a unique cluster ID. | To resolve this issue, refer to the [Volume Attachment Errors Volume in VMware Environment](../troubleshooting/palette-upgrade.md#volume-attachment-errors-volume-in-vmware-environment) troubleshooting guide. | April 14, 2024 | Self-Hosted | | Day-2 operations related to infrastructure changes, such as modifying the node size and count, when using MicroK8s are not taking effect. | No workaround is available. | April 14, 2024 | Packs, Clusters | diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 09bf0dbd0f..dafe596c07 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -39,6 +39,10 @@ "name": "csi-aws-efs", "description": "The Amazon Elastic File System Container Storage Interface (CSI) Driver implements the CSI specification for container orchestrators to manage the lifecycle of Amazon EFS file systems. Amazon EFS CSI driver supports dynamic provisioning and static provisioning. " }, + { + "name": "cni-calico", + "description": "Calico is a networking and security solution that enables Kubernetes workloads and non-Kubernetes/legacy workloads to communicate seamlessly and securely. Calico consists of networking to secure network communication, and advanced network policy to secure cloud-native microservices/applications at scale." + }, { "name": "centos", "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open source communities to build upon. Spectro Cloudprovides CentOS as a development framework for its users." From 1a6f6c4e5a5548179ec2b986de5db42fb9bcd4f6 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Thu, 18 Jul 2024 14:16:46 -0700 Subject: [PATCH 06/22] chore: more updates --- static/packs-data/packs_information.json | 32 ++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index dafe596c07..dcedd35c94 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -31,6 +31,10 @@ "name": "avi-ako", "description": "AVI AKO is a Kubernetes operator which works as an ingress controller and performs Avi-specific functions in a Kubernetes environment with the Avi Controller. AKO is deployed as a pod in the cluster and translates the required Kubernetes objects to Avi objects and automates the implementation of ingresses/routes/services on the Service Engines (SE) via the Avi Controller." }, + { + "name": "aws-eks-calico", + "description": "Calico is a networking and security solution that enables Kubernetes workloads and non-Kubernetes/legacy workloads to communicate seamlessly and securely. Calico consists of networking to secure network communication, and advanced network policy to secure cloud-native microservices/applications at scale." + }, { "name": "aws-alb", "description": "AWS Load Balancer Controller is a controller to help manage Elastic Load Balancers for a Kubernetes cluster. AWS Load Balancer Controller satisfies Kubernetes Ingress resources by provisioning Application Load Balancers. It also satisfies Kubernetes Service resources by provisioning Network Load Balancers." @@ -43,6 +47,34 @@ "name": "cni-calico", "description": "Calico is a networking and security solution that enables Kubernetes workloads and non-Kubernetes/legacy workloads to communicate seamlessly and securely. Calico consists of networking to secure network communication, and advanced network policy to secure cloud-native microservices/applications at scale." }, + { + "name": "cni-calico-azure", + "description": "Calico is a networking and security solution that enables Kubernetes workloads and non-Kubernetes/legacy workloads to communicate seamlessly and securely. Calico consists of networking to secure network communication, and advanced network policy to secure cloud-native microservices/applications at scale." + }, + { + "name": "", + "description": "" + }, + { + "name": "", + "description": "" + }, + { + "name": "", + "description": "" + }, + { + "name": "", + "description": "" + }, + { + "name": "", + "description": "" + }, + { + "name": "", + "description": "" + }, { "name": "centos", "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open source communities to build upon. Spectro Cloudprovides CentOS as a development framework for its users." From 1480c78bcde9eb250c43637954b1d01a592b7e9e Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 22 Jul 2024 12:55:47 -0700 Subject: [PATCH 07/22] docs: updated more descriptions --- static/packs-data/packs_information.json | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index dcedd35c94..2dd10845be 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -43,6 +43,46 @@ "name": "csi-aws-efs", "description": "The Amazon Elastic File System Container Storage Interface (CSI) Driver implements the CSI specification for container orchestrators to manage the lifecycle of Amazon EFS file systems. Amazon EFS CSI driver supports dynamic provisioning and static provisioning. " }, + { + "name": "aws-eks-oidc", + "description": "The AWS EKS OIDC pack provides the necessary configurations to configure your Identity Provider with the OIDC identity provider for Amazon EKS clusters." + }, + { + "name": "aws-ssm-agent", + "description": "The AWS SSM Agent pack installs the Amazon Session Manager Agent on the nodes of your Amazon Kubernetes cluster. The agent enables you to manage your interact and automate takss through the AWS Systems Manager." + }, + { + "name": "canonical-apache2", + "description": "The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards." + }, + { + "name": "canonical-charms-deployer", + "description": "Juju is an open source orchestration engine for software operators that enables the deployment, integration and lifecycle management of applications at any scale, on any infrastructure using charms. A charm is an operator - business logic encapsulated in reusable software packages that automate every aspect of an application's life." + }, + { + "name": "canonical-juju-olm", + "description": "The Juju controller is used to manage the software deployed through Juju, from deployment to upgrades to day-two operations. One Juju controller can manage multiple projects or workspaces, which in Juju are known as models" + }, + { + "name": "canonical-mysql", + "description": "MySQL is a fast, multi-threaded, multi-user, and robust SQL database server. It is intended for mission-critical, heavy-load production systems and mass-deployed software. This pack uses the Canonical MySQL Docker image to deploy a MySQL database." + }, + { + "name": "canonical-postgres", + "description": "PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. This pack uses the Canonical PostgreSQL Docker image to deploy a PostgreSQL database." + }, + { + "name": "canonical-redis", + "description": "Redis is an in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and message broker. Redis has built-in replication and different levels of on-disk persistence. It supports complex data types (for example, strings, hashes, lists, sets, sorted sets, and JSON), with atomic operations defined on those data types. This pack uses the Canonical Redis Docker image to deploy a Redis database." + }, + { + "name": "calico-network-policy", + "description": "Calico network policy provides a richer set of policy capabilities than what Kubernetes provides out-of-the-box. The Nework Policy provider includes: policy ordering/priority, deny rules, and more flexible match rules. While Kubernetes network policy applies only to pods, Calico network policy can be applied to multiple types of endpoints including pods, VMs, and host interfaces. Finally, when used with Istio service mesh, Calico network policy supports securing applications layers 5-7 match criteria, and cryptographic identity." + }, + { + "name": "calico-networking", + "description": "Calico network policy provides a richer set of policy capabilities than what Kubernetes provides out-of-the-box. The Nework Policy provider includes: policy ordering/priority, deny rules, and more flexible match rules. While Kubernetes network policy applies only to pods, Calico network policy can be applied to multiple types of endpoints including pods, VMs, and host interfaces. Finally, when used with Istio service mesh, Calico network policy supports securing applications layers 5-7 match criteria, and cryptographic identity." + }, { "name": "cni-calico", "description": "Calico is a networking and security solution that enables Kubernetes workloads and non-Kubernetes/legacy workloads to communicate seamlessly and securely. Calico consists of networking to secure network communication, and advanced network policy to secure cloud-native microservices/applications at scale." From 0672cbac4cfe718bfc7cd1d5f93530c7c5c6fe12 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 22 Jul 2024 15:12:59 -0700 Subject: [PATCH 08/22] docs: more READMEs --- docs/docs-content/integrations/azure-cni.md | 95 ------------------- docs/docs-content/integrations/centos.md | 25 ----- docs/docs-content/integrations/certmanager.md | 56 ----------- docs/docs-content/integrations/cloudanix.md | 82 ++-------------- docs/docs-content/integrations/cni-azure.md | 57 +++++++++++ src/components/PacksReadme/PacksReadme.tsx | 2 - static/packs-data/packs_information.json | 58 ++++++++++- 7 files changed, 120 insertions(+), 255 deletions(-) delete mode 100644 docs/docs-content/integrations/azure-cni.md delete mode 100644 docs/docs-content/integrations/centos.md delete mode 100644 docs/docs-content/integrations/certmanager.md create mode 100644 docs/docs-content/integrations/cni-azure.md diff --git a/docs/docs-content/integrations/azure-cni.md b/docs/docs-content/integrations/azure-cni.md deleted file mode 100644 index 98f7a38fe7..0000000000 --- a/docs/docs-content/integrations/azure-cni.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -sidebar_label: "Azure CNI" -title: "Azure CNI" -description: "Azure CNI network pack for Palette AKS Clusters" -hide_table_of_contents: true -type: "integration" -category: ["network", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.dev.spectrocloud.com/v1/csi-azure/blobs/sha256:0787b7943741181181823079533cd363884a28aa0651715ea43408bdc77a5c51?type=image.webp" -tags: ["packs", "azure-cni", "cni", "network"] ---- - -Palette supports Azure Container Network Interface (CNI) networking for Azure Kubernetes Service (AKS) clusters. Azure -CNI enables each pod to have exclusive IP addresses from the subnet with direct accessibility. - -To allocate unique IP addresses to individual pods, advanced forethought needs to be put in. As per the maximum pods -supported by a node, -[IP addresses need to be reserved](https://docs.microsoft.com/en-us/azure/aks/configure-azure-cni#plan-ip-addressing-for-your-cluster) -in advance. The default -[maximum number](https://docs.microsoft.com/en-us/azure/aks/configure-azure-cni#maximum-pods-per-node) of pods per node -varies between kubenet and Azure CNI networking and based on the method of cluster deployment. - -## Versions Supported - - - - - -**1.4.0** - - - - - -# Azure CNI Policy Support - -Network Policy is a Kubernetes specification that defines access policies for communication between pods. By default, -AKS cluster pods can send and receive traffic without limitations. However, to ensure security, rules to control traffic -flow can be defined. Network Policies define an ordered set of rules to send and receive traffic and applies them to a -collection of pods that match one or more label selectors. Palette enables Network Policies to be included as part of a -wider manifest that also creates a deployment or service. Palette leverages two (2) Network Policies from Azure CNI: - -
- -- **azure**: Azure's own implementation, called Azure Network Policy. - -- **calico**: An open-source network and network security solution founded by [Tigera](https://www.tigera.io/). - -Palette users can choose any one of the above Network Policies and provide it to the pack YAML file as `networkPolicy` -as given below: - -
-
- -```yaml -pack: - # The Network policy for ingress and egress traffic between pods in a cluster. Supported values are none, azure, calico - networkPolicy: "none" -``` - -
- -:::info - -Provide the networkPolicy value as none if no policy to be applied. - -::: - -
- -## Azure and Calico Policies and their Capabilities - -| Capability | Azure | Calico | -| ---------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Supported platforms | Linux | Linux, Windows Server 2019 and 2022 | -| Supported networking options | Azure CNI | Azure CNI (Linux, Windows Server 2019 and 2022) and kubenet (Linux) | -| Compliance with Kubernetes specification | All policy types supported | All policy types supported | -| Additional features | None | Extended policy model consisting of Global Network Policy, Global Network Set, and Host Endpoint. For more information on using the calicoctl CLI to manage these extended features, see calicoctl user reference guide. | -| Support | Supported by Azure Support and Engineering team | Calico community support. | -| Logging | Rules added or deleted in IP Tables are logged on every host under `/var/log/azure-npm.log` | For more information, see [Calico component logs](https://projectcalico.docs.tigera.io/maintenance/troubleshoot/component-logs) | - -:::warning - -Make sure to use Azure CNI with the Windows operating system as the kubenet is not available for the Windows -environment. - -::: - -
- -## References - -- [Azure CNI Git](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md) - -- [Azure CNI](https://docs.microsoft.com/en-us/azure/aks/configure-azure-cni) diff --git a/docs/docs-content/integrations/centos.md b/docs/docs-content/integrations/centos.md deleted file mode 100644 index e866086176..0000000000 --- a/docs/docs-content/integrations/centos.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_label: "CentOS" -title: "CentOS" -description: "Choosing CentOS as an Operating System within the Spectro Cloud Console" -hide_table_of_contents: true -type: "integration" -category: ["operating system", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/centos-vsphere/blobs/sha256:fe51960e2a05745b7b9217e244e47fac401edcdb184b500d75cc537cecb81ef1?type=image.webp" -tags: ["packs", "centos", "operating system"] ---- - -CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of Red -Hat Enterprise Linux (RHEL). It provides a rich base platform for open source communities to build upon. Spectro Cloud -provides CentOS as a development framework for its users. - -## Version Supported - -**CentOS 7.7** - -## References - -- [CentOS Wiki](https://wiki.centos.org) - -- [CentOS Documentation](https://docs.centos.org/en-US/docs) diff --git a/docs/docs-content/integrations/certmanager.md b/docs/docs-content/integrations/certmanager.md deleted file mode 100644 index 14f09cf498..0000000000 --- a/docs/docs-content/integrations/certmanager.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -sidebar_label: "cert-manager" -title: "cert-manager" -description: "cert-manager Security pack in Spectro Cloud" -hide_table_of_contents: true -type: "integration" -category: ["security", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.dev.spectrocloud.com/v1/certmanager/blobs/sha256:7882e13d7056781a0195ec15e3b9fa5d4b4bb7f8b4e2c32cc5e254e2295c6a16?type=image.webp" -tags: ["packs", "cert-manager", "security"] ---- - -cert-manager adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the -process of obtaining, renewing and using those certificates. It can issue certificates from a variety of supported -sources, including Let’s Encrypt, HashiCorp Vault, and Venafi as well as private PKI. It also takes care of the -certificate validity and attempts to renew certificates before expiry. - -## Versions Supported - - - - - -**1.9.1** - - - - - -**1.8.1** - - - - - -**1.7.1** - - - - - -**1.4.0** - - - - - -**1.1.0** - - - - - -## References - -- [Cert-manager Documentation](https://cert-manager.io/docs) diff --git a/docs/docs-content/integrations/cloudanix.md b/docs/docs-content/integrations/cloudanix.md index 2d175d66ec..f555231822 100644 --- a/docs/docs-content/integrations/cloudanix.md +++ b/docs/docs-content/integrations/cloudanix.md @@ -12,73 +12,11 @@ logoUrl: "https://cloudanix-assets.s3.amazonaws.com/static/cloudanix-logo-p.png" tags: ["packs", "cloudanix", "security"] --- -The Cloudanix pack is an add-on security pack that provides a dashboard to help you detect threats and unusual behavior -in your Kubernetes clusters. Cloudanix detects the following. - -- Files added or modified in sensitive directories - -- SSH into a container - -- Modifications to shell configuration files - -- Attempts to read sensitive files that contain credential information - -- Crypto mining - -The Cloudanix dashboard provides an interactive interface that displays the mapping between threat events and associated -container, pod, and node workloads. Additionally, Cloudanix identifies the user who initiated an activity identified as -a threat and the command that was used. - -You can also start Jira workflows and target specific workloads from the Cloudanix dashboard. - ## Versions Supported - - - - -## Prerequisites - -- CPUs: 0.5 -- Memory: 256 MiB -- Kubernetes 1.19.x to 1.25.x -- Kernel version 4.5 and higher + -## Parameters - -The Cloudanix pack has the following parameters, which are auto-filled based on Palette user information. - -| Name | Description | -| ------------------- | -------------------------------------------------------------------------- | -| `userEmail` | The email address of the user who created the cluster and cluster profile. | -| `partnerIdentifier` | A Cloudanix unique identifier for Spectro Cloud. | -| `organizationId` | The organization tenant ID in Palette. | -| `userName` | Palette user name. | -| `accountName` | Palette cloud account name. | -| `accountType` | Cloud account type such as AWS or GCP, Azure, or others. | -| `accountId` | The user's cloud account ID. | -| `clusterName` | The name of the cluster. | -| `clusterIdentifier` | The cluster's unique identifier. | -| `clusterDomain` | The Palette cloud account type such as AWS, GCP, Azure, or others. | - -## Usage - -This Helm Chart installs four Cloudanix services to enable container security capabilities: - -
- -- **config-cron**: A job that runs periodically in a Kubernetes cluster to maintain the configuration of Cloudanix - inventory and threat services. -- **misconfig-cron**: A job that captures Kubernetes misconfigurations and displays them on the Cloudanix dashboard. -- **inventory-service**: An inventory service that detects any new Kubernetes resources and displays them on the - Cloudanix dashboard. -- **threat-service**: A threat service that exports threat events and affected Kubernetes resources, which are visible - on the Cloudanix dashboard. - -From the **Workloads** page, click the **Risks** tab to view a list of failed threat rules. You can exclude resources, -such as pods and containers, from the risk findings. - -
+ ### Kubernetes 1.25 and higher @@ -114,18 +52,14 @@ As a final step, apply the cluster profile to your cluster. ## Terraform ```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" +data "spectrocloud_registry" "public_add_on_repo" { + name = "Spectro Addon Repo" } data "spectrocloud_pack_simple" "cloudanix" { - name = "cloudanix" - version = "0.0.6" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id + name = "cloudanix" + version = "0.0.2" + type = "helm" + registry_uid = data.spectrocloud_registry.public_add_on_repo.id } ``` - -## References - -- [Cloudanix Documentation](https://www.cloudanix.com/docs/introduction) diff --git a/docs/docs-content/integrations/cni-azure.md b/docs/docs-content/integrations/cni-azure.md new file mode 100644 index 0000000000..6d64e0d474 --- /dev/null +++ b/docs/docs-content/integrations/cni-azure.md @@ -0,0 +1,57 @@ +--- +sidebar_label: "Azure CNI" +title: "Azure CNI" +description: "Azure CNI network pack for Palette AKS Clusters" +hide_table_of_contents: true +type: "integration" +category: ["network", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "azure-cni", "cni", "network"] +--- + +## Versions Supported + + + + + +:::warning + +Make sure to use Azure CNI with the Windows operating system as the kubenet is not available for the Windows +environment. + +::: + +### Azure CNI Policy Support + +Network Policy is a Kubernetes specification that defines access policies for communication between pods. By default, +AKS cluster pods can send and receive traffic without limitations. However, to ensure security, rules to control traffic +flow can be defined. Network Policies define an ordered set of rules to send and receive traffic and applies them to a +collection of pods that match one or more label selectors. Palette enables Network Policies to be included as part of a +wider manifest that also creates a deployment or service. Palette leverages two (2) Network Policies from Azure CNI: + +- **azure**: Azure's own implementation, called + [Azure Network Policy](https://learn.microsoft.com/en-us/azure/virtual-network/kubernetes-network-policies). + +- **calico**: An open-source network and network security solution founded by [Tigera](https://www.tigera.io/). + +- **none**: No network policy is applied. Use this option if you do not want to apply any network policy. + +Palette users can choose any one of the above Network Policies and provide it to the pack YAML file as `networkPolicy` +as given below. + +```yaml +pack: + networkPolicy: "none" +``` + +:::tip + +If you are comparing Azure Network Policy with other Network Policy engines, refer to the +[Differences between Network Policy engines: Cilium, Azure NPM, and Calico](https://learn.microsoft.com/en-us/azure/aks/use-network-policies#differences-between-network-policy-engines-cilium-azure-npm-and-calico). + +::: + + + + diff --git a/src/components/PacksReadme/PacksReadme.tsx b/src/components/PacksReadme/PacksReadme.tsx index c0a3622ad6..9e2e1e8200 100644 --- a/src/components/PacksReadme/PacksReadme.tsx +++ b/src/components/PacksReadme/PacksReadme.tsx @@ -230,8 +230,6 @@ export default function PacksReadme() { return consolidatedRegistries.join(", "); } - console.log("packData", packData); - return (
diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 2dd10845be..420f2a0223 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -83,6 +83,58 @@ "name": "calico-networking", "description": "Calico network policy provides a richer set of policy capabilities than what Kubernetes provides out-of-the-box. The Nework Policy provider includes: policy ordering/priority, deny rules, and more flexible match rules. While Kubernetes network policy applies only to pods, Calico network policy can be applied to multiple types of endpoints including pods, VMs, and host interfaces. Finally, when used with Istio service mesh, Calico network policy supports securing applications layers 5-7 match criteria, and cryptographic identity." }, + { + "name": "centos-aws", + "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open-source communities to build upon." + }, + { + "name": "centos-azure", + "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open-source communities to build upon." + }, + { + "name": "centos-gcp", + "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open-source communities to build upon." + }, + { + "name": "centos-vsphere", + "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open-source communities to build upon." + }, + { + "name": "centos-libvirt", + "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open-source communities to build upon." + }, + { + "name": "ceph-rbd", + "description": "A Container Storage Interface (CSI) driver, provisioner, snapshotter, resizer and attacher for Ceph RBD." + }, + { + "name": "ceph-rbd-addon", + "description": "A Container Storage Interface (CSI) driver, provisioner, snapshotter, resizer and attacher for Ceph RBD." + }, + { + "name": "cisco-appdynamics-collectors", + "description": "AppDynamics Collector is a component within the AppDynamics platform that gathers and processes telemetry data from applications, databases, or other monitored systems, and sends this data to the AppDynamics backend for analysis and visualization." + }, + { + "name": "cisco-appdynamics-operators", + "description": "AppDynamics Operator is a Kubernetes-native component designed to manage and automate the deployment and configuration of AppDynamics monitoring agents within Kubernetes environments." + }, + { + "name": "cloudanix", + "description": "The Cloudanix pack is an add-on security pack that provides a dashboard to help you detect threats and unusual behavior in your Kubernetes clusters. Cloudanix detects the following: Files added or modified in sensitive directories. SSH into a container. Modifications to shell configuration files. Attempts to read sensitive files that contain credential information. And identitfy crypto mining." + }, + { + "name": "cni-azure", + "description": "The Azure CNI plugin provides network support to Azure Kubernetes Service (AKS) clusters. The plugin is responsible for setting up the network interfaces on the nodes and pods, and for managing the IP addresses. The CNI ensures every pod gets an IP address from the subnet and can be accessed directly." + }, + { + "name": "cni-aws-vpc-eks", + "description": "The Amazon Virtual Private Cloud (VPC) CNI plugin for Kubernetes. This plugin provides pod networking through Elastic Network Interfaces (ENI) for clusters deployed on AWS." + }, + { + "name": "cni-aws-vpc-eks-helm", + "description": "The Amazon Virtual Private Cloud (VPC) CNI plugin for Kubernetes. This plugin provides pod networking through Elastic Network Interfaces (ENI) for clusters deployed on AWS." + }, { "name": "cni-calico", "description": "Calico is a networking and security solution that enables Kubernetes workloads and non-Kubernetes/legacy workloads to communicate seamlessly and securely. Calico consists of networking to secure network communication, and advanced network policy to secure cloud-native microservices/applications at scale." @@ -92,11 +144,11 @@ "description": "Calico is a networking and security solution that enables Kubernetes workloads and non-Kubernetes/legacy workloads to communicate seamlessly and securely. Calico consists of networking to secure network communication, and advanced network policy to secure cloud-native microservices/applications at scale." }, { - "name": "", - "description": "" + "name": "certmanager", + "description": "cert-manager adds certificates and certificate issuers as resource types in Kubernetes clusters, simplifying obtaining, renewing, and using those certificates. It can issue certificates from various supported sources, including Let’s Encrypt, HashiCorp Vault, Venafi, and private PKI. It also takes care of the certificate validity and attempts to renew certificates before expiry." }, { - "name": "", + "name": "cisco-appdynamics-collectors", "description": "" }, { From 1a659df0c5b432a06fff6d25474dee295b268f72 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 22 Jul 2024 15:21:18 -0700 Subject: [PATCH 09/22] docs: added terraform for azure-cni --- docs/docs-content/integrations/cni-azure.md | 34 ++++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/docs/docs-content/integrations/cni-azure.md b/docs/docs-content/integrations/cni-azure.md index 6d64e0d474..3bcabe5315 100644 --- a/docs/docs-content/integrations/cni-azure.md +++ b/docs/docs-content/integrations/cni-azure.md @@ -17,7 +17,7 @@ tags: ["packs", "azure-cni", "cni", "network"] :::warning -Make sure to use Azure CNI with the Windows operating system as the kubenet is not available for the Windows +Make sure to use Azure CNI with the Windows Operating System as the kubenet CNI is not available for the Windows environment. ::: @@ -25,20 +25,20 @@ environment. ### Azure CNI Policy Support Network Policy is a Kubernetes specification that defines access policies for communication between pods. By default, -AKS cluster pods can send and receive traffic without limitations. However, to ensure security, rules to control traffic -flow can be defined. Network Policies define an ordered set of rules to send and receive traffic and applies them to a -collection of pods that match one or more label selectors. Palette enables Network Policies to be included as part of a -wider manifest that also creates a deployment or service. Palette leverages two (2) Network Policies from Azure CNI: +Azure AKS cluster pods can send and receive traffic without limitations. However, to ensure security, rules to control +traffic flow can be defined. Network Policies define an ordered set of rules to send and receive traffic and applies +them to a collection of pods that match one or more label selectors. Palette supports Network Policies to be included as +part of a wider manifest that also creates a deployment or service. Palette leverages two Network Policies from Azure +CNI: - **azure**: Azure's own implementation, called [Azure Network Policy](https://learn.microsoft.com/en-us/azure/virtual-network/kubernetes-network-policies). -- **calico**: An open-source network and network security solution founded by [Tigera](https://www.tigera.io/). +- **calico**: An open-source network and network security solution developed by [Tigera](https://www.tigera.io/). - **none**: No network policy is applied. Use this option if you do not want to apply any network policy. -Palette users can choose any one of the above Network Policies and provide it to the pack YAML file as `networkPolicy` -as given below. +Update the pack YAML's `networkPolicy` field to apply the desired network policy. The default value is `calico`. ```yaml pack: @@ -55,3 +55,21 @@ If you are comparing Azure Network Policy with other Network Policy engines, ref + +## Terraform + +Use the following Terraform snippet to reference the Azure CNI pack in your Terraform template. Update the version +number as needed. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "calico" { + name = "cni-azure" + version = "1.4.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` From 2e2f00444db986af609fccf0b6cc21e8f0798201 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Tue, 23 Jul 2024 09:51:16 -0700 Subject: [PATCH 10/22] docs: added public repo registry --- docs/docs-content/integrations/cni-flannel.md | 244 +++++++++++++ docs/docs-content/integrations/flannel-cni.md | 320 ------------------ docusaurus.config.js | 2 +- plugins/packs-integrations.js | 1 + src/components/PacksReadme/PacksReadme.tsx | 3 +- static/packs-data/packs_information.json | 28 +- 6 files changed, 257 insertions(+), 341 deletions(-) create mode 100644 docs/docs-content/integrations/cni-flannel.md delete mode 100644 docs/docs-content/integrations/flannel-cni.md diff --git a/docs/docs-content/integrations/cni-flannel.md b/docs/docs-content/integrations/cni-flannel.md new file mode 100644 index 0000000000..6a1424663c --- /dev/null +++ b/docs/docs-content/integrations/cni-flannel.md @@ -0,0 +1,244 @@ +--- +sidebar_label: "Flannel" +title: "Flannel" +description: "Flannel CNI pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["network", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/cni-flannel/blobs/sha256:24e56da9fc207788ba520cd00e31af042cfc9b00a3c21a5ad40a4dd592500589?type=image.webp" +tags: ["packs", "flannel", "cni"] +--- + +## Versions Supported + + + + +### Change the Backend + +If you need to change the backend type or update the backend port due to firewall or other restrictions, you can do so +by updating the pack YAML. The parameters `charts.flannel.backend` and `charts.flannel.backendPort` can be used to +change the default behavior. Refer to the official +[backend documentation](https://github.com/flannel-io/flannel/blob/v0.23.0/Documentation/backends.md) to learn more +about supported backends. + +```yaml +charts: + flannel: + backend: "vxlan" + backendPort: 8472 +``` + +### Change MTU + +By default, Flannel will use the Maximum Transmission Unit (MTU) of the host interface. If you need to change the MTU, +you can do so by updating the pack YAML. The parameter `charts.flannel.mtu` can be used to change the MTU value. + +```yaml +charts: + flannel: + mtu: 1500 +``` + +### VXLAN Configuration + +Additional parameters can be used to configure the VXLAN backend. The VXLAN configuration is commented out by default in +the pack YAML. Uncomment the parameters you want to use and update the values as needed. Refer to the +[VXLAN backend documentation](https://github.com/flannel-io/flannel/blob/v0.23.0/Documentation/backends.md) for +additional guidance. + +```yaml hideClipboard +charts: + flannel: + VXLAN Configs: + #VXLAN Identifier to be used. On Linux default is 1. + vni: 1 + #Enable VXLAN Group Based Policy (Default false) + GBP: false + #Enable direct routes (default is false) + directRouting: false + #MAC prefix to be used on Windows. (Defaults is 0E-2A) + macPrefix: "0E-2A" + ? Wireguard Configs + + #UDP listen port used with IPv6 + backendPortv6: 51821 + #Pre shared key to use + psk: 0 + #IP version to use on Wireguard + tunnelMode: "separate" + #Persistent keep interval to use + keepaliveInterval: 0 +``` + + + + +### Change the Backend + +If you need to change the backend type or update the backend port due to firewall or other restrictions, you can do so +by updating the pack YAML. The parameters `charts.flannel.backend` and `charts.flannel.backendPort` can be used to +change the default behavior. Refer to the official +[backend documentation](https://github.com/flannel-io/flannel/blob/v0.22.3/Documentation/backends.md) to learn more +about supported backends. + +```yaml +charts: + flannel: + backend: "vxlan" + backendPort: 8472 +``` + +### Change MTU + +By default, Flannel will use the Maximum Transmission Unit (MTU) of the host interface. If you need to change the MTU, +you can do so by updating the pack YAML. The parameter `charts.flannel.mtu` can be used to change the MTU value. + +```yaml +charts: + flannel: + mtu: 1500 +``` + +### VXLAN Configuration + +Additional parameters can be used to configure the VXLAN backend. The VXLAN configuration is commented out by default in +the pack YAML. Uncomment the parameters you want to use and update the values as needed. Refer to the +[VXLAN backend documentation](https://github.com/flannel-io/flannel/blob/v0.22.3/Documentation/backends.md) for +additional guidance. + +```yaml hideClipboard +charts: + flannel: + VXLAN Configs: + #VXLAN Identifier to be used. On Linux default is 1. + vni: 1 + #Enable VXLAN Group Based Policy (Default false) + GBP: false + #Enable direct routes (default is false) + directRouting: false + #MAC prefix to be used on Windows. (Defaults is 0E-2A) + macPrefix: "0E-2A" + ? Wireguard Configs + + #UDP listen port used with IPv6 + backendPortv6: 51821 + #Pre shared key to use + psk: 0 + #IP version to use on Wireguard + tunnelMode: "separate" + #Persistent keep interval to use + keepaliveInterval: 0 +``` + + + + +### Change the Backend + +If you need to change the backend type or update the backend port due to firewall or other restrictions, you can do so +by updating the pack YAML. The parameters `charts.flannel.backend` and `charts.flannel.backendPort` can be used to +change the default behavior. Refer to the official +[backend documentation](https://github.com/flannel-io/flannel/blob/v0.21.5/Documentation/backends.md) to learn more +about supported backends. + +```yaml +manifests: + flannel: + backend: "vxlan" + backendPort: 8472 +``` + +### Change MTU + +By default, Flannel will use the Maximum Transmission Unit (MTU) of the host interface. If you need to change the MTU, +you can do so by updating the pack YAML. The parameter `charts.flannel.mtu` can be used to change the MTU value. + +```yaml +manifests: + flannel: + mtu: 1500 +``` + + + + +### Prerequisites + +- Kubernetes version 1.22 or later. + +## Parameters + +The following table lists commonly used parameters for Flannel version 0.20.x. Refer to the pack YAML file for the +complete list of parameters. + +| Parameter | Description | Default | +| ---------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | +| `manifests.flannel.flannelNetwork` | The IPv4 CIDR range to assign to the pod network. This should match the Kubernetes `PodCIDR`. | `192.168.0.0/16` | +| `manifests.flannel.cniPluginsImage` | The image used for installing the core-cni-plugins through the _initContainer_. | `gcr.io/spectro-images-public/release/cni-plugins/cni-plugins:v1.2.0` | +| `manifests.flannel.image_cni.repository` | The Flannel CNI image repository. | `docker.io/flannel/flannel-cni-plugin` | + +## Usage + +### Change the Backend + +If you need to change the backend type or update the backend port due to firewall or other restrictions, you can do so +by updating the pack YAML. The parameters `charts.flannel.backend` and `charts.flannel.backendPort` can be used to +change the default behavior. Refer to the official +[backend documentation](https://github.com/flannel-io/flannel/blob/v0.21.5/Documentation/backends.md) to learn more +about supported backends. + +```yaml +manifests: + flannel: + backend: "vxlan" + backendPort: 8472 +``` + +### Change MTU + +By default, Flannel will use the Maximum Transmission Unit (MTU) of the host interface. If you need to change the MTU, +you can do so by updating the pack YAML. The parameter `charts.flannel.mtu` can be used to change the MTU value. + +```yaml +manifests: + flannel: + mtu: 1500 +``` + + + + +:::warning + +All versions less than v0.20.x are considered deprecated. Upgrade to a newer version to take advantage of new features. + +::: + + + + +## Terraform + +Use the following Terraform snippet to reference the Flannel CNI pack in your Terraform template. Replace the version +number with the version you want to use. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "flannel" { + name = "cni-flannel" + version = "0.23.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` + +## Reference + +- [Flannel Documentation](https://github.com/flannel-io/flannel/tree/master?tab=readme-ov-file#how-it-works) + +- [Configuration Options](https://github.com/flannel-io/flannel/blob/master/Documentation/configuration.md) diff --git a/docs/docs-content/integrations/flannel-cni.md b/docs/docs-content/integrations/flannel-cni.md deleted file mode 100644 index 8772d60b1a..0000000000 --- a/docs/docs-content/integrations/flannel-cni.md +++ /dev/null @@ -1,320 +0,0 @@ ---- -sidebar_label: "Flannel" -title: "Flannel" -description: "Flannel CNI pack in Palette." -hide_table_of_contents: true -type: "integration" -category: ["network", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/cni-flannel/blobs/sha256:24e56da9fc207788ba520cd00e31af042cfc9b00a3c21a5ad40a4dd592500589?type=image.webp" -tags: ["packs", "flannel", "cni"] ---- - -Flannel is a network layer, layer three, fabric for Kubernetes. It is designed to work with Linux routing infrastructure -and creates a virtual network that gives each computing host a subnet. Flannel uses either the Kubernetes API or etcd -directly to store the network configuration, the allocated subnets, and any auxiliary data such as the host’s public IP -address. To learn more about Flannel, refer to the -[official documentation](https://github.com/flannel-io/flannel/tree/master?tab=readme-ov-file#how-it-works). - -The Flannel pack includes the Container Network Interface (CNI) plugins required use Flannel in your cluster. - -## Versions Supported - - - - -### Prerequisites - -- Kubernetes version 1.22 or later. - -- Existing cluster profiles that use Flannel version 0.21.x or earlier cannot upgrade to Flannel version 0.23.x. You - must create a new cluster profile to use Flannel version 0.23.x. All Flannel versions 0.21.x and earlier are manifest - based. The newer versions are pack based with additional logic that builds on top of the Helm chart. - -## Parameters - -The following table lists commonly used parameters for Flannel version 0.23.x. Refer to the pack YAML file for the -complete list of parameters. - -| Parameter | Description | Default | -| ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | -| `pack.namespace` | The namespace to install Flannel. If the namespace does not exist, it will be created. | `kube-system` | -| `charts.flannel.podCidr` | The IPv4 CIDR range to assign to the pod network. This should match the Kubernetes `PodCIDR`. | `192.168.0.0/16` | -| `charts.flannel.podCidrv6` | The IPv6 CIDR range to assign to the service network. | `""` | -| `charts.flannel.backend` | The backend to use for Flannel. Refer to the official [backend documentation](https://github.com/flannel-io/flannel/blob/v0.23.0/Documentation/backends.md) to learn more about supported backends. | `vxlan` | -| `charts.flannel.image_cni.repository` | The Flannel CNI image repository. | `docker.io/flannel/flannel-cni-plugin` | -| `charts.flannel.image_cni.tag` | The Flannel CNI image tag. | `v1.1.2` | -| `charts.flannel.args` | Additional arguments to pass to the Flannel daemon. Refer to the [key command line options documentation](https://github.com/flannel-io/flannel/blob/v0.23.0/Documentation/configuration.md#key-command-line-options) for a list of supported values. | `["--ip-masq","--kube-subnet-mgr"]` | - -## Usage - -### Change the Backend - -If you need to change the backend type or update the backend port due to firewall or other restrictions, you can do so -by updating the pack YAML. The parameters `charts.flannel.backend` and `charts.flannel.backendPort` can be used to -change the default behavior. Refer to the official -[backend documentation](https://github.com/flannel-io/flannel/blob/v0.23.0/Documentation/backends.md) to learn more -about supported backends. - -```yaml -charts: - flannel: - backend: "vxlan" - backendPort: 8472 -``` - -### Change MTU - -By default, Flannel will use the Maximum Transmission Unit (MTU) of the host interface. If you need to change the MTU, -you can do so by updating the pack YAML. The parameter `charts.flannel.mtu` can be used to change the MTU value. - -```yaml -charts: - flannel: - mtu: 1500 -``` - -### VXLAN Configuration - -Additional parameters can be used to configure the VXLAN backend. The VXLAN configuration is commented out by default in -the pack YAML. Uncomment the parameters you want to use and update the values as needed. Refer to the -[VXLAN backend documentation](https://github.com/flannel-io/flannel/blob/v0.23.0/Documentation/backends.md) for -additional guidance. - -```yaml hideClipboard -charts: - flannel: - VXLAN Configs: - #VXLAN Identifier to be used. On Linux default is 1. - vni: 1 - #Enable VXLAN Group Based Policy (Default false) - GBP: false - #Enable direct routes (default is false) - directRouting: false - #MAC prefix to be used on Windows. (Defaults is 0E-2A) - macPrefix: "0E-2A" - ? Wireguard Configs - - #UDP listen port used with IPv6 - backendPortv6: 51821 - #Pre shared key to use - psk: 0 - #IP version to use on Wireguard - tunnelMode: "separate" - #Persistent keep interval to use - keepaliveInterval: 0 -``` - - - - -### Prerequisites - -- Kubernetes version 1.22 or later. - -- Existing cluster profiles that use Flannel version 0.21.x or earlier cannot upgrade to Flannel version 0.22.x. You - must create a new cluster profile to use Flannel version 0.22.x. All Flannel versions 0.21.x and earlier are manifest - based. The newer versions are pack based with additional logic that builds on top of the Helm chart. - -## Parameters - -The following table lists commonly used parameters for Flannel version 0.22.x. Refer to the pack YAML file for the -complete list of parameters. - -| Parameter | Description | Default | -| ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | -| `pack.namespace` | The namespace to install Flannel. If the namespace does not exist, it will be created. | `kube-system` | -| `charts.flannel.podCidr` | The IPv4 CIDR range to assign to the pod network. This should match the Kubernetes `PodCIDR`. | `192.168.0.0/16` | -| `charts.flannel.podCidrv6` | The IPv6 CIDR range to assign to the service network. | `""` | -| `charts.flannel.backend` | The backend to use for Flannel. Refer to the official [backend documentation](https://github.com/flannel-io/flannel/blob/v0.22.3/Documentation/backends.md) to learn more about supported backends. | `vxlan` | -| `charts.flannel.image_cni.repository` | The Flannel CNI image repository. | `docker.io/flannel/flannel-cni-plugin` | -| `charts.flannel.image_cni.tag` | The Flannel CNI image tag. | `v1.1.2` | -| `charts.flannel.args` | Additional arguments to pass to the Flannel daemon. Refer to the [key command line options documentation](https://github.com/flannel-io/flannel/blob/v0.22.3/Documentation/configuration.md#key-command-line-options) for a list of supported values. | `["--ip-masq","--kube-subnet-mgr"]` | - -## Usage - -### Change the Backend - -If you need to change the backend type or update the backend port due to firewall or other restrictions, you can do so -by updating the pack YAML. The parameters `charts.flannel.backend` and `charts.flannel.backendPort` can be used to -change the default behavior. Refer to the official -[backend documentation](https://github.com/flannel-io/flannel/blob/v0.22.3/Documentation/backends.md) to learn more -about supported backends. - -```yaml -charts: - flannel: - backend: "vxlan" - backendPort: 8472 -``` - -### Change MTU - -By default, Flannel will use the Maximum Transmission Unit (MTU) of the host interface. If you need to change the MTU, -you can do so by updating the pack YAML. The parameter `charts.flannel.mtu` can be used to change the MTU value. - -```yaml -charts: - flannel: - mtu: 1500 -``` - -### VXLAN Configuration - -Additional parameters can be used to configure the VXLAN backend. The VXLAN configuration is commented out by default in -the pack YAML. Uncomment the parameters you want to use and update the values as needed. Refer to the -[VXLAN backend documentation](https://github.com/flannel-io/flannel/blob/v0.22.3/Documentation/backends.md) for -additional guidance. - -```yaml hideClipboard -charts: - flannel: - VXLAN Configs: - #VXLAN Identifier to be used. On Linux default is 1. - vni: 1 - #Enable VXLAN Group Based Policy (Default false) - GBP: false - #Enable direct routes (default is false) - directRouting: false - #MAC prefix to be used on Windows. (Defaults is 0E-2A) - macPrefix: "0E-2A" - ? Wireguard Configs - - #UDP listen port used with IPv6 - backendPortv6: 51821 - #Pre shared key to use - psk: 0 - #IP version to use on Wireguard - tunnelMode: "separate" - #Persistent keep interval to use - keepaliveInterval: 0 -``` - - - - -### Prerequisites - -- Kubernetes version 1.22 or later. - -## Parameters - -The following table lists commonly used parameters for Flannel version 0.21.x. Refer to the pack YAML file for the -complete list of parameters. - -| Parameter | Description | Default | -| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | -| `manifests.flannel.flannelNetwork` | The IPv4 CIDR range to assign to the pod network. This should match the Kubernetes `PodCIDR`. | `192.168.0.0/16` | -| `manifests.flannel.cniPluginsImage` | The image used for installing the core-cni-plugins through the _initContainer_. | `gcr.io/spectro-images-public/release/cni-plugins/cni-plugins:v1.2.0` | -| `manifests.flannel.image_cni.repository` | The Flannel CNI image repository. | `docker.io/flannel/flannel-cni-plugin` | -| `manifests.flannel.image_cni.tag` | The Flannel CNI image tag. | `v1.1.2` | -| `manifests.flannel.args` | Additional arguments to pass to the Flannel daemon. Refer to the [key command line options documentation](https://github.com/flannel-io/flannel/blob/v0.21.5/Documentation/configuration.md#key-command-line-options) for a list of supported values. | `["--ip-masq","--kube-subnet-mgr"]` | - -## Usage - -### Change the Backend - -If you need to change the backend type or update the backend port due to firewall or other restrictions, you can do so -by updating the pack YAML. The parameters `charts.flannel.backend` and `charts.flannel.backendPort` can be used to -change the default behavior. Refer to the official -[backend documentation](https://github.com/flannel-io/flannel/blob/v0.21.5/Documentation/backends.md) to learn more -about supported backends. - -```yaml -manifests: - flannel: - backend: "vxlan" - backendPort: 8472 -``` - -### Change MTU - -By default, Flannel will use the Maximum Transmission Unit (MTU) of the host interface. If you need to change the MTU, -you can do so by updating the pack YAML. The parameter `charts.flannel.mtu` can be used to change the MTU value. - -```yaml -manifests: - flannel: - mtu: 1500 -``` - - - - -### Prerequisites - -- Kubernetes version 1.22 or later. - -## Parameters - -The following table lists commonly used parameters for Flannel version 0.20.x. Refer to the pack YAML file for the -complete list of parameters. - -| Parameter | Description | Default | -| ---------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | -| `manifests.flannel.flannelNetwork` | The IPv4 CIDR range to assign to the pod network. This should match the Kubernetes `PodCIDR`. | `192.168.0.0/16` | -| `manifests.flannel.cniPluginsImage` | The image used for installing the core-cni-plugins through the _initContainer_. | `gcr.io/spectro-images-public/release/cni-plugins/cni-plugins:v1.2.0` | -| `manifests.flannel.image_cni.repository` | The Flannel CNI image repository. | `docker.io/flannel/flannel-cni-plugin` | - -## Usage - -### Change the Backend - -If you need to change the backend type or update the backend port due to firewall or other restrictions, you can do so -by updating the pack YAML. The parameters `charts.flannel.backend` and `charts.flannel.backendPort` can be used to -change the default behavior. Refer to the official -[backend documentation](https://github.com/flannel-io/flannel/blob/v0.21.5/Documentation/backends.md) to learn more -about supported backends. - -```yaml -manifests: - flannel: - backend: "vxlan" - backendPort: 8472 -``` - -### Change MTU - -By default, Flannel will use the Maximum Transmission Unit (MTU) of the host interface. If you need to change the MTU, -you can do so by updating the pack YAML. The parameter `charts.flannel.mtu` can be used to change the MTU value. - -```yaml -manifests: - flannel: - mtu: 1500 -``` - - - - -:::warning - -All versions less than v0.20.x are considered deprecated. Upgrade to a newer version to take advantage of new features. - -::: - - - - -## Terraform - -Use the following Terraform snippet to reference the Flannel CNI pack in your Terraform template. - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "flannel" { - name = "cni-flannel" - version = "0.23.0" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - -## Reference - -- [Flannel Documentation](https://github.com/flannel-io/flannel/tree/master?tab=readme-ov-file#how-it-works) - -- [Configuration Options](https://github.com/flannel-io/flannel/blob/master/Documentation/configuration.md) diff --git a/docusaurus.config.js b/docusaurus.config.js index d2e252bbde..db0853f00e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -208,7 +208,7 @@ const config = { ], [ pluginPacksAndIntegrationsData, - { repositories: ["Palette Registry", "Spectro Addon Repo", "Palette Community Registry"] }, + { repositories: ["Palette Registry", "Public Repo", "Spectro Addon Repo", "Palette Community Registry"] }, ], pluginImportFontAwesomeIcons, function () { diff --git a/plugins/packs-integrations.js b/plugins/packs-integrations.js index 8e1847fa24..e0b6f77804 100644 --- a/plugins/packs-integrations.js +++ b/plugins/packs-integrations.js @@ -114,6 +114,7 @@ function combineAPICustomPackData(packsMData, packsPaletteDetailsData, customPac community: packMDValue.spec.registries[0].annotations?.source === "community", verified: packMDValue.spec.registries[0].annotations?.source === "spectrocloud", versions: allSupportedVersions, + // disabled: packMDValue.spec.registries[0].annotations?.disabled === "true", disabled: packMDValue.spec.registries[0].annotations?.disabled === "true", deprecated: packMDValue.spec.registries[0].annotations?.system_state === "deprecated", latestVersion: latestPackVersion, diff --git a/src/components/PacksReadme/PacksReadme.tsx b/src/components/PacksReadme/PacksReadme.tsx index 9e2e1e8200..5500b72c7d 100644 --- a/src/components/PacksReadme/PacksReadme.tsx +++ b/src/components/PacksReadme/PacksReadme.tsx @@ -198,8 +198,7 @@ export default function PacksReadme() { width={120} height={120} /> -
No content available
-
The content for this pack is not available.
+
No README found
); } diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 420f2a0223..a642e44f85 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -111,6 +111,10 @@ "name": "ceph-rbd-addon", "description": "A Container Storage Interface (CSI) driver, provisioner, snapshotter, resizer and attacher for Ceph RBD." }, + { + "name": "certmanager", + "description": "cert-manager adds certificates and certificate issuers as resource types in Kubernetes clusters, simplifying obtaining, renewing, and using those certificates. It can issue certificates from various supported sources, including Let’s Encrypt, HashiCorp Vault, Venafi, and private PKI. It also takes care of the certificate validity and attempts to renew certificates before expiry." + }, { "name": "cisco-appdynamics-collectors", "description": "AppDynamics Collector is a component within the AppDynamics platform that gathers and processes telemetry data from applications, databases, or other monitored systems, and sends this data to the AppDynamics backend for analysis and visualization." @@ -144,28 +148,16 @@ "description": "Calico is a networking and security solution that enables Kubernetes workloads and non-Kubernetes/legacy workloads to communicate seamlessly and securely. Calico consists of networking to secure network communication, and advanced network policy to secure cloud-native microservices/applications at scale." }, { - "name": "certmanager", - "description": "cert-manager adds certificates and certificate issuers as resource types in Kubernetes clusters, simplifying obtaining, renewing, and using those certificates. It can issue certificates from various supported sources, including Let’s Encrypt, HashiCorp Vault, Venafi, and private PKI. It also takes care of the certificate validity and attempts to renew certificates before expiry." - }, - { - "name": "cisco-appdynamics-collectors", - "description": "" - }, - { - "name": "", - "description": "" - }, - { - "name": "", - "description": "" + "name": "cni-kubenet", + "description": "Kubenet, a basic Kubernetes network plugin, configures pod network interfaces and routes using CNI plugins. It assigns IP addresses from a node-specific subnet, enabling pod-to-pod communication within nodes and relies on host network configurations for inter-node traffic." }, { - "name": "", - "description": "" + "name": "cni-multus", + "description": "Multus CNI is a container network interface plugin for Kubernetes that enables attaching multiple network interfaces to pods. Typically, in Kubernetes each pod only has one network interface,apart from a loopback. With Multus you can create a multi-homed pod that has multiple interfaces. This is accomplished by Multus acting as a meta-plugin, a CNI plugin that can call multiple other CNI plugins." }, { - "name": "", - "description": "" + "name": "cni-romana", + "description": "Romana is a new Software Defined Network (SDN) solution specifically designed for the Cloud Native architectural style. The result of this focus is that Romana cloud networks are less expensive to build, simpler to operate and deliver higher performance than cloud networks built using alternative SDN designs." }, { "name": "centos", From 6a52ed5776cba32e92585db32b6bba48460cbe2a Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Tue, 23 Jul 2024 10:28:49 -0700 Subject: [PATCH 11/22] chore: added more definitions --- static/packs-data/packs_information.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index a642e44f85..8aad1b99a5 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -159,6 +159,18 @@ "name": "cni-romana", "description": "Romana is a new Software Defined Network (SDN) solution specifically designed for the Cloud Native architectural style. The result of this focus is that Romana cloud networks are less expensive to build, simpler to operate and deliver higher performance than cloud networks built using alternative SDN designs." }, + { + "name": "cni-tke-global-router", + "description": "This pack deploys the TKE Global Router CNI plugin, which provides a global routing solution for Kubernetes clusters. The plugin is designed to work with the TKE Global Router controller to provide a global routing solution for Kubernetes clusters." + }, + { + "name": "cni-vpc-native-gke", + "description": "This pack deploys the GKE Container Network Interface (CNI) that provides network support to Google Kubernetes Engine (GKE) clusters. The CNI plugin is responsible for setting up the network interfaces on the nodes and pods, and for managing the IP addresses." + }, + { + "name": "cni-weavenet", + "description": "WeaveNet, a Kubernetes CNI plugin, uniquely creates a resilient virtual network for pod communication across clusters with zero configuration. It supports encryption, network policies, multicast, and automatic IP allocation, making it ideal for secure and scalable environments." + }, { "name": "centos", "description": "CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of RedHat Enterprise Linux (RHEL). It provides a rich base platform for open source communities to build upon. Spectro Cloudprovides CentOS as a development framework for its users." @@ -179,6 +191,10 @@ "name": "hello-universe", "description": "Hello Universe is a demo web application used to help users learn more about Palette and its features. It includes a click counter and funny Spectro Cloud-themed images." }, + { + "name": "cockroachdb-operator", + "description": "The CockroachDB Kubernetes Operator deploys CockroachDB on a Kubernetes cluster. You can use the Operator to manage the configuration of an active CockroachDB cluster." + }, { "name": "cost-analyzer", "description": "Kubecost is a cost monitoring and optimization application that offers real-time cost visibility and insights for Kubernetes clusters." From 33308d4f1567523a727655d622bee3800cad1b23 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Tue, 23 Jul 2024 12:21:59 -0700 Subject: [PATCH 12/22] docs: more content --- package-lock.json | 7105 ++++++---------------- static/packs-data/packs_information.json | 4 + 2 files changed, 1961 insertions(+), 5148 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d85dc720e..bcd98ede01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -102,8 +102,7 @@ }, "node_modules/@algolia/autocomplete-core": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", - "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "license": "MIT", "dependencies": { "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", "@algolia/autocomplete-shared": "1.9.3" @@ -111,8 +110,7 @@ }, "node_modules/@algolia/autocomplete-plugin-algolia-insights": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", - "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "license": "MIT", "dependencies": { "@algolia/autocomplete-shared": "1.9.3" }, @@ -122,8 +120,7 @@ }, "node_modules/@algolia/autocomplete-preset-algolia": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", - "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "license": "MIT", "dependencies": { "@algolia/autocomplete-shared": "1.9.3" }, @@ -134,8 +131,7 @@ }, "node_modules/@algolia/autocomplete-shared": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", - "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "license": "MIT", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" @@ -143,29 +139,25 @@ }, "node_modules/@algolia/cache-browser-local-storage": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz", - "integrity": "sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==", + "license": "MIT", "dependencies": { "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/cache-common": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.3.tgz", - "integrity": "sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==" + "license": "MIT" }, "node_modules/@algolia/cache-in-memory": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz", - "integrity": "sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==", + "license": "MIT", "dependencies": { "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/client-account": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.3.tgz", - "integrity": "sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==", + "license": "MIT", "dependencies": { "@algolia/client-common": "4.23.3", "@algolia/client-search": "4.23.3", @@ -174,8 +166,7 @@ }, "node_modules/@algolia/client-analytics": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.3.tgz", - "integrity": "sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==", + "license": "MIT", "dependencies": { "@algolia/client-common": "4.23.3", "@algolia/client-search": "4.23.3", @@ -185,8 +176,7 @@ }, "node_modules/@algolia/client-common": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.3.tgz", - "integrity": "sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==", + "license": "MIT", "dependencies": { "@algolia/requester-common": "4.23.3", "@algolia/transporter": "4.23.3" @@ -194,8 +184,7 @@ }, "node_modules/@algolia/client-personalization": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.3.tgz", - "integrity": "sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==", + "license": "MIT", "dependencies": { "@algolia/client-common": "4.23.3", "@algolia/requester-common": "4.23.3", @@ -204,8 +193,7 @@ }, "node_modules/@algolia/client-search": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.3.tgz", - "integrity": "sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==", + "license": "MIT", "dependencies": { "@algolia/client-common": "4.23.3", "@algolia/requester-common": "4.23.3", @@ -214,26 +202,22 @@ }, "node_modules/@algolia/events": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + "license": "MIT" }, "node_modules/@algolia/logger-common": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.3.tgz", - "integrity": "sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==" + "license": "MIT" }, "node_modules/@algolia/logger-console": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.3.tgz", - "integrity": "sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==", + "license": "MIT", "dependencies": { "@algolia/logger-common": "4.23.3" } }, "node_modules/@algolia/recommend": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.3.tgz", - "integrity": "sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==", + "license": "MIT", "dependencies": { "@algolia/cache-browser-local-storage": "4.23.3", "@algolia/cache-common": "4.23.3", @@ -250,29 +234,25 @@ }, "node_modules/@algolia/requester-browser-xhr": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz", - "integrity": "sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==", + "license": "MIT", "dependencies": { "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/requester-common": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.3.tgz", - "integrity": "sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==" + "license": "MIT" }, "node_modules/@algolia/requester-node-http": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz", - "integrity": "sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==", + "license": "MIT", "dependencies": { "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/transporter": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.3.tgz", - "integrity": "sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==", + "license": "MIT", "dependencies": { "@algolia/cache-common": "4.23.3", "@algolia/logger-common": "4.23.3", @@ -320,8 +300,7 @@ }, "node_modules/@ant-design/icons": { "version": "4.8.3", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-4.8.3.tgz", - "integrity": "sha512-HGlIQZzrEbAhpJR6+IGdzfbPym94Owr6JZkJ2QCCnOkPVIWMO2xgIVcOKnl8YcpijIo39V7l2qQL5fmtw56cMw==", + "license": "MIT", "dependencies": { "@ant-design/colors": "^6.0.0", "@ant-design/icons-svg": "^4.3.0", @@ -340,13 +319,11 @@ }, "node_modules/@ant-design/icons-svg": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", - "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" + "license": "MIT" }, "node_modules/@ant-design/icons/node_modules/@ant-design/colors": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", - "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "license": "MIT", "dependencies": { "@ctrl/tinycolor": "^3.4.0" } @@ -390,9 +367,8 @@ }, "node_modules/@argos-ci/cli": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@argos-ci/cli/-/cli-2.1.0.tgz", - "integrity": "sha512-nbubtKVqtGt4VW0AhSDxBL3wryk1INC9Fv4Hk+BEI72nATjA7OMWqZKs/iVQp4iDbrk7ydnzy+0dSNN1m5WPYg==", "dev": true, + "license": "MIT", "dependencies": { "@argos-ci/core": "2.2.0", "commander": "^12.0.0", @@ -408,9 +384,8 @@ }, "node_modules/@argos-ci/cli/node_modules/@argos-ci/core": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@argos-ci/core/-/core-2.2.0.tgz", - "integrity": "sha512-T5W37CZ6HZjRcVAXuPj0wUB/Fm4VdwLvKpQL9yqSwiJganeNz7u8AFYJ30ujSUJS1jdUViW5TNnmsgDjuvGyTQ==", "dev": true, + "license": "MIT", "dependencies": { "@argos-ci/util": "2.0.0", "axios": "^1.6.8", @@ -426,18 +401,16 @@ }, "node_modules/@argos-ci/cli/node_modules/@argos-ci/util": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@argos-ci/util/-/util-2.0.0.tgz", - "integrity": "sha512-wnsNQOjcNfxOi8cHWSv8+GhzUeIitDJgjhuSNR9zrfHB0Y3nDVI57S/mHRo+EMAaWwghfbrxW1ypRCXVseN0GA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.0.0" } }, "node_modules/@argos-ci/cli/node_modules/axios": { "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dev": true, + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -446,9 +419,8 @@ }, "node_modules/@argos-ci/cli/node_modules/boxen": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", "dev": true, + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.1", @@ -468,9 +440,8 @@ }, "node_modules/@argos-ci/cli/node_modules/camelcase": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -480,9 +451,8 @@ }, "node_modules/@argos-ci/cli/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -492,19 +462,17 @@ }, "node_modules/@argos-ci/cli/node_modules/commander": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", - "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@argos-ci/cli/node_modules/sharp": { "version": "0.33.4", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.4.tgz", - "integrity": "sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==", "dev": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", @@ -541,9 +509,8 @@ }, "node_modules/@argos-ci/cli/node_modules/update-notifier": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.0.0.tgz", - "integrity": "sha512-Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boxen": "^7.1.1", "chalk": "^5.3.0", @@ -674,8 +641,7 @@ }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -729,8 +695,7 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -758,8 +723,7 @@ }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -781,8 +745,7 @@ }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -1944,8 +1907,7 @@ }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -2181,8 +2143,7 @@ }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -2317,8 +2278,7 @@ }, "node_modules/@commitlint/cli": { "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.3.0.tgz", - "integrity": "sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==", + "license": "MIT", "dependencies": { "@commitlint/format": "^19.3.0", "@commitlint/lint": "^19.2.2", @@ -2337,8 +2297,7 @@ }, "node_modules/@commitlint/cli/node_modules/execa": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -2359,8 +2318,7 @@ }, "node_modules/@commitlint/cli/node_modules/get-stream": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -2370,16 +2328,14 @@ }, "node_modules/@commitlint/cli/node_modules/human-signals": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } }, "node_modules/@commitlint/cli/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -2389,8 +2345,7 @@ }, "node_modules/@commitlint/cli/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2400,8 +2355,7 @@ }, "node_modules/@commitlint/cli/node_modules/npm-run-path": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -2414,8 +2368,7 @@ }, "node_modules/@commitlint/cli/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -2428,8 +2381,7 @@ }, "node_modules/@commitlint/cli/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2439,8 +2391,7 @@ }, "node_modules/@commitlint/cli/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -2450,8 +2401,7 @@ }, "node_modules/@commitlint/cli/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2461,8 +2411,7 @@ }, "node_modules/@commitlint/config-conventional": { "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.2.2.tgz", - "integrity": "sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==", + "license": "MIT", "dependencies": { "@commitlint/types": "^19.0.3", "conventional-changelog-conventionalcommits": "^7.0.2" @@ -2473,8 +2422,7 @@ }, "node_modules/@commitlint/config-validator": { "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.0.3.tgz", - "integrity": "sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==", + "license": "MIT", "dependencies": { "@commitlint/types": "^19.0.3", "ajv": "^8.11.0" @@ -2485,8 +2433,7 @@ }, "node_modules/@commitlint/ensure": { "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.0.3.tgz", - "integrity": "sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==", + "license": "MIT", "dependencies": { "@commitlint/types": "^19.0.3", "lodash.camelcase": "^4.3.0", @@ -2501,16 +2448,14 @@ }, "node_modules/@commitlint/execute-rule": { "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.0.0.tgz", - "integrity": "sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==", + "license": "MIT", "engines": { "node": ">=v18" } }, "node_modules/@commitlint/format": { "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.3.0.tgz", - "integrity": "sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==", + "license": "MIT", "dependencies": { "@commitlint/types": "^19.0.3", "chalk": "^5.3.0" @@ -2521,8 +2466,7 @@ }, "node_modules/@commitlint/format/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -2532,8 +2476,7 @@ }, "node_modules/@commitlint/is-ignored": { "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.2.2.tgz", - "integrity": "sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==", + "license": "MIT", "dependencies": { "@commitlint/types": "^19.0.3", "semver": "^7.6.0" @@ -2544,8 +2487,7 @@ }, "node_modules/@commitlint/lint": { "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.2.2.tgz", - "integrity": "sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==", + "license": "MIT", "dependencies": { "@commitlint/is-ignored": "^19.2.2", "@commitlint/parse": "^19.0.3", @@ -2558,8 +2500,7 @@ }, "node_modules/@commitlint/load": { "version": "19.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.2.0.tgz", - "integrity": "sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==", + "license": "MIT", "dependencies": { "@commitlint/config-validator": "^19.0.3", "@commitlint/execute-rule": "^19.0.0", @@ -2578,8 +2519,7 @@ }, "node_modules/@commitlint/load/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -2589,8 +2529,7 @@ }, "node_modules/@commitlint/load/node_modules/cosmiconfig": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "license": "MIT", "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -2614,16 +2553,14 @@ }, "node_modules/@commitlint/message": { "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.0.0.tgz", - "integrity": "sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==", + "license": "MIT", "engines": { "node": ">=v18" } }, "node_modules/@commitlint/parse": { "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.0.3.tgz", - "integrity": "sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==", + "license": "MIT", "dependencies": { "@commitlint/types": "^19.0.3", "conventional-changelog-angular": "^7.0.0", @@ -2635,8 +2572,7 @@ }, "node_modules/@commitlint/read": { "version": "19.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.2.1.tgz", - "integrity": "sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==", + "license": "MIT", "dependencies": { "@commitlint/top-level": "^19.0.0", "@commitlint/types": "^19.0.3", @@ -2650,8 +2586,7 @@ }, "node_modules/@commitlint/read/node_modules/execa": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -2672,8 +2607,7 @@ }, "node_modules/@commitlint/read/node_modules/get-stream": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -2683,16 +2617,14 @@ }, "node_modules/@commitlint/read/node_modules/human-signals": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } }, "node_modules/@commitlint/read/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -2702,8 +2634,7 @@ }, "node_modules/@commitlint/read/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2713,8 +2644,7 @@ }, "node_modules/@commitlint/read/node_modules/npm-run-path": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -2727,8 +2657,7 @@ }, "node_modules/@commitlint/read/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -2741,8 +2670,7 @@ }, "node_modules/@commitlint/read/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2752,8 +2680,7 @@ }, "node_modules/@commitlint/read/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -2763,8 +2690,7 @@ }, "node_modules/@commitlint/read/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2774,8 +2700,7 @@ }, "node_modules/@commitlint/resolve-extends": { "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.1.0.tgz", - "integrity": "sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==", + "license": "MIT", "dependencies": { "@commitlint/config-validator": "^19.0.3", "@commitlint/types": "^19.0.3", @@ -2790,8 +2715,7 @@ }, "node_modules/@commitlint/resolve-extends/node_modules/import-meta-resolve": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2799,8 +2723,7 @@ }, "node_modules/@commitlint/rules": { "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.0.3.tgz", - "integrity": "sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==", + "license": "MIT", "dependencies": { "@commitlint/ensure": "^19.0.3", "@commitlint/message": "^19.0.0", @@ -2814,8 +2737,7 @@ }, "node_modules/@commitlint/rules/node_modules/execa": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -2836,8 +2758,7 @@ }, "node_modules/@commitlint/rules/node_modules/get-stream": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -2847,16 +2768,14 @@ }, "node_modules/@commitlint/rules/node_modules/human-signals": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } }, "node_modules/@commitlint/rules/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -2866,8 +2785,7 @@ }, "node_modules/@commitlint/rules/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2877,8 +2795,7 @@ }, "node_modules/@commitlint/rules/node_modules/npm-run-path": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -2891,8 +2808,7 @@ }, "node_modules/@commitlint/rules/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -2905,8 +2821,7 @@ }, "node_modules/@commitlint/rules/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2916,8 +2831,7 @@ }, "node_modules/@commitlint/rules/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -2927,8 +2841,7 @@ }, "node_modules/@commitlint/rules/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2938,16 +2851,14 @@ }, "node_modules/@commitlint/to-lines": { "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.0.0.tgz", - "integrity": "sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==", + "license": "MIT", "engines": { "node": ">=v18" } }, "node_modules/@commitlint/top-level": { "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.0.0.tgz", - "integrity": "sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==", + "license": "MIT", "dependencies": { "find-up": "^7.0.0" }, @@ -2957,8 +2868,7 @@ }, "node_modules/@commitlint/top-level/node_modules/find-up": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "license": "MIT", "dependencies": { "locate-path": "^7.2.0", "path-exists": "^5.0.0", @@ -2973,8 +2883,7 @@ }, "node_modules/@commitlint/top-level/node_modules/locate-path": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -2987,8 +2896,7 @@ }, "node_modules/@commitlint/top-level/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -3001,8 +2909,7 @@ }, "node_modules/@commitlint/top-level/node_modules/p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -3015,16 +2922,14 @@ }, "node_modules/@commitlint/top-level/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/@commitlint/top-level/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -3034,8 +2939,7 @@ }, "node_modules/@commitlint/types": { "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.0.3.tgz", - "integrity": "sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==", + "license": "MIT", "dependencies": { "@types/conventional-commits-parser": "^5.0.0", "chalk": "^5.3.0" @@ -3046,8 +2950,7 @@ }, "node_modules/@commitlint/types/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -3095,13 +2998,11 @@ }, "node_modules/@docsearch/css": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", - "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==" + "license": "MIT" }, "node_modules/@docsearch/react": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", - "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", + "license": "MIT", "dependencies": { "@algolia/autocomplete-core": "1.9.3", "@algolia/autocomplete-preset-algolia": "1.9.3", @@ -3131,8 +3032,7 @@ }, "node_modules/@docusaurus/core": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.4.0.tgz", - "integrity": "sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==", + "license": "MIT", "dependencies": { "@babel/core": "^7.23.3", "@babel/generator": "^7.23.3", @@ -3257,8 +3157,7 @@ }, "node_modules/@docusaurus/core/node_modules/css-declaration-sorter": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "license": "ISC", "engines": { "node": "^14 || ^16 || >=18" }, @@ -3268,8 +3167,7 @@ }, "node_modules/@docusaurus/core/node_modules/css-minimizer-webpack-plugin": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", - "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "cssnano": "^6.0.1", @@ -3311,8 +3209,7 @@ }, "node_modules/@docusaurus/core/node_modules/css-tree": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -3323,8 +3220,7 @@ }, "node_modules/@docusaurus/core/node_modules/cssnano": { "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", - "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "license": "MIT", "dependencies": { "cssnano-preset-default": "^6.1.2", "lilconfig": "^3.1.1" @@ -3342,8 +3238,7 @@ }, "node_modules/@docusaurus/core/node_modules/cssnano-preset-default": { "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "css-declaration-sorter": "^7.2.0", @@ -3385,8 +3280,7 @@ }, "node_modules/@docusaurus/core/node_modules/cssnano-utils": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -3396,8 +3290,7 @@ }, "node_modules/@docusaurus/core/node_modules/csso": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", "dependencies": { "css-tree": "~2.2.0" }, @@ -3408,8 +3301,7 @@ }, "node_modules/@docusaurus/core/node_modules/csso/node_modules/css-tree": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -3421,8 +3313,7 @@ }, "node_modules/@docusaurus/core/node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + "license": "CC0-1.0" }, "node_modules/@docusaurus/core/node_modules/has-flag": { "version": "4.0.0", @@ -3433,8 +3324,7 @@ }, "node_modules/@docusaurus/core/node_modules/lilconfig": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3444,13 +3334,11 @@ }, "node_modules/@docusaurus/core/node_modules/mdn-data": { "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + "license": "CC0-1.0" }, "node_modules/@docusaurus/core/node_modules/postcss-calc": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" @@ -3464,8 +3352,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-colormin": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -3481,8 +3368,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-convert-values": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -3496,8 +3382,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-discard-comments": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -3507,8 +3392,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-discard-duplicates": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -3518,8 +3402,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-discard-empty": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -3529,8 +3412,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-discard-overridden": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -3540,8 +3422,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-merge-longhand": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^6.1.1" @@ -3555,8 +3436,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-merge-rules": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -3572,8 +3452,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-minify-font-values": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -3586,8 +3465,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-minify-gradients": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "license": "MIT", "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^4.0.2", @@ -3602,8 +3480,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-minify-params": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "cssnano-utils": "^4.0.2", @@ -3618,8 +3495,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-minify-selectors": { "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -3632,8 +3508,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-normalize-charset": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -3643,8 +3518,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-normalize-display-values": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -3657,8 +3531,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-normalize-positions": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -3671,8 +3544,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-normalize-repeat-style": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -3685,8 +3557,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-normalize-string": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -3699,8 +3570,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-normalize-timing-functions": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -3713,8 +3583,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-normalize-unicode": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -3728,8 +3597,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-normalize-url": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -3742,8 +3610,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-normalize-whitespace": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -3756,8 +3623,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-ordered-values": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -3771,8 +3637,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-reduce-initial": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" @@ -3786,8 +3651,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-reduce-transforms": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -3800,8 +3664,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-svgo": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" @@ -3815,8 +3678,7 @@ }, "node_modules/@docusaurus/core/node_modules/postcss-unique-selectors": { "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -3830,8 +3692,7 @@ "node_modules/@docusaurus/core/node_modules/react-loadable": { "name": "@docusaurus/react-loadable", "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", - "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "license": "MIT", "dependencies": { "@types/react": "*" }, @@ -3841,8 +3702,7 @@ }, "node_modules/@docusaurus/core/node_modules/stylehacks": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.16" @@ -3866,8 +3726,7 @@ }, "node_modules/@docusaurus/core/node_modules/svgo": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -3890,16 +3749,14 @@ }, "node_modules/@docusaurus/core/node_modules/svgo/node_modules/commander": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/@docusaurus/cssnano-preset": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz", - "integrity": "sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==", + "license": "MIT", "dependencies": { "cssnano-preset-advanced": "^6.1.2", "postcss": "^8.4.38", @@ -3912,16 +3769,14 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/commander": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/@docusaurus/cssnano-preset/node_modules/css-declaration-sorter": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "license": "ISC", "engines": { "node": "^14 || ^16 || >=18" }, @@ -3931,8 +3786,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/css-tree": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -3943,8 +3797,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/cssnano-preset-advanced": { "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", - "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "license": "MIT", "dependencies": { "autoprefixer": "^10.4.19", "browserslist": "^4.23.0", @@ -3963,8 +3816,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/cssnano-preset-default": { "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "css-declaration-sorter": "^7.2.0", @@ -4006,8 +3858,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/cssnano-utils": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -4017,8 +3868,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/csso": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", "dependencies": { "css-tree": "~2.2.0" }, @@ -4029,8 +3879,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/csso/node_modules/css-tree": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -4042,18 +3891,15 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + "license": "CC0-1.0" }, "node_modules/@docusaurus/cssnano-preset/node_modules/mdn-data": { "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + "license": "CC0-1.0" }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-calc": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" @@ -4067,8 +3913,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-colormin": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -4084,8 +3929,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-convert-values": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -4099,8 +3943,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-discard-comments": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -4110,8 +3953,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-discard-duplicates": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -4121,8 +3963,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-discard-empty": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -4132,8 +3973,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-discard-overridden": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -4143,8 +3983,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-discard-unused": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", - "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -4157,8 +3996,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-merge-idents": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", - "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -4172,8 +4010,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-merge-longhand": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^6.1.1" @@ -4187,8 +4024,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-merge-rules": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -4204,8 +4040,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-minify-font-values": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4218,8 +4053,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-minify-gradients": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "license": "MIT", "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^4.0.2", @@ -4234,8 +4068,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-minify-params": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "cssnano-utils": "^4.0.2", @@ -4250,8 +4083,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-minify-selectors": { "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -4264,8 +4096,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-normalize-charset": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -4275,8 +4106,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-normalize-display-values": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4289,8 +4119,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-normalize-positions": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4303,8 +4132,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-normalize-repeat-style": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4317,8 +4145,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-normalize-string": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4331,8 +4158,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-normalize-timing-functions": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4345,8 +4171,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-normalize-unicode": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -4360,8 +4185,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-normalize-url": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4374,8 +4198,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-normalize-whitespace": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4388,8 +4211,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-ordered-values": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -4403,8 +4225,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-reduce-idents": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", - "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4417,8 +4238,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-reduce-initial": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" @@ -4432,8 +4252,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-reduce-transforms": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -4446,8 +4265,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-sort-media-queries": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", - "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "license": "MIT", "dependencies": { "sort-css-media-queries": "2.2.0" }, @@ -4460,8 +4278,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-svgo": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" @@ -4475,8 +4292,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-unique-selectors": { "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -4489,8 +4305,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/postcss-zindex": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", - "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -4500,16 +4315,14 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/sort-css-media-queries": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", - "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "license": "MIT", "engines": { "node": ">= 6.3.0" } }, "node_modules/@docusaurus/cssnano-preset/node_modules/stylehacks": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.16" @@ -4523,8 +4336,7 @@ }, "node_modules/@docusaurus/cssnano-preset/node_modules/svgo": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -4547,8 +4359,7 @@ }, "node_modules/@docusaurus/logger": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz", - "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==", + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" @@ -4559,8 +4370,7 @@ }, "node_modules/@docusaurus/logger/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4573,8 +4383,7 @@ }, "node_modules/@docusaurus/logger/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4588,8 +4397,7 @@ }, "node_modules/@docusaurus/logger/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -4599,21 +4407,18 @@ }, "node_modules/@docusaurus/logger/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "license": "MIT" }, "node_modules/@docusaurus/logger/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@docusaurus/logger/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4623,8 +4428,7 @@ }, "node_modules/@docusaurus/lqip-loader": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-3.4.0.tgz", - "integrity": "sha512-F//Gjqcz925zLL1l3Y3XOtQvn927GBIr9ZouvzWF4jHNKuuHBqzOPSADF5O/cT3Vq1ucPWooyhPBxYcvSGF4SA==", + "license": "MIT", "dependencies": { "@docusaurus/logger": "3.4.0", "file-loader": "^6.2.0", @@ -4638,8 +4442,7 @@ }, "node_modules/@docusaurus/mdx-loader": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz", - "integrity": "sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==", + "license": "MIT", "dependencies": { "@docusaurus/logger": "3.4.0", "@docusaurus/utils": "3.4.0", @@ -4676,8 +4479,7 @@ }, "node_modules/@docusaurus/module-type-aliases": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz", - "integrity": "sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==", + "license": "MIT", "dependencies": { "@docusaurus/types": "3.4.0", "@types/history": "^4.7.11", @@ -4695,8 +4497,7 @@ "node_modules/@docusaurus/module-type-aliases/node_modules/react-loadable": { "name": "@docusaurus/react-loadable", "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", - "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "license": "MIT", "dependencies": { "@types/react": "*" }, @@ -4706,8 +4507,7 @@ }, "node_modules/@docusaurus/plugin-client-redirects": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.4.0.tgz", - "integrity": "sha512-Pr8kyh/+OsmYCvdZhc60jy/FnrY6flD2TEAhl4rJxeVFxnvvRgEhoaIVX8q9MuJmaQoh6frPk94pjs7/6YgBDQ==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/logger": "3.4.0", @@ -4729,8 +4529,7 @@ }, "node_modules/@docusaurus/plugin-content-blog": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.4.0.tgz", - "integrity": "sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/logger": "3.4.0", @@ -4760,8 +4559,7 @@ }, "node_modules/@docusaurus/plugin-content-docs": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.4.0.tgz", - "integrity": "sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/logger": "3.4.0", @@ -4790,8 +4588,7 @@ }, "node_modules/@docusaurus/plugin-content-pages": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.4.0.tgz", - "integrity": "sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/mdx-loader": "3.4.0", @@ -4812,8 +4609,7 @@ }, "node_modules/@docusaurus/plugin-debug": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.4.0.tgz", - "integrity": "sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/types": "3.4.0", @@ -4832,8 +4628,7 @@ }, "node_modules/@docusaurus/plugin-google-analytics": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.4.0.tgz", - "integrity": "sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/types": "3.4.0", @@ -4850,8 +4645,7 @@ }, "node_modules/@docusaurus/plugin-google-gtag": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.4.0.tgz", - "integrity": "sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/types": "3.4.0", @@ -4869,8 +4663,7 @@ }, "node_modules/@docusaurus/plugin-google-tag-manager": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.4.0.tgz", - "integrity": "sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/types": "3.4.0", @@ -4887,8 +4680,7 @@ }, "node_modules/@docusaurus/plugin-ideal-image": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.4.0.tgz", - "integrity": "sha512-s8N/PRiv1R66UY+WX/2E9a+GjkRooXVcf0VJNEYA3yZ6c24Path15ivjmdMtKaSo/6OXYbejGlA4DJZ5TPLkCQ==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/lqip-loader": "3.4.0", @@ -4918,8 +4710,7 @@ }, "node_modules/@docusaurus/plugin-sitemap": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.4.0.tgz", - "integrity": "sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/logger": "3.4.0", @@ -4941,8 +4732,7 @@ }, "node_modules/@docusaurus/preset-classic": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.4.0.tgz", - "integrity": "sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/plugin-content-blog": "3.4.0", @@ -5002,8 +4792,7 @@ }, "node_modules/@docusaurus/theme-classic": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.4.0.tgz", - "integrity": "sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.4.0", "@docusaurus/mdx-loader": "3.4.0", @@ -5048,8 +4837,7 @@ }, "node_modules/@docusaurus/theme-common": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.4.0.tgz", - "integrity": "sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==", + "license": "MIT", "dependencies": { "@docusaurus/mdx-loader": "3.4.0", "@docusaurus/module-type-aliases": "3.4.0", @@ -5084,8 +4872,7 @@ }, "node_modules/@docusaurus/theme-search-algolia": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.4.0.tgz", - "integrity": "sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q==", + "license": "MIT", "dependencies": { "@docsearch/react": "^3.5.2", "@docusaurus/core": "3.4.0", @@ -5114,16 +4901,14 @@ }, "node_modules/@docusaurus/theme-search-algolia/node_modules/clsx": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@docusaurus/theme-translations": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.4.0.tgz", - "integrity": "sha512-zSxCSpmQCCdQU5Q4CnX/ID8CSUUI3fvmq4hU/GNP/XoAWtXo9SAVnM3TzpU8Gb//H3WCsT8mJcTfyOk3d9ftNg==", + "license": "MIT", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -5134,8 +4919,7 @@ }, "node_modules/@docusaurus/types": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.4.0.tgz", - "integrity": "sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==", + "license": "MIT", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", @@ -5154,8 +4938,7 @@ }, "node_modules/@docusaurus/utils": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz", - "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==", + "license": "MIT", "dependencies": { "@docusaurus/logger": "3.4.0", "@docusaurus/utils-common": "3.4.0", @@ -5192,8 +4975,7 @@ }, "node_modules/@docusaurus/utils-common": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz", - "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==", + "license": "MIT", "dependencies": { "tslib": "^2.6.0" }, @@ -5211,8 +4993,7 @@ }, "node_modules/@docusaurus/utils-validation": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz", - "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==", + "license": "MIT", "dependencies": { "@docusaurus/logger": "3.4.0", "@docusaurus/utils": "3.4.0", @@ -5229,8 +5010,7 @@ }, "node_modules/@docusaurus/utils/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", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5244,8 +5024,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5259,8 +5038,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/babel-plugin-svg-dynamic-title": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5274,8 +5052,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/babel-plugin-svg-em-dimensions": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5289,8 +5066,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/babel-plugin-transform-react-native-svg": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5304,8 +5080,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/babel-plugin-transform-svg-component": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -5319,8 +5094,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/babel-preset": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "license": "MIT", "dependencies": { "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", @@ -5344,8 +5118,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/core": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -5363,8 +5136,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/hast-util-to-babel-ast": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "license": "MIT", "dependencies": { "@babel/types": "^7.21.3", "entities": "^4.4.0" @@ -5379,8 +5151,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/plugin-jsx": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -5400,8 +5171,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/plugin-svgo": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "license": "MIT", "dependencies": { "cosmiconfig": "^8.1.3", "deepmerge": "^4.3.1", @@ -5420,8 +5190,7 @@ }, "node_modules/@docusaurus/utils/node_modules/@svgr/webpack": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@babel/plugin-transform-react-constant-elements": "^7.21.3", @@ -5442,16 +5211,14 @@ }, "node_modules/@docusaurus/utils/node_modules/commander": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/@docusaurus/utils/node_modules/css-tree": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -5462,8 +5229,7 @@ }, "node_modules/@docusaurus/utils/node_modules/csso": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", "dependencies": { "css-tree": "~2.2.0" }, @@ -5474,8 +5240,7 @@ }, "node_modules/@docusaurus/utils/node_modules/csso/node_modules/css-tree": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -5487,18 +5252,15 @@ }, "node_modules/@docusaurus/utils/node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + "license": "CC0-1.0" }, "node_modules/@docusaurus/utils/node_modules/mdn-data": { "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + "license": "CC0-1.0" }, "node_modules/@docusaurus/utils/node_modules/svgo": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -5519,16 +5281,6 @@ "url": "https://opencollective.com/svgo" } }, - "node_modules/@emnapi/runtime": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.1.1.tgz", - "integrity": "sha512-3bfqkzuR1KLx57nZfjr2NLnFOobvyS0aTszaEGCGqmYMVDRaGvgIZbjGSV/MHSSmLgQ/b9JFHQ5xm5WRZYd+XQ==", - "dev": true, - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", "license": "MIT", @@ -5763,9 +5515,8 @@ }, "node_modules/@eslint/js": { "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "devOptional": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -5856,10 +5607,8 @@ }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", "devOptional": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -5871,9 +5620,8 @@ }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "devOptional": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5881,9 +5629,8 @@ }, "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "devOptional": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5905,19 +5652,16 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "devOptional": true + "devOptional": true, + "license": "BSD-3-Clause" }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.4.tgz", - "integrity": "sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -5936,40 +5680,13 @@ "@img/sharp-libvips-darwin-arm64": "1.0.2" } }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.4.tgz", - "integrity": "sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.2" - } - }, "node_modules/@img/sharp-libvips-darwin-arm64": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz", - "integrity": "sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==", "cpu": [ "arm64" ], "dev": true, + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" @@ -5984,382 +5701,6 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz", - "integrity": "sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "macos": ">=10.13", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz", - "integrity": "sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz", - "integrity": "sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz", - "integrity": "sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz", - "integrity": "sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz", - "integrity": "sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz", - "integrity": "sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.4.tgz", - "integrity": "sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.2" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.4.tgz", - "integrity": "sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.2" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.4.tgz", - "integrity": "sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.31", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.2" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.4.tgz", - "integrity": "sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.2" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.4.tgz", - "integrity": "sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.2" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.4.tgz", - "integrity": "sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.2" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.4.tgz", - "integrity": "sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==", - "cpu": [ - "wasm32" - ], - "dev": true, - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.1.1" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.4.tgz", - "integrity": "sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.4.tgz", - "integrity": "sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "dev": true, @@ -7420,9 +6761,8 @@ }, "node_modules/@octokit/plugin-paginate-rest": { "version": "11.3.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.0.tgz", - "integrity": "sha512-n4znWfRinnUQF6TPyxs7EctSAA3yVSP4qlJP2YgI3g9d4Ae2n5F3XDOjbUluKRxPU3rfsgpOboI4O4VtPc6Ilg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.5.0" }, @@ -7435,15 +6775,13 @@ }, "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { "version": "22.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", - "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^22.2.0" } @@ -7897,8 +7235,7 @@ }, "node_modules/@redocly/openapi-core/node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -7916,18 +7253,15 @@ }, "node_modules/@redocly/openapi-core/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" }, "node_modules/@redocly/openapi-core/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "license": "BSD-2-Clause" }, "node_modules/@redocly/openapi-core/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -7957,9 +7291,8 @@ }, "node_modules/@sec-ant/readable-stream": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", - "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@semantic-release/changelog": { "version": "6.0.3", @@ -8061,6 +7394,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", "dev": true, + "license": "MIT", "dependencies": { "@semantic-release/error": "^3.0.0", "aggregate-error": "^3.0.0", @@ -8079,10 +7413,11 @@ } }, "node_modules/@semantic-release/github": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.0.4.tgz", - "integrity": "sha512-eHCfW3jlzax5OKd5nTovlvoCdg+b9YBa31M2JGT1KmzmJR3TIalu2ahVU+V/xATVeOx+S8fbCiPnBBgMlzH5Vw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.1.1.tgz", + "integrity": "sha512-sSmsBKGpAlTtXf9rUJf/si16p+FwPEsvsJRjl3KCwFP0WywaSpynvUhlYvE18n5rzkQNbGJnObAKIoo3xFMSjA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/core": "^6.0.0", "@octokit/plugin-paginate-rest": "^11.0.0", @@ -8228,6 +7563,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", "dev": true, + "license": "MIT", "dependencies": { "@semantic-release/error": "^4.0.0", "aggregate-error": "^5.0.0", @@ -8260,9 +7596,8 @@ }, "node_modules/@semantic-release/npm/node_modules/@sindresorhus/merge-streams": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -8312,9 +7647,8 @@ }, "node_modules/@semantic-release/npm/node_modules/execa": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.1.0.tgz", - "integrity": "sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", @@ -8338,9 +7672,8 @@ }, "node_modules/@semantic-release/npm/node_modules/figures": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", - "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "dev": true, + "license": "MIT", "dependencies": { "is-unicode-supported": "^2.0.0" }, @@ -8353,9 +7686,8 @@ }, "node_modules/@semantic-release/npm/node_modules/get-stream": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "license": "MIT", "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" @@ -8369,9 +7701,8 @@ }, "node_modules/@semantic-release/npm/node_modules/human-signals": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", - "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -8389,9 +7720,8 @@ }, "node_modules/@semantic-release/npm/node_modules/is-stream": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -8401,9 +7731,8 @@ }, "node_modules/@semantic-release/npm/node_modules/is-unicode-supported": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", - "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -8413,9 +7742,8 @@ }, "node_modules/@semantic-release/npm/node_modules/npm-run-path": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -8428,9 +7756,8 @@ }, "node_modules/@semantic-release/npm/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8440,9 +7767,8 @@ }, "node_modules/@semantic-release/npm/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -8452,9 +7778,8 @@ }, "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", - "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -9238,8 +8563,7 @@ }, "node_modules/@types/conventional-commits-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -9308,8 +8632,7 @@ }, "node_modules/@types/gtag.js": { "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", - "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==" + "license": "MIT" }, "node_modules/@types/hast": { "version": "3.0.3", @@ -9374,9 +8697,8 @@ }, "node_modules/@types/jest": { "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -9580,8 +8902,7 @@ }, "node_modules/@types/sax": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", - "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -9660,9 +8981,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", - "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "7.15.0", @@ -9693,9 +9013,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.15.0.tgz", - "integrity": "sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "7.15.0", "@typescript-eslint/types": "7.15.0", @@ -9721,9 +9040,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", - "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "7.15.0", "@typescript-eslint/visitor-keys": "7.15.0" @@ -9738,9 +9056,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", - "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || >=20.0.0" }, @@ -9751,9 +9068,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", - "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "7.15.0", "@typescript-eslint/visitor-keys": "7.15.0", @@ -9779,9 +9095,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", - "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "7.15.0", "eslint-visitor-keys": "^3.4.3" @@ -9796,9 +9111,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/minimatch": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9811,9 +9125,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/semver": { "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -9823,9 +9136,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", - "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "7.15.0", "@typescript-eslint/visitor-keys": "7.15.0" @@ -9840,9 +9152,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", - "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "7.15.0", "@typescript-eslint/utils": "7.15.0", @@ -9867,9 +9178,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", - "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || >=20.0.0" }, @@ -9880,9 +9190,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", - "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "7.15.0", "@typescript-eslint/visitor-keys": "7.15.0", @@ -9908,9 +9217,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9923,9 +9231,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -9935,9 +9242,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", - "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@typescript-eslint/scope-manager": "7.15.0", @@ -9957,9 +9263,8 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", - "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "7.15.0", "eslint-visitor-keys": "^3.4.3" @@ -10244,8 +9549,7 @@ }, "node_modules/algoliasearch": { "version": "4.23.3", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.3.tgz", - "integrity": "sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==", + "license": "MIT", "dependencies": { "@algolia/cache-browser-local-storage": "4.23.3", "@algolia/cache-common": "4.23.3", @@ -10266,8 +9570,7 @@ }, "node_modules/algoliasearch-helper": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.21.0.tgz", - "integrity": "sha512-hjVOrL15I3Y3K8xG0icwG1/tWE+MocqBrhW6uVBWpU+/kVEMK0BnM2xdssj6mZM61eJ4iRxHR0djEI3ENOpR8w==", + "license": "MIT", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -10456,8 +9759,7 @@ }, "node_modules/antd/node_modules/@ant-design/icons": { "version": "5.3.7", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.7.tgz", - "integrity": "sha512-bCPXTAg66f5bdccM4TT21SQBDO1Ek2gho9h3nO9DAKXJP4sq+5VBjrQMSxMVXSB3HyEz+cUbHQ5+6ogxCOpaew==", + "license": "MIT", "dependencies": { "@ant-design/colors": "^7.0.0", "@ant-design/icons-svg": "^4.4.0", @@ -10544,8 +9846,7 @@ }, "node_modules/arg": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", @@ -10612,9 +9913,8 @@ }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" @@ -10749,9 +10049,8 @@ }, "node_modules/array.prototype.findlast": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -10821,9 +10120,8 @@ }, "node_modules/array.prototype.toreversed": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -10833,9 +10131,8 @@ }, "node_modules/array.prototype.tosorted": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", - "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -10846,9 +10143,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.5", @@ -11004,8 +10300,6 @@ }, "node_modules/autoprefixer": { "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "funding": [ { "type": "opencollective", @@ -11020,6 +10314,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-lite": "^1.0.30001599", @@ -11040,8 +10335,7 @@ }, "node_modules/available-typed-arrays": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -11083,8 +10377,7 @@ }, "node_modules/axios-retry": { "version": "3.9.1", - "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.9.1.tgz", - "integrity": "sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.15.4", "is-retry-allowed": "^2.2.0" @@ -11092,8 +10385,7 @@ }, "node_modules/axios-retry/node_modules/is-retry-allowed": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", - "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -11306,8 +10598,7 @@ }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -12521,8 +11812,6 @@ }, "node_modules/browserslist": { "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "funding": [ { "type": "opencollective", @@ -12537,6 +11826,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", @@ -12735,8 +12025,7 @@ }, "node_modules/call-bind": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -12824,8 +12113,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001627", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001627.tgz", - "integrity": "sha512-4zgNiB8nTyV/tHhwZrFs88ryjls/lHiqFhrxCW4qSTeuRByBVnPYpDInchOIySWknznucaf31Z4KYqjfbrecVw==", "funding": [ { "type": "opencollective", @@ -12839,7 +12126,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/cardinal": { "version": "2.1.1", @@ -13734,8 +13022,7 @@ }, "node_modules/conventional-changelog-angular": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, @@ -13745,8 +13032,7 @@ }, "node_modules/conventional-changelog-conventionalcommits": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", - "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", + "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, @@ -13778,9 +13064,8 @@ }, "node_modules/conventional-changelog-writer/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -13799,8 +13084,7 @@ }, "node_modules/conventional-commits-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "license": "MIT", "dependencies": { "is-text-path": "^2.0.0", "JSONStream": "^1.3.5", @@ -13816,8 +13100,7 @@ }, "node_modules/conventional-commits-parser/node_modules/is-text-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", - "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", + "license": "MIT", "dependencies": { "text-extensions": "^2.0.0" }, @@ -13827,8 +13110,7 @@ }, "node_modules/conventional-commits-parser/node_modules/meow": { "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "license": "MIT", "engines": { "node": ">=16.10" }, @@ -13838,16 +13120,14 @@ }, "node_modules/conventional-commits-parser/node_modules/split2": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", "engines": { "node": ">= 10.x" } }, "node_modules/conventional-commits-parser/node_modules/text-extensions": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", - "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -14045,8 +13325,7 @@ }, "node_modules/cosmiconfig-typescript-loader": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", - "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "license": "MIT", "dependencies": { "jiti": "^1.19.1" }, @@ -14195,9 +13474,8 @@ }, "node_modules/cross-fetch/node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -14215,21 +13493,18 @@ }, "node_modules/cross-fetch/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-fetch/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/cross-fetch/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -14605,8 +13880,7 @@ }, "node_modules/dargs": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", - "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -14627,8 +13901,7 @@ }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -14648,9 +13921,8 @@ }, "node_modules/data-view-buffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -14665,9 +13937,8 @@ }, "node_modules/data-view-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -14682,9 +13953,8 @@ }, "node_modules/data-view-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -15269,8 +14539,7 @@ }, "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -15402,8 +14671,7 @@ }, "node_modules/detect-libc": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", "engines": { "node": ">=8" } @@ -15774,8 +15042,7 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-whitespace": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", - "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -15806,8 +15073,7 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-definitions": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", - "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -15820,8 +15086,7 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-from-markdown": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -15843,8 +15108,7 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-hast": { "version": "12.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", - "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", @@ -15862,8 +15126,7 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-string": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0" }, @@ -15874,8 +15137,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", "funding": [ { "type": "GitHub Sponsors", @@ -15886,6 +15147,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -15908,8 +15170,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-core-commonmark": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", "funding": [ { "type": "GitHub Sponsors", @@ -15920,6 +15180,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", @@ -15941,8 +15202,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-destination": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", "funding": [ { "type": "GitHub Sponsors", @@ -15953,6 +15212,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -15961,8 +15221,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-label": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", "funding": [ { "type": "GitHub Sponsors", @@ -15973,6 +15231,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -15982,8 +15241,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-title": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15994,6 +15251,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -16003,8 +15261,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-whitespace": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", "funding": [ { "type": "GitHub Sponsors", @@ -16015,6 +15271,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -16024,8 +15281,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-chunked": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", "funding": [ { "type": "GitHub Sponsors", @@ -16036,14 +15291,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-classify-character": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", "funding": [ { "type": "GitHub Sponsors", @@ -16054,6 +15308,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -16062,8 +15317,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-combine-extensions": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", "funding": [ { "type": "GitHub Sponsors", @@ -16074,6 +15327,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -16081,8 +15335,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-decode-numeric-character-reference": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", "funding": [ { "type": "GitHub Sponsors", @@ -16093,14 +15345,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-decode-string": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", "funding": [ { "type": "GitHub Sponsors", @@ -16111,6 +15362,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -16120,8 +15372,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-encode": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", "funding": [ { "type": "GitHub Sponsors", @@ -16131,12 +15381,11 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-html-tag-name": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16146,12 +15395,11 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-normalize-identifier": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16162,14 +15410,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-resolve-all": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", "funding": [ { "type": "GitHub Sponsors", @@ -16180,14 +15427,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-types": "^1.0.0" } }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-sanitize-uri": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", "funding": [ { "type": "GitHub Sponsors", @@ -16198,6 +15444,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-encode": "^1.0.0", @@ -16206,8 +15453,6 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-subtokenize": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", "funding": [ { "type": "GitHub Sponsors", @@ -16218,6 +15463,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -16231,13 +15477,11 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/react-is": { "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + "license": "MIT" }, "node_modules/docusaurus-theme-openapi-docs/node_modules/react-markdown": { "version": "8.0.7", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", - "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==", + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "@types/prop-types": "^15.0.0", @@ -16279,8 +15523,7 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/remark-parse": { "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", - "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", @@ -16293,8 +15536,7 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/remark-rehype": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", @@ -16360,8 +15602,7 @@ }, "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-generated": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", - "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -16571,9 +15812,8 @@ }, "node_modules/dotenv": { "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -16854,8 +16094,7 @@ }, "node_modules/electron-to-chromium": { "version": "1.4.788", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.788.tgz", - "integrity": "sha512-ubp5+Ev/VV8KuRoWnfP2QF2Bg+O2ZFdb49DiiNbz2VmgkIqrnyYaqIOqj8A6K/3p1xV0QcU5hBQ1+BmB6ot1OA==" + "license": "ISC" }, "node_modules/elliptic": { "version": "6.5.4", @@ -17059,8 +16298,7 @@ }, "node_modules/env-paths": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -17086,9 +16324,8 @@ }, "node_modules/es-abstract": { "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", @@ -17146,8 +16383,7 @@ }, "node_modules/es-define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -17157,8 +16393,7 @@ }, "node_modules/es-errors": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -17189,9 +16424,8 @@ }, "node_modules/es-iterator-helpers": { "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -17218,9 +16452,8 @@ }, "node_modules/es-object-atoms": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -17230,9 +16463,8 @@ }, "node_modules/es-set-tostringtag": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4", "has-tostringtag": "^1.0.2", @@ -17380,9 +16612,8 @@ }, "node_modules/eslint": { "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "devOptional": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -18504,9 +17735,8 @@ }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -19544,9 +18774,8 @@ }, "node_modules/eslint-plugin-react": { "version": "7.34.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", - "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlast": "^1.2.4", @@ -19623,9 +18852,8 @@ }, "node_modules/eslint-plugin-react/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -20598,8 +19826,6 @@ }, "node_modules/fetch-blob": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "funding": [ { "type": "github", @@ -20610,6 +19836,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -21391,8 +20618,7 @@ }, "node_modules/formdata-polyfill": { "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -21621,6 +20847,34 @@ "node": ">=14" } }, + "node_modules/gaxios/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/gaxios/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, "node_modules/gaxios/node_modules/uuid": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", @@ -21635,6 +20889,24 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/gaxios/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/gaxios/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "license": "MIT", @@ -21651,9 +20923,8 @@ }, "node_modules/get-east-asian-width": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -21663,8 +20934,7 @@ }, "node_modules/get-intrinsic": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -21714,9 +20984,8 @@ }, "node_modules/get-symbol-description": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "es-errors": "^1.3.0", @@ -21841,8 +21110,7 @@ }, "node_modules/git-raw-commits": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", - "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "license": "MIT", "dependencies": { "dargs": "^8.0.0", "meow": "^12.0.1", @@ -21857,8 +21125,7 @@ }, "node_modules/git-raw-commits/node_modules/meow": { "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "license": "MIT", "engines": { "node": ">=16.10" }, @@ -21868,8 +21135,7 @@ }, "node_modules/git-raw-commits/node_modules/split2": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", "engines": { "node": ">= 10.x" } @@ -22295,8 +21561,7 @@ }, "node_modules/global-directory": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", - "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "license": "MIT", "dependencies": { "ini": "4.1.1" }, @@ -22309,8 +21574,7 @@ }, "node_modules/global-directory/node_modules/ini": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", - "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -23058,8 +22322,7 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -23069,8 +22332,7 @@ }, "node_modules/has-proto": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -23109,8 +22371,7 @@ }, "node_modules/has-tostringtag": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -23228,8 +22489,7 @@ }, "node_modules/hasown": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -23666,8 +22926,7 @@ }, "node_modules/html-url-attributes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", - "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -23962,8 +23221,7 @@ }, "node_modules/ignore": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -24485,9 +23743,8 @@ }, "node_modules/internal-slot": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.0", @@ -24610,9 +23867,8 @@ }, "node_modules/is-array-buffer": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" @@ -24772,9 +24028,8 @@ }, "node_modules/is-data-view": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, + "license": "MIT", "dependencies": { "is-typed-array": "^1.1.13" }, @@ -24937,9 +24192,8 @@ }, "node_modules/is-in-ci": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz", - "integrity": "sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==", "dev": true, + "license": "MIT", "bin": { "is-in-ci": "cli.js" }, @@ -25072,9 +24326,8 @@ }, "node_modules/is-negative-zero": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -25238,9 +24491,8 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7" }, @@ -25317,8 +24569,7 @@ }, "node_modules/is-typed-array": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.14" }, @@ -25507,9 +24758,8 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -30022,8 +29272,7 @@ }, "node_modules/lodash.kebabcase": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", @@ -30035,18 +29284,15 @@ }, "node_modules/lodash.mergewith": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + "license": "MIT" }, "node_modules/lodash.snakecase": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + "license": "MIT" }, "node_modules/lodash.startcase": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==" + "license": "MIT" }, "node_modules/lodash.uniq": { "version": "4.5.0", @@ -30059,8 +29305,7 @@ }, "node_modules/lodash.upperfirst": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" + "license": "MIT" }, "node_modules/log-update": { "version": "5.0.1", @@ -30277,8 +29522,7 @@ }, "node_modules/markdown-to-jsx": { "version": "7.4.7", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.7.tgz", - "integrity": "sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==", + "license": "MIT", "engines": { "node": ">= 10" }, @@ -34993,11 +34237,9 @@ }, "node_modules/netlify-cli": { "version": "17.31.0", - "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-17.31.0.tgz", - "integrity": "sha512-2YULK0AabMg8+xKzx1UL/MtXPQUuKuPEAH0jZwK3j/tvVwn7d6HFmWrjzl/ESh7sErUgh5KAyrcckyD/PmFEiw==", "dev": true, "hasInstallScript": true, - "hasShrinkwrap": true, + "license": "MIT", "dependencies": { "@bugsnag/js": "7.23.0", "@fastify/static": "7.0.4", @@ -35124,9 +34366,8 @@ }, "node_modules/netlify-cli/node_modules/@babel/code-frame": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" @@ -35137,27 +34378,24 @@ }, "node_modules/netlify-cli/node_modules/@babel/helper-string-parser": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/netlify-cli/node_modules/@babel/helper-validator-identifier": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/netlify-cli/node_modules/@babel/highlight": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", @@ -35170,9 +34408,8 @@ }, "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -35182,9 +34419,8 @@ }, "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -35196,27 +34432,24 @@ }, "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -35226,9 +34459,8 @@ }, "node_modules/netlify-cli/node_modules/@babel/parser": { "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -35238,9 +34470,8 @@ }, "node_modules/netlify-cli/node_modules/@babel/types": { "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", - "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.24.6", "@babel/helper-validator-identifier": "^7.24.6", @@ -35252,18 +34483,16 @@ }, "node_modules/netlify-cli/node_modules/@bugsnag/browser": { "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.22.7.tgz", - "integrity": "sha512-70jFkWKscK2osm7bnFbPLevrzHClrygM3UcKetKs/l81Xuzlxnu1SS3onN5OUl9kd9RN4XMFr46Pv5jSqWqImQ==", "dev": true, + "license": "MIT", "dependencies": { "@bugsnag/core": "^7.22.7" } }, "node_modules/netlify-cli/node_modules/@bugsnag/core": { "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-7.22.7.tgz", - "integrity": "sha512-9DPWBkkBjhFJc5dCFy/wVC3HE0Aw3ZiLJKjyAxgywSKbILgtpD+qT1Xe8sacWyxU92znamlZ8H8ziQOe7jhhbA==", "dev": true, + "license": "MIT", "dependencies": { "@bugsnag/cuid": "^3.0.0", "@bugsnag/safe-json-stringify": "^6.0.0", @@ -35274,15 +34503,13 @@ }, "node_modules/netlify-cli/node_modules/@bugsnag/cuid": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.1.0.tgz", - "integrity": "sha512-U6vPVhFPLWLXQIGnmk/uPbyidB5xLVFfEdZDmmLbv41Be67re4mNsjMukHdUv669RXOWTDQNJ+bMODhuWpshkw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@bugsnag/js": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.23.0.tgz", - "integrity": "sha512-gnCpcv/v6p3CtbwwDuAjVYPPNq4NMVj4hp70MiB3OGJ+LmIS66CwElDiyvRMA8Ar6OzCF4joTeaNG5bD9cM41w==", "dev": true, + "license": "MIT", "dependencies": { "@bugsnag/browser": "^7.22.7", "@bugsnag/node": "^7.23.0" @@ -35290,9 +34517,8 @@ }, "node_modules/netlify-cli/node_modules/@bugsnag/node": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.23.0.tgz", - "integrity": "sha512-eXA8/h+J2booEMlKsuRl1NAszebwm4KZ9zxCSg/xN4sw5boXia7kMifLf8QTqk+UBtIhNKBsyQQKHXbawKyE6Q==", "dev": true, + "license": "MIT", "dependencies": { "@bugsnag/core": "^7.22.7", "byline": "^5.0.0", @@ -35304,24 +34530,21 @@ }, "node_modules/netlify-cli/node_modules/@bugsnag/safe-json-stringify": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz", - "integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@colors/colors": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/netlify-cli/node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -35331,9 +34554,8 @@ }, "node_modules/netlify-cli/node_modules/@dabh/diagnostics": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", "dev": true, + "license": "MIT", "dependencies": { "colorspace": "1.1.x", "enabled": "2.0.x", @@ -35342,9 +34564,8 @@ }, "node_modules/netlify-cli/node_modules/@dependents/detective-less": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-4.1.0.tgz", - "integrity": "sha512-KrkT6qO5NxqNfy68sBl6CTSoJ4SNDIS5iQArkibhlbGU4LaDukZ3q2HIkh8aUKDio6o4itU4xDR7t82Y2eP1Bg==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^6.0.1" @@ -35353,78 +34574,13 @@ "node": ">=14" } }, - "node_modules/netlify-cli/node_modules/@esbuild/aix-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", - "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/android-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", - "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/android-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", - "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/android-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", - "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/netlify-cli/node_modules/@esbuild/darwin-arm64": { "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", - "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -35433,308 +34589,18 @@ "node": ">=12" } }, - "node_modules/netlify-cli/node_modules/@esbuild/darwin-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", - "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", - "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", - "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/linux-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", - "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/linux-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", - "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/linux-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", - "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/linux-loong64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", - "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", - "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", - "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", - "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/linux-s390x": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", - "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/linux-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", - "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", - "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", - "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/sunos-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", - "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/win32-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", - "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/win32-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", - "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@esbuild/win32-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", - "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/netlify-cli/node_modules/@fastify/accept-negotiator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz", - "integrity": "sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/netlify-cli/node_modules/@fastify/ajv-compiler": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz", - "integrity": "sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.11.0", "ajv-formats": "^2.1.1", @@ -35743,9 +34609,8 @@ }, "node_modules/netlify-cli/node_modules/@fastify/ajv-compiler/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -35759,39 +34624,34 @@ }, "node_modules/netlify-cli/node_modules/@fastify/ajv-compiler/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@fastify/error": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.1.tgz", - "integrity": "sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@fastify/fast-json-stringify-compiler": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", - "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", "dev": true, + "license": "MIT", "dependencies": { "fast-json-stringify": "^5.7.0" } }, "node_modules/netlify-cli/node_modules/@fastify/merge-json-schemas": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@fastify/merge-json-schemas/-/merge-json-schemas-0.1.1.tgz", - "integrity": "sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" } }, "node_modules/netlify-cli/node_modules/@fastify/send": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@fastify/send/-/send-2.0.1.tgz", - "integrity": "sha512-8jdouu0o5d0FMq1+zCKeKXc1tmOQ5tTGYdQP3MpyF9+WWrZT1KCBdh6hvoEYxOm3oJG/akdE9BpehLiJgYRvGw==", "dev": true, + "license": "MIT", "dependencies": { "@lukeed/ms": "^2.0.1", "escape-html": "~1.0.3", @@ -35802,18 +34662,16 @@ }, "node_modules/netlify-cli/node_modules/@fastify/send/node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/@fastify/send/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -35827,9 +34685,8 @@ }, "node_modules/netlify-cli/node_modules/@fastify/send/node_modules/mime": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -35839,9 +34696,8 @@ }, "node_modules/netlify-cli/node_modules/@fastify/static": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@fastify/static/-/static-7.0.4.tgz", - "integrity": "sha512-p2uKtaf8BMOZWLs6wu+Ihg7bWNBdjNgCwDza4MJtTqg+5ovKmcbgbR9Xs5/smZ1YISfzKOCNYmZV8LaCj+eJ1Q==", "dev": true, + "license": "MIT", "dependencies": { "@fastify/accept-negotiator": "^1.0.0", "@fastify/send": "^2.0.0", @@ -35853,18 +34709,16 @@ }, "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/glob": { "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", @@ -35884,9 +34738,8 @@ }, "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/minimatch": { "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -35899,45 +34752,39 @@ }, "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/minipass": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", - "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/netlify-cli/node_modules/@humanwhocodes/momoa": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", - "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.10.0" } }, "node_modules/netlify-cli/node_modules/@iarna/toml": { "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/@import-maps/resolve": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", - "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@ioredis/commands": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -35952,15 +34799,13 @@ }, "node_modules/netlify-cli/node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -35975,9 +34820,8 @@ }, "node_modules/netlify-cli/node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -35992,9 +34836,8 @@ }, "node_modules/netlify-cli/node_modules/@jest/types": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -36008,18 +34851,16 @@ }, "node_modules/netlify-cli/node_modules/@jest/types/node_modules/@types/yargs": { "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/netlify-cli/node_modules/@jest/types/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -36032,9 +34873,8 @@ }, "node_modules/netlify-cli/node_modules/@jest/types/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -36048,9 +34888,8 @@ }, "node_modules/netlify-cli/node_modules/@jest/types/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -36060,15 +34899,13 @@ }, "node_modules/netlify-cli/node_modules/@jest/types/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@jest/types/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -36078,24 +34915,21 @@ }, "node_modules/netlify-cli/node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/netlify-cli/node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -36103,18 +34937,16 @@ }, "node_modules/netlify-cli/node_modules/@lukeed/ms": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.1.tgz", - "integrity": "sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", - "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -36132,9 +34964,8 @@ }, "node_modules/netlify-cli/node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -36145,9 +34976,8 @@ }, "node_modules/netlify-cli/node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -36165,24 +34995,21 @@ }, "node_modules/netlify-cli/node_modules/@netlify/binary-info": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@netlify/binary-info/-/binary-info-1.0.0.tgz", - "integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==", - "dev": true + "dev": true, + "license": "Apache 2" }, "node_modules/netlify-cli/node_modules/@netlify/blobs": { "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-7.3.0.tgz", - "integrity": "sha512-wN/kNTZo4xjlUM/C0WILOkJbe8p4AFquSGkZEIoIcgnsx5ikp2GyqGiq1WMLee7QdbnqeIV2g2hn/PjT324E5w==", "dev": true, + "license": "MIT", "engines": { "node": "^14.16.0 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/build": { "version": "29.50.0", - "resolved": "https://registry.npmjs.org/@netlify/build/-/build-29.50.0.tgz", - "integrity": "sha512-9/xFufOlqB5jydYnqqzO8N93YP2ZFJ6qAdRgo/JclJyxQ3yNBfVLzwWiY7FhKpT0p/laag0RJ/a8TNENwHhPhg==", "dev": true, + "license": "MIT", "dependencies": { "@bugsnag/js": "^7.0.0", "@netlify/blobs": "^7.3.0", @@ -36261,9 +35088,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build-info": { "version": "7.13.2", - "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-7.13.2.tgz", - "integrity": "sha512-smzhIgcms6Z/v2cct90l8ncBbnA5kvknj5/quhwyM6UHUycgMKFlA22qkB0KLj9shwL1Lkh7iQW751JwhSaP9g==", "dev": true, + "license": "MIT", "dependencies": { "@bugsnag/js": "^7.20.0", "@iarna/toml": "^2.2.5", @@ -36284,18 +35110,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/dot-prop": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", - "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^2.11.2" }, @@ -36308,9 +35132,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -36324,9 +35147,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -36339,18 +35161,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/read-pkg": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", "dev": true, + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.1", "normalize-package-data": "^3.0.2", @@ -36366,9 +35186,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/yaml": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", "dev": true, + "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -36378,9 +35197,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/ansi-escapes": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", - "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -36390,24 +35208,21 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -36417,9 +35232,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/execa": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -36440,9 +35254,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/figures": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" @@ -36456,9 +35269,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -36472,18 +35284,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/human-signals": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.20.0" } }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/indent-string": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -36493,9 +35303,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -36505,9 +35314,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/map-obj": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -36517,9 +35325,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/minimatch": { "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -36532,9 +35339,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/npm-run-path": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -36547,9 +35353,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -36562,9 +35367,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-filter": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", "dev": true, + "license": "MIT", "dependencies": { "p-map": "^5.1.0" }, @@ -36577,9 +35381,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-filter/node_modules/p-map": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^4.0.0" }, @@ -36592,9 +35395,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -36607,9 +35409,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -36622,9 +35423,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-map": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz", - "integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -36634,18 +35434,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/path-type": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -36655,9 +35453,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/pkg-dir": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^6.3.0" }, @@ -36670,9 +35467,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -36687,9 +35483,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -36699,9 +35494,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -36711,9 +35505,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/cache-utils": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-5.1.5.tgz", - "integrity": "sha512-lMNdFmy2Yu3oVquSPooRDLxJ8QOsIX6X6vzA2pKz/9V2LQFJiqBukggXM+Rnqzk1regPpdJ0jK3dPGvOKaRQgg==", "dev": true, + "license": "MIT", "dependencies": { "cpy": "^9.0.0", "get-stream": "^6.0.0", @@ -36730,9 +35523,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/cache-utils/node_modules/globby": { "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -36749,18 +35541,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/cache-utils/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/cache-utils/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -36770,9 +35560,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config": { "version": "20.15.4", - "resolved": "https://registry.npmjs.org/@netlify/config/-/config-20.15.4.tgz", - "integrity": "sha512-qH9kubtF4A53GJwem3BZGVaVRjBpnfeRrkC4Krz45yp4isdhI6mt6L0rDiSSkUl64uu3SQWWd1JapG+hzdhqNQ==", "dev": true, + "license": "MIT", "dependencies": { "@iarna/toml": "^2.2.5", "chalk": "^5.0.0", @@ -36808,9 +35597,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/dot-prop": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", - "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^2.11.2" }, @@ -36823,9 +35611,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -36835,9 +35622,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/execa": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -36858,9 +35644,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/figures": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" @@ -36874,9 +35659,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -36890,18 +35674,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/human-signals": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.20.0" } }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/indent-string": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -36911,9 +35693,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -36923,9 +35704,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/map-obj": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -36935,9 +35715,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/npm-run-path": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -36950,9 +35729,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -36965,9 +35743,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -36980,9 +35757,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -36995,18 +35771,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/path-type": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -37016,9 +35790,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -37028,9 +35801,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -37040,9 +35812,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler": { "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@netlify/edge-bundler/-/edge-bundler-12.1.1.tgz", - "integrity": "sha512-Jmq4JrWfTRdEJMgIrZt4kr6ETTCCVGupG6AgBwVZ6p93T7z9u9QBb4nkMDbCG6o9roGgUNlh2DtMG8HvD4zdUA==", "dev": true, + "license": "MIT", "dependencies": { "@import-maps/resolve": "^1.0.1", "@vercel/nft": "^0.27.0", @@ -37072,78 +35843,13 @@ "node": "^14.16.0 || >=16.0.0" } }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.2.tgz", - "integrity": "sha512-/c7hocx0pm14bHQlqUVKmxwdT/e5/KkyoY1W8F9lk/8CkE037STDDz8PXUP/LE6faj2HqchvDs9GcShxFhI78Q==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/android-arm": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.2.tgz", - "integrity": "sha512-G1ve3b4FeyJeyCjB4MX1CiWyTaIJwT9wAYE+8+IRA53YoN/reC/Bf2GDRXAzDTnh69Fpl+1uIKg76DiB3U6vwQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/android-arm64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.2.tgz", - "integrity": "sha512-SGZKngoTWVUriO5bDjI4WDGsNx2VKZoXcds+ita/kVYB+8IkSCKDRDaK+5yu0b5S0eq6B3S7fpiEvpsa2ammlQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/android-x64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.2.tgz", - "integrity": "sha512-1wzzNoj2QtNkAYwIcWJ66UTRA80+RTQ/kuPMtEuP0X6dp5Ar23Dn566q3aV61h4EYrrgGlOgl/HdcqN/2S/2vg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/darwin-arm64": { "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.2.tgz", - "integrity": "sha512-ZyMkPWc5eTROcLOA10lEqdDSTc6ds6nuh3DeHgKip/XJrYjZDfnkCVSty8svWdy+SC1f77ULtVeIqymTzaB6/Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -37152,299 +35858,10 @@ "node": ">=12" } }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/darwin-x64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.2.tgz", - "integrity": "sha512-K4ZdVq1zP9v51h/cKVna7im7G0zGTKKB6bP2yJiSmHjjOykbd8DdhrSi8V978sF69rkwrn8zCyL2t6I3ei6j9A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.2.tgz", - "integrity": "sha512-4kbOGdpA61CXqadD+Gb/Pw3YXamQGiz9mal/h93rFVSjr5cgMnmJd/gbfPRm+3BMifvnaOfS1gNWaIDxkE2A3A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.2.tgz", - "integrity": "sha512-ShS+R09nuHzDBfPeMUliKZX27Wrmr8UFp93aFf/S8p+++x5BZ+D344CLKXxmY6qzgTL3mILSImPCNJOzD6+RRg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/linux-arm": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.2.tgz", - "integrity": "sha512-nnGXjOAv+7cM3LYRx4tJsYdgy8dGDGkAzF06oIDGppWbUkUKN9SmgQA8H0KukpU0Pjrj9XmgbWqMVSX/U7eeTA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/linux-arm64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.2.tgz", - "integrity": "sha512-Hdu8BL+AmO+eCDvvT6kz/fPQhvuHL8YK4ExKZfANWsNe1kFGOHw7VJvS/FKSLFqheXmB3rTF3xFQIgUWPYsGnA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/linux-ia32": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.2.tgz", - "integrity": "sha512-m73BOCW2V9lcj7RtEMi+gBfHC6n3+VHpwQXP5offtQMPLDkpVolYn1YGXxOZ9hp4h3UPRKuezL7WkBsw+3EB3Q==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/linux-loong64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.2.tgz", - "integrity": "sha512-84eYHwwWHq3myIY/6ikALMcnwkf6Qo7NIq++xH0x+cJuUNpdwh8mlpUtRY+JiGUc60yu7ElWBbVHGWTABTclGw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.2.tgz", - "integrity": "sha512-9siSZngT0/ZKG+AH+/agwKF29LdCxw4ODi/PiE0F52B2rtLozlDP92umf8G2GPoVV611LN4pZ+nSTckebOscUA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.2.tgz", - "integrity": "sha512-y0T4aV2CA+ic04ULya1A/8M2RDpDSK2ckgTj6jzHKFJvCq0jQg8afQQIn4EM0G8u2neyOiNHgSF9YKPfuqKOVw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.2.tgz", - "integrity": "sha512-x5ssCdXmZC86L2Li1qQPF/VaC4VP20u/Zm8jlAu9IiVOVi79YsSz6cpPDYZl1rfKSHYCJW9XBfFCo66S5gVPSA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/linux-s390x": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.2.tgz", - "integrity": "sha512-NP7fTpGSFWdXyvp8iAFU04uFh9ARoplFVM/m+8lTRpaYG+2ytHPZWyscSsMM6cvObSIK2KoPHXiZD4l99WaxbQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/linux-x64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.2.tgz", - "integrity": "sha512-giZ/uOxWDKda44ZuyfKbykeXznfuVNkTgXOUOPJIjbayJV6FRpQ4zxUy9JMBPLaK9IJcdWtaoeQrYBMh3Rr4vQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.2.tgz", - "integrity": "sha512-IeFMfGFSQfIj1d4XU+6lkbFzMR+mFELUUVYrZ+jvWzG4NGvs6o53ReEHLHpYkjRbdEjJy2W3lTekTxrFHW7YJg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.2.tgz", - "integrity": "sha512-48QhWD6WxcebNNaE4FCwgvQVUnAycuTd+BdvA/oZu+/MmbpU8pY2dMEYlYzj5uNHWIG5jvdDmFXu0naQeOWUoA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/sunos-x64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.2.tgz", - "integrity": "sha512-90r3nTBLgdIgD4FCVV9+cR6Hq2Dzs319icVsln+NTmTVwffWcCqXGml8rAoocHuJ85kZK36DCteii96ba/PX8g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/win32-arm64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.2.tgz", - "integrity": "sha512-sNndlsBT8OeE/MZDSGpRDJlWuhjuUz/dn80nH0EP4ZzDUYvMDVa7G87DVpweBrn4xdJYyXS/y4CQNrf7R2ODXg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/win32-ia32": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.2.tgz", - "integrity": "sha512-Ti2QChGNFzWhUNNVuU4w21YkYTErsNh3h+CzvlEhzgRbwsJ7TrWQqRzW3bllLKKvTppuF3DJ3XP1GEg11AfrEQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/@esbuild/win32-x64": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.2.tgz", - "integrity": "sha512-VEfTCZicoZnZ6sGkjFPGRFFJuL2fZn2bLhsekZl1CJslflp2cJS/VoKs1jMk+3pDfsGW6CfQVUckP707HwbXeQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/ajv": { "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", @@ -37458,19 +35875,17 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/ajv-errors": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", - "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": "^8.0.1" } }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/esbuild": { "version": "0.21.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.2.tgz", - "integrity": "sha512-LmHPAa5h4tSxz+g/D8IHY6wCjtIiFx8I7/Q0Aq+NmvtoYvyMnJU0KQJcqB6QH30X9x/W4CemgUtPgQDZFca5SA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -37505,9 +35920,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/execa": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -37528,9 +35942,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -37544,9 +35957,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/get-port": { "version": "6.1.2", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz", - "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -37556,18 +35968,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/human-signals": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.20.0" } }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/is-path-inside": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -37577,9 +35987,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -37589,15 +35998,13 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/npm-run-path": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -37610,9 +36017,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -37625,9 +36031,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/p-timeout": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -37637,9 +36042,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/p-wait-for": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", - "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", "dev": true, + "license": "MIT", "dependencies": { "p-timeout": "^5.0.0" }, @@ -37652,18 +36056,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -37673,15 +36075,13 @@ }, "node_modules/netlify-cli/node_modules/@netlify/edge-functions": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/@netlify/edge-functions/-/edge-functions-2.8.1.tgz", - "integrity": "sha512-BoAz/gCWHLn9DVugGViORbWFDqaqrB/JHM+9N+ahk7U6C3EwaFojnnGKCMrQ65f2YOi6Wwlue1ZZO+8mq43RZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@netlify/framework-info": { "version": "9.8.13", - "resolved": "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-9.8.13.tgz", - "integrity": "sha512-ZZXCggokY/y5Sz93XYbl/Lig1UAUSWPMBiQRpkVfbrrkjmW2ZPkYS/BgrM2/MxwXRvYhc/TQpZX6y5JPe3quQg==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.12.0", "filter-obj": "^5.0.0", @@ -37700,9 +36100,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -37716,9 +36115,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -37732,15 +36130,13 @@ }, "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/p-filter": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", "dev": true, + "license": "MIT", "dependencies": { "p-map": "^5.1.0" }, @@ -37753,9 +36149,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -37768,9 +36163,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -37783,9 +36177,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/p-map": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^4.0.0" }, @@ -37798,18 +36191,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -37819,9 +36210,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/functions-utils": { "version": "5.2.70", - "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-5.2.70.tgz", - "integrity": "sha512-7SSLuLmvcyIs4vGVyp4K1Vs9fvwNMmpwjBSLOYqrC89rGKFA9zJ7QWgHxtoYF+7I1zf91vRQpz1oiir8kW9F1g==", "dev": true, + "license": "MIT", "dependencies": { "@netlify/zip-it-and-ship-it": "9.37.2", "cpy": "^9.0.0", @@ -37833,18 +36223,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/functions-utils/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/git-utils": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-5.1.1.tgz", - "integrity": "sha512-oyHieuTZH3rKTmg7EKpGEGa28IFxta2oXuVwpPJI/FJAtBje3UE+yko0eDjNufgm3AyGa8G77trUxgBhInAYuw==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^6.0.0", "map-obj": "^5.0.0", @@ -37858,9 +36246,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/execa": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -37881,18 +36268,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/human-signals": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.20.0" } }, "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -37902,9 +36287,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/map-obj": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -37914,9 +36298,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/npm-run-path": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -37929,9 +36312,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -37944,18 +36326,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -37965,9 +36345,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy/-/local-functions-proxy-1.1.1.tgz", - "integrity": "sha512-eXSsayLT6PMvjzFQpjC9nkg2Otc3lZ5GoYele9M6f8PmsvWpaXRhwjNQ0NYhQQ2UZbLMIiO2dH8dbRsT3bMkFw==", "dev": true, + "license": "MIT", "optionalDependencies": { "@netlify/local-functions-proxy-darwin-arm64": "1.1.1", "@netlify/local-functions-proxy-darwin-x64": "1.1.1", @@ -37985,12 +36364,11 @@ }, "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-darwin-arm64": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-arm64/-/local-functions-proxy-darwin-arm64-1.1.1.tgz", - "integrity": "sha512-lphJ9qqZ3glnKWEqlemU1LMqXxtJ/tKf7VzakqqyjigwLscXSZSb6fupSjQfd4tR1xqxA76ylws/2HDhc/gs+Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -37999,205 +36377,26 @@ "local-functions-proxy": "bin/local-functions-proxy" } }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-darwin-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-x64/-/local-functions-proxy-darwin-x64-1.1.1.tgz", - "integrity": "sha512-4CRB0H+dXZzoEklq5Jpmg+chizXlVwCko94d8+UHWCgy/bA3M/rU/BJ8OLZisnJaAktHoeLABKtcLOhtRHpxZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-freebsd-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-arm64/-/local-functions-proxy-freebsd-arm64-1.1.1.tgz", - "integrity": "sha512-u13lWTVMJDF0A6jX7V4N3HYGTIHLe5d1Z2wT43fSIHwXkTs6UXi72cGSraisajG+5JFIwHfPr7asw5vxFC0P9w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-freebsd-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-x64/-/local-functions-proxy-freebsd-x64-1.1.1.tgz", - "integrity": "sha512-g5xw4xATK5YDzvXtzJ8S1qSkWBiyF8VVRehXPMOAMzpGjCX86twYhWp8rbAk7yA1zBWmmWrWNA2Odq/MgpKJJg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-arm": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm/-/local-functions-proxy-linux-arm-1.1.1.tgz", - "integrity": "sha512-YsTpL+AbHwQrfHWXmKnwUrJBjoUON363nr6jUG1ueYnpbbv6wTUA7gI5snMi/gkGpqFusBthAA7C30e6bixfiA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm64/-/local-functions-proxy-linux-arm64-1.1.1.tgz", - "integrity": "sha512-dPGu1H5n8na7mBKxiXQ+FNmthDAiA57wqgpm5JMAHtcdcmRvcXwJkwWVGvwfj8ShhYJHQaSaS9oPgO+mpKkgmA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-ia32": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ia32/-/local-functions-proxy-linux-ia32-1.1.1.tgz", - "integrity": "sha512-Ra0FlXDrmPRaq+rYH3/ttkXSrwk1D5Zx/Na7UPfJZxMY7Qo5iY4bgi/FuzjzWzlp0uuKZOhYOYzYzsIIyrSvmw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-ppc64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ppc64/-/local-functions-proxy-linux-ppc64-1.1.1.tgz", - "integrity": "sha512-oXf1satwqwUUxz7LHS1BxbRqc4FFEKIDFTls04eXiLReFR3sqv9H/QuYNTCCDMuRcCOd92qKyDfATdnxT4HR8w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-x64/-/local-functions-proxy-linux-x64-1.1.1.tgz", - "integrity": "sha512-bS3u4JuDg/eC0y4Na3i/29JBOxrdUvsK5JSjHfzUeZEbOcuXYf4KavTpHS5uikdvTgyczoSrvbmQJ5m0FLXfLA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-openbsd-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-openbsd-x64/-/local-functions-proxy-openbsd-x64-1.1.1.tgz", - "integrity": "sha512-1xLef/kLRNkBTXJ+ZGoRFcwsFxd/B2H3oeJZyXaZ3CN5umd9Mv9wZuAD74NuMt/535yRva8jtAJqvEgl9xMSdA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "bin": { - "local-functions-proxy": "bin/local-functions-proxy" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-win32-ia32": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-ia32/-/local-functions-proxy-win32-ia32-1.1.1.tgz", - "integrity": "sha512-4IOMDBxp2f8VbIkhZ85zGNDrZR4ey8d68fCMSOIwitjsnKav35YrCf8UmAh3UR6CNIRJdJL4MW1GYePJ7iJ8uA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "bin": { - "local-functions-proxy.exe": "bin/local-functions-proxy.exe" - } - }, - "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-win32-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-x64/-/local-functions-proxy-win32-x64-1.1.1.tgz", - "integrity": "sha512-VCBXBJWBujVxyo5f+3r8ovLc9I7wJqpmgDn3ixs1fvdrER5Ac+SzYwYH4mUug9HI08mzTSAKZErzKeuadSez3w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "bin": { - "local-functions-proxy.exe": "bin/local-functions-proxy.exe" - } - }, "node_modules/netlify-cli/node_modules/@netlify/node-cookies": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@netlify/node-cookies/-/node-cookies-0.1.0.tgz", - "integrity": "sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==", "dev": true, + "license": "MIT", "engines": { "node": "^14.16.0 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/open-api": { "version": "2.33.1", - "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.33.1.tgz", - "integrity": "sha512-EP5nVae2sRSg8orieT/PvmykIUkPWr/Qzk2vj1QIUAPeMbR8JM3Aq+W/4fK9m0Yq+1CZ3sWeNy/r6nsxLqnXVg==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/netlify-cli/node_modules/@netlify/opentelemetry-utils": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@netlify/opentelemetry-utils/-/opentelemetry-utils-1.2.1.tgz", - "integrity": "sha512-A6nQBvUn/avHQopLOOjX8rY2eua//jufbx4NZZODACEHtfXAEmOjCoDe2m+cQPRq+jNa98nvCy/sJh2RwuCQog==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.0.0" }, @@ -38207,18 +36406,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/plugins-list": { "version": "6.80.0", - "resolved": "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-6.80.0.tgz", - "integrity": "sha512-bCKLI51UZ70ziIWsf2nvgPd4XuG6m8AMCoHiYtl/BSsiaSBfmryZnTTqdRXerH09tBRpbPPwzaEgUJwyU9o8Qw==", "dev": true, + "license": "MIT", "engines": { "node": "^14.14.0 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/run-utils": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@netlify/run-utils/-/run-utils-5.1.1.tgz", - "integrity": "sha512-V2B8ZB19heVKa715uOeDkztxLH7uaqZ+9U5fV7BRzbQ2514DO5Vxj9hG0irzuRLfZXZZjp/chPUesv4VVsce/A==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^6.0.0" }, @@ -38228,9 +36425,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/execa": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -38251,18 +36447,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/human-signals": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.20.0" } }, "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -38272,9 +36466,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/npm-run-path": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -38287,9 +36480,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -38302,9 +36494,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -38314,9 +36505,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it": { "version": "9.37.2", - "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.37.2.tgz", - "integrity": "sha512-ZOibSzp4ICeNgBu66UjVnRkEUpxZ59OtvR2Wk0bZxU708jCgcYzyQfIXrWqDHNq3QTFjFpZVuhBe6CTSOZkPjg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.22.5", "@babel/types": "7.24.6", @@ -38362,9 +36552,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/@netlify/serverless-functions-api": { "version": "1.18.5", - "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.18.5.tgz", - "integrity": "sha512-2/LCG0b7xPee9uVMh422h4TPQdT5/Uk4o2H9L//sKDp8PLlvEdJJkagmWqBOYDtGMId/aO5KyZ/iF/zRA7Nq5A==", "dev": true, + "license": "MIT", "dependencies": { "@netlify/node-cookies": "^0.1.0", "urlpattern-polyfill": "8.0.2" @@ -38375,18 +36564,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/execa": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -38407,9 +36594,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -38423,10 +36609,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/glob": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -38443,9 +36627,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/glob/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -38455,18 +36638,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/human-signals": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.20.0" } }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/is-path-inside": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -38476,9 +36657,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -38488,9 +36668,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/minimatch": { "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -38503,9 +36682,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/npm-run-path": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -38518,9 +36696,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -38533,9 +36710,8 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/p-map": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^4.0.0" }, @@ -38548,18 +36724,16 @@ }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -38569,9 +36743,8 @@ }, "node_modules/netlify-cli/node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -38582,18 +36755,16 @@ }, "node_modules/netlify-cli/node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/netlify-cli/node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -38604,18 +36775,16 @@ }, "node_modules/netlify-cli/node_modules/@octokit/auth-token": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18" } }, "node_modules/netlify-cli/node_modules/@octokit/core": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", - "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -38631,9 +36800,8 @@ }, "node_modules/netlify-cli/node_modules/@octokit/endpoint": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", - "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" @@ -38644,9 +36812,8 @@ }, "node_modules/netlify-cli/node_modules/@octokit/graphql": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", - "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/request": "^8.3.0", "@octokit/types": "^13.0.0", @@ -38658,15 +36825,13 @@ }, "node_modules/netlify-cli/node_modules/@octokit/openapi-types": { "version": "22.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@octokit/plugin-paginate-rest": { "version": "11.3.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz", - "integrity": "sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.5.0" }, @@ -38679,9 +36844,8 @@ }, "node_modules/netlify-cli/node_modules/@octokit/plugin-request-log": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", - "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18" }, @@ -38691,9 +36855,8 @@ }, "node_modules/netlify-cli/node_modules/@octokit/plugin-rest-endpoint-methods": { "version": "13.2.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz", - "integrity": "sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.5.0" }, @@ -38706,9 +36869,8 @@ }, "node_modules/netlify-cli/node_modules/@octokit/request": { "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", - "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/endpoint": "^9.0.1", "@octokit/request-error": "^5.1.0", @@ -38721,9 +36883,8 @@ }, "node_modules/netlify-cli/node_modules/@octokit/request-error": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", - "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.1.0", "deprecation": "^2.0.0", @@ -38735,9 +36896,8 @@ }, "node_modules/netlify-cli/node_modules/@octokit/rest": { "version": "20.1.1", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.1.tgz", - "integrity": "sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/core": "^5.0.2", "@octokit/plugin-paginate-rest": "11.3.1", @@ -38750,28 +36910,24 @@ }, "node_modules/netlify-cli/node_modules/@octokit/types": { "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", - "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^22.2.0" } }, "node_modules/netlify-cli/node_modules/@opentelemetry/api": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", - "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8.0.0" } }, "node_modules/netlify-cli/node_modules/@parcel/watcher": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.0.tgz", - "integrity": "sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -38800,34 +36956,13 @@ "@parcel/watcher-win32-x64": "2.4.0" } }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-android-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz", - "integrity": "sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/netlify-cli/node_modules/@parcel/watcher-darwin-arm64": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz", - "integrity": "sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -38840,154 +36975,13 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-darwin-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz", - "integrity": "sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz", - "integrity": "sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz", - "integrity": "sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz", - "integrity": "sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz", - "integrity": "sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz", - "integrity": "sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz", - "integrity": "sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/netlify-cli/node_modules/@parcel/watcher-wasm": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.4.0.tgz", - "integrity": "sha512-MNgQ4WCbBybqQ97KwR/hqJGYTg3+s8qHpgIyFWB2qJOBvoJWbXuJGmm4ZkPLq2bMaANqCZqrXwmKYagZTkMKZA==", "bundleDependencies": [ "napi-wasm" ], "dev": true, + "license": "MIT", "dependencies": { "is-glob": "^4.0.3", "micromatch": "^4.0.5", @@ -39007,71 +37001,10 @@ "inBundle": true, "license": "MIT" }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-win32-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz", - "integrity": "sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-win32-ia32": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz", - "integrity": "sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/netlify-cli/node_modules/@parcel/watcher-win32-x64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz", - "integrity": "sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/netlify-cli/node_modules/@parcel/watcher/node_modules/detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, + "license": "Apache-2.0", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -39081,9 +37014,8 @@ }, "node_modules/netlify-cli/node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -39091,18 +37023,16 @@ }, "node_modules/netlify-cli/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", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.22.0" } }, "node_modules/netlify-cli/node_modules/@pnpm/network.ca-file": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz", - "integrity": "sha512-gkINruT2KUhZLTaiHxwCOh1O4NVnFT0wLjWFBHmTz9vpKag/C/noIMJXBxFe4F0mYpUVX2puLwAieLYFg2NvoA==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -39112,9 +37042,8 @@ }, "node_modules/netlify-cli/node_modules/@pnpm/npm-conf": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.0.tgz", - "integrity": "sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==", "dev": true, + "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", @@ -39126,9 +37055,8 @@ }, "node_modules/netlify-cli/node_modules/@rollup/pluginutils": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, + "license": "MIT", "dependencies": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" @@ -39139,9 +37067,8 @@ }, "node_modules/netlify-cli/node_modules/@sindresorhus/is": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -39151,9 +37078,8 @@ }, "node_modules/netlify-cli/node_modules/@sindresorhus/slugify": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", - "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/transliterate": "^1.0.0", "escape-string-regexp": "^5.0.0" @@ -39167,9 +37093,8 @@ }, "node_modules/netlify-cli/node_modules/@sindresorhus/slugify/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -39179,9 +37104,8 @@ }, "node_modules/netlify-cli/node_modules/@sindresorhus/transliterate": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.5.0.tgz", - "integrity": "sha512-/sfSkoNelLq5riqNRp5uBjHIKBi1MWZk9ubRT1WiBQuTfmDf7BeQkph2DJzRB83QagMPHk2VDjuvpy0VuwyzdA==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0", "lodash.deburr": "^4.1.0" @@ -39195,9 +37119,8 @@ }, "node_modules/netlify-cli/node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -39207,9 +37130,8 @@ }, "node_modules/netlify-cli/node_modules/@szmarczak/http-timer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dev": true, + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -39219,48 +37141,41 @@ }, "node_modules/netlify-cli/node_modules/@tokenizer/token": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@trysound/sax": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10.13.0" } }, "node_modules/netlify-cli/node_modules/@tsconfig/node10": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@tsconfig/node12": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@tsconfig/node14": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@tsconfig/node16": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@types/body-parser": { "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, + "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -39270,9 +37185,8 @@ }, "node_modules/netlify-cli/node_modules/@types/connect": { "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, + "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -39281,9 +37195,8 @@ }, "node_modules/netlify-cli/node_modules/@types/express": { "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dev": true, + "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -39295,9 +37208,8 @@ }, "node_modules/netlify-cli/node_modules/@types/express-serve-static-core": { "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", "dev": true, + "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -39308,93 +37220,81 @@ }, "node_modules/netlify-cli/node_modules/@types/http-cache-semantics": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@types/http-proxy": { "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/netlify-cli/node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@types/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/netlify-cli/node_modules/@types/istanbul-reports": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/netlify-cli/node_modules/@types/mime": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true, + "license": "MIT", "optional": true, "peer": true }, "node_modules/netlify-cli/node_modules/@types/node": { "version": "20.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.8.tgz", - "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/netlify-cli/node_modules/@types/normalize-package-data": { "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@types/qs": { "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true, + "license": "MIT", "optional": true, "peer": true }, "node_modules/netlify-cli/node_modules/@types/range-parser": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true, + "license": "MIT", "optional": true, "peer": true }, "node_modules/netlify-cli/node_modules/@types/retry": { "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@types/serve-static": { "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "dev": true, + "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -39404,15 +37304,13 @@ }, "node_modules/netlify-cli/node_modules/@types/yargs-parser": { "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/@types/yauzl": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@types/node": "*" @@ -39420,9 +37318,8 @@ }, "node_modules/netlify-cli/node_modules/@vercel/nft": { "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.27.2.tgz", - "integrity": "sha512-7LeioS1yE5hwPpQfD3DdH04tuugKjo5KrJk3yK5kAI3Lh76iSsK/ezoFQfzuT08X3ZASQOd1y9ePjLNI9+TxTQ==", "dev": true, + "license": "MIT", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.5", "@rollup/pluginutils": "^4.0.0", @@ -39446,9 +37343,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/archive-type": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@xhmikosr/archive-type/-/archive-type-6.0.1.tgz", - "integrity": "sha512-PB3NeJL8xARZt52yDBupK0dNPn8uIVQDe15qNehUpoeeLWCZyAOam4vGXnoZGz2N9D1VXtjievJuCsXam2TmbQ==", "dev": true, + "license": "MIT", "dependencies": { "file-type": "^18.5.0" }, @@ -39458,9 +37354,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress/-/decompress-9.0.1.tgz", - "integrity": "sha512-9Lvlt6Qdpo9SaRQyRIXCo3lgU++eMZ68lzgjcTwtuKDrlwT635+5zsHZ1yrSx/Blc5IDuVLlPkBPj5CZkx+2+Q==", "dev": true, + "license": "MIT", "dependencies": { "@xhmikosr/decompress-tar": "^7.0.0", "@xhmikosr/decompress-tarbz2": "^7.0.0", @@ -39476,9 +37371,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tar": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tar/-/decompress-tar-7.0.0.tgz", - "integrity": "sha512-kyWf2hybtQVbWtB+FdRyOT+jyR5jxCNZPLqvQGB7djZj75lrpLUPEmRbyo86AtJ5OEtivpYaNWjCkqSJ8xtRWw==", "dev": true, + "license": "MIT", "dependencies": { "file-type": "^18.5.0", "is-stream": "^3.0.0", @@ -39490,9 +37384,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tar/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -39502,9 +37395,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tarbz2": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tarbz2/-/decompress-tarbz2-7.0.0.tgz", - "integrity": "sha512-3QnjipYkRgh3Dee1MWDgKmANWxOQBVN4e1IwiGNe2fHYfMYTeSkVvWREt87UIoSucKUh3E95v8uGFttgTknZcA==", "dev": true, + "license": "MIT", "dependencies": { "@xhmikosr/decompress-tar": "^7.0.0", "file-type": "^18.5.0", @@ -39518,9 +37410,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tarbz2/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -39530,9 +37421,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-targz": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-targz/-/decompress-targz-7.0.0.tgz", - "integrity": "sha512-7BNHJl92g9OLhw89zqcFS67V1LAtm4Ex02j6OiQzuE8P7Yy9lQcyBuEL3x6v436grLdL+BcFjgbmhWxnem4GHw==", "dev": true, + "license": "MIT", "dependencies": { "@xhmikosr/decompress-tar": "^7.0.0", "file-type": "^18.5.0", @@ -39544,9 +37434,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-targz/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -39556,9 +37445,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-unzip": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-unzip/-/decompress-unzip-6.0.0.tgz", - "integrity": "sha512-R1HAkjXLS7RAL74YFLxYY9zYflCcYGssld9KKFDu87PnJ4h4btdhzXfSC8J5i5A2njH3oYIoCzx03RIGTH07Sg==", "dev": true, + "license": "MIT", "dependencies": { "file-type": "^18.5.0", "get-stream": "^6.0.1", @@ -39570,15 +37458,13 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress/node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/@xhmikosr/decompress/node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -39591,9 +37477,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/downloader": { "version": "13.0.1", - "resolved": "https://registry.npmjs.org/@xhmikosr/downloader/-/downloader-13.0.1.tgz", - "integrity": "sha512-mBvWew1kZJHfNQVVfVllMjUDwCGN9apPa0t4/z1zaUJ9MzpXjRL3w8fsfJKB8gHN/h4rik9HneKfDbh2fErN+w==", "dev": true, + "license": "MIT", "dependencies": { "@xhmikosr/archive-type": "^6.0.1", "@xhmikosr/decompress": "^9.0.1", @@ -39612,9 +37497,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -39624,9 +37508,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/filename-reserved-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", - "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -39636,9 +37519,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/filenamify": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz", - "integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==", "dev": true, + "license": "MIT", "dependencies": { "filename-reserved-regex": "^3.0.0", "strip-outer": "^2.0.0", @@ -39653,9 +37535,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/strip-outer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz", - "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -39665,9 +37546,8 @@ }, "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/trim-repeated": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", - "integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0" }, @@ -39677,15 +37557,13 @@ }, "node_modules/netlify-cli/node_modules/abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/abort-controller": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -39695,15 +37573,13 @@ }, "node_modules/netlify-cli/node_modules/abstract-logging": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/accepts": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -39714,9 +37590,8 @@ }, "node_modules/netlify-cli/node_modules/acorn": { "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -39726,27 +37601,24 @@ }, "node_modules/netlify-cli/node_modules/acorn-import-attributes": { "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^8" } }, "node_modules/netlify-cli/node_modules/acorn-walk": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/netlify-cli/node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "4" }, @@ -39756,9 +37628,8 @@ }, "node_modules/netlify-cli/node_modules/aggregate-error": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^4.0.0", "indent-string": "^5.0.0" @@ -39772,9 +37643,8 @@ }, "node_modules/netlify-cli/node_modules/aggregate-error/node_modules/indent-string": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -39784,9 +37654,8 @@ }, "node_modules/netlify-cli/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -39801,9 +37670,8 @@ }, "node_modules/netlify-cli/node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -39818,9 +37686,8 @@ }, "node_modules/netlify-cli/node_modules/ajv-formats/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -39834,15 +37701,13 @@ }, "node_modules/netlify-cli/node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/all-node-versions": { "version": "11.3.0", - "resolved": "https://registry.npmjs.org/all-node-versions/-/all-node-versions-11.3.0.tgz", - "integrity": "sha512-psMkc5s3qpr+QMfires9bC4azRYciPWql1wqZKMsYRh1731qefQDH2X4+O19xSBX6u0Ra/8Y5diG6y/fEmqKsw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "fetch-node-website": "^7.3.0", "filter-obj": "^5.1.0", @@ -39859,18 +37724,16 @@ }, "node_modules/netlify-cli/node_modules/all-node-versions/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/all-node-versions/node_modules/write-file-atomic": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -39881,18 +37744,16 @@ }, "node_modules/netlify-cli/node_modules/ansi-align": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } }, "node_modules/netlify-cli/node_modules/ansi-escapes": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, + "license": "MIT", "dependencies": { "environment": "^1.0.0" }, @@ -39905,18 +37766,16 @@ }, "node_modules/netlify-cli/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -39926,9 +37785,8 @@ }, "node_modules/netlify-cli/node_modules/ansi-to-html": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.7.2.tgz", - "integrity": "sha512-v6MqmEpNlxF+POuyhKkidusCHWWkaLcGRURzivcU3I9tv7k4JVhFcnukrM5Rlk2rUywdZuzYAZ+kbZqWCnfN3g==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^2.2.0" }, @@ -39941,18 +37799,16 @@ }, "node_modules/netlify-cli/node_modules/ansi-to-html/node_modules/entities": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/netlify-cli/node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -39963,15 +37819,13 @@ }, "node_modules/netlify-cli/node_modules/aproba": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/archiver": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", - "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", "dev": true, + "license": "MIT", "dependencies": { "archiver-utils": "^5.0.2", "async": "^3.2.4", @@ -39987,9 +37841,8 @@ }, "node_modules/netlify-cli/node_modules/archiver-utils": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", - "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", "dev": true, + "license": "MIT", "dependencies": { "glob": "^10.0.0", "graceful-fs": "^4.2.0", @@ -40005,17 +37858,14 @@ }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -40031,6 +37881,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -40038,9 +37889,8 @@ }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/glob": { "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -40060,9 +37910,8 @@ }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -40072,9 +37921,8 @@ }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/jackspeak": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -40090,9 +37938,8 @@ }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/minimatch": { "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -40105,18 +37952,16 @@ }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/minipass": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/readable-stream": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -40130,8 +37975,6 @@ }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -40146,21 +37989,19 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/netlify-cli/node_modules/archiver/node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -40176,6 +38017,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -40183,18 +38025,16 @@ }, "node_modules/netlify-cli/node_modules/archiver/node_modules/buffer-crc32": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", - "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/netlify-cli/node_modules/archiver/node_modules/readable-stream": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -40208,8 +38048,6 @@ }, "node_modules/netlify-cli/node_modules/archiver/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -40224,28 +38062,26 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/archiver/node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/netlify-cli/node_modules/archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/are-we-there-yet": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "dev": true, + "license": "ISC", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -40256,42 +38092,36 @@ }, "node_modules/netlify-cli/node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/netlify-cli/node_modules/array-flatten": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/array-timsort": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/arrify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", - "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -40301,45 +38131,39 @@ }, "node_modules/netlify-cli/node_modules/ascii-table": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz", - "integrity": "sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/ast-module-types": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-5.0.0.tgz", - "integrity": "sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/netlify-cli/node_modules/async": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/async-sema": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", - "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/atomic-sleep": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/netlify-cli/node_modules/avvio": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.3.0.tgz", - "integrity": "sha512-VBVH0jubFr9LdFASy/vNtm5giTrnbVquWBhT0fyizuNK2rQ7e7ONU2plZQWUNqtE1EmxFEb+kbSkFRkstiaS9Q==", "dev": true, + "license": "MIT", "dependencies": { "@fastify/error": "^3.3.0", "archy": "^1.0.0", @@ -40349,15 +38173,13 @@ }, "node_modules/netlify-cli/node_modules/b4a": { "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/backoff": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", "dev": true, + "license": "MIT", "dependencies": { "precond": "0.2" }, @@ -40367,14 +38189,11 @@ }, "node_modules/netlify-cli/node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { @@ -40389,19 +38208,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/before-after-hook": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/netlify-cli/node_modules/better-ajv-errors": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-1.2.0.tgz", - "integrity": "sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/code-frame": "^7.16.0", "@humanwhocodes/momoa": "^2.0.2", @@ -40418,9 +38236,8 @@ }, "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -40433,9 +38250,8 @@ }, "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -40449,9 +38265,8 @@ }, "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -40461,15 +38276,13 @@ }, "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -40479,9 +38292,8 @@ }, "node_modules/netlify-cli/node_modules/better-opn": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", "dev": true, + "license": "MIT", "dependencies": { "open": "^8.0.4" }, @@ -40491,27 +38303,24 @@ }, "node_modules/netlify-cli/node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/bindings": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, + "license": "MIT", "dependencies": { "file-uri-to-path": "1.0.0" } }, "node_modules/netlify-cli/node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -40520,15 +38329,13 @@ }, "node_modules/netlify-cli/node_modules/blueimp-md5": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", - "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/body-parser": { "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -40550,27 +38357,24 @@ }, "node_modules/netlify-cli/node_modules/body-parser/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/netlify-cli/node_modules/body-parser/node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/body-parser/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -40584,21 +38388,18 @@ }, "node_modules/netlify-cli/node_modules/body-parser/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/boxen": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", "dev": true, + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.1", @@ -40618,9 +38419,8 @@ }, "node_modules/netlify-cli/node_modules/boxen/node_modules/camelcase": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -40630,15 +38430,13 @@ }, "node_modules/netlify-cli/node_modules/boxen/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/boxen/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -40653,9 +38451,8 @@ }, "node_modules/netlify-cli/node_modules/boxen/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -40670,9 +38467,8 @@ }, "node_modules/netlify-cli/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -40680,9 +38476,8 @@ }, "node_modules/netlify-cli/node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -40692,8 +38487,6 @@ }, "node_modules/netlify-cli/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -40709,6 +38502,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -40716,30 +38510,26 @@ }, "node_modules/netlify-cli/node_modules/buffer-crc32": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/netlify-cli/node_modules/buffer-equal-constant-time": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/netlify-cli/node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/builtin-modules": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -40749,45 +38539,40 @@ }, "node_modules/netlify-cli/node_modules/builtins": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.0.0" } }, "node_modules/netlify-cli/node_modules/byline": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/cacheable-lookup": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" } }, "node_modules/netlify-cli/node_modules/cacheable-request": { "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", @@ -40803,18 +38588,16 @@ }, "node_modules/netlify-cli/node_modules/cachedir": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -40825,8 +38608,6 @@ }, "node_modules/netlify-cli/node_modules/callsite": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", "dev": true, "engines": { "node": "*" @@ -40834,9 +38615,8 @@ }, "node_modules/netlify-cli/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -40846,9 +38626,8 @@ }, "node_modules/netlify-cli/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -40858,15 +38637,13 @@ }, "node_modules/netlify-cli/node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/chokidar": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -40888,17 +38665,14 @@ }, "node_modules/netlify-cli/node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/netlify-cli/node_modules/ci-info": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", - "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", "dev": true, "funding": [ { @@ -40906,24 +38680,23 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/citty": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", - "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", "dev": true, + "license": "MIT", "dependencies": { "consola": "^3.2.3" } }, "node_modules/netlify-cli/node_modules/clean-deep": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/clean-deep/-/clean-deep-3.4.0.tgz", - "integrity": "sha512-Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw==", "dev": true, + "license": "MIT", "dependencies": { "lodash.isempty": "^4.4.0", "lodash.isplainobject": "^4.0.6", @@ -40935,9 +38708,8 @@ }, "node_modules/netlify-cli/node_modules/clean-stack": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, @@ -40950,9 +38722,8 @@ }, "node_modules/netlify-cli/node_modules/clean-stack/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -40962,9 +38733,8 @@ }, "node_modules/netlify-cli/node_modules/cli-boxes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -40974,9 +38744,8 @@ }, "node_modules/netlify-cli/node_modules/cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^2.0.0" }, @@ -40986,9 +38755,8 @@ }, "node_modules/netlify-cli/node_modules/cli-progress": { "version": "3.12.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.2.3" }, @@ -40998,9 +38766,8 @@ }, "node_modules/netlify-cli/node_modules/cli-spinners": { "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -41010,9 +38777,8 @@ }, "node_modules/netlify-cli/node_modules/cli-truncate": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^7.0.0" @@ -41026,15 +38792,13 @@ }, "node_modules/netlify-cli/node_modules/cli-truncate/node_modules/emoji-regex": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/cli-truncate/node_modules/string-width": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -41049,15 +38813,13 @@ }, "node_modules/netlify-cli/node_modules/cli-width": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/clipboardy": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", - "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^8.0.1", "is-wsl": "^3.1.0", @@ -41072,9 +38834,8 @@ }, "node_modules/netlify-cli/node_modules/clipboardy/node_modules/execa": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -41095,9 +38856,8 @@ }, "node_modules/netlify-cli/node_modules/clipboardy/node_modules/get-stream": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -41107,18 +38867,16 @@ }, "node_modules/netlify-cli/node_modules/clipboardy/node_modules/human-signals": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } }, "node_modules/netlify-cli/node_modules/clipboardy/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -41128,9 +38886,8 @@ }, "node_modules/netlify-cli/node_modules/clipboardy/node_modules/npm-run-path": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -41143,9 +38900,8 @@ }, "node_modules/netlify-cli/node_modules/clipboardy/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -41158,9 +38914,8 @@ }, "node_modules/netlify-cli/node_modules/clipboardy/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -41170,9 +38925,8 @@ }, "node_modules/netlify-cli/node_modules/clipboardy/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -41182,18 +38936,16 @@ }, "node_modules/netlify-cli/node_modules/cluster-key-slot": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/color": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.3", "color-string": "^1.6.0" @@ -41201,24 +38953,21 @@ }, "node_modules/netlify-cli/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/netlify-cli/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/color-string": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -41226,33 +38975,29 @@ }, "node_modules/netlify-cli/node_modules/color-support": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, + "license": "ISC", "bin": { "color-support": "bin.js" } }, "node_modules/netlify-cli/node_modules/colorette": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/netlify-cli/node_modules/colors-option": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-3.0.0.tgz", - "integrity": "sha512-DP3FpjsiDDvnQC1OJBsdOJZPuy7r0o6sepY2T5M3L/d2nrE23O/ErFkEqyY3ngVL1ZhTj/H0pCMNObZGkEOaaQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "chalk": "^5.0.0", "filter-obj": "^3.0.0", @@ -41265,9 +39010,8 @@ }, "node_modules/netlify-cli/node_modules/colors-option/node_modules/filter-obj": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", - "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -41277,9 +39021,8 @@ }, "node_modules/netlify-cli/node_modules/colorspace": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", "dev": true, + "license": "MIT", "dependencies": { "color": "^3.1.3", "text-hex": "1.0.x" @@ -41287,18 +39030,16 @@ }, "node_modules/netlify-cli/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/netlify-cli/node_modules/comment-json": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", "dev": true, + "license": "MIT", "dependencies": { "array-timsort": "^1.0.3", "core-util-is": "^1.0.3", @@ -41312,21 +39053,18 @@ }, "node_modules/netlify-cli/node_modules/comment-json/node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/common-path-prefix": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/compress-commons": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", - "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", "dev": true, + "license": "MIT", "dependencies": { "crc-32": "^1.2.0", "crc32-stream": "^6.0.0", @@ -41340,8 +39078,6 @@ }, "node_modules/netlify-cli/node_modules/compress-commons/node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -41357,6 +39093,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -41364,9 +39101,8 @@ }, "node_modules/netlify-cli/node_modules/compress-commons/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -41376,9 +39112,8 @@ }, "node_modules/netlify-cli/node_modules/compress-commons/node_modules/readable-stream": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -41392,8 +39127,6 @@ }, "node_modules/netlify-cli/node_modules/compress-commons/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -41408,28 +39141,26 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/compress-commons/node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/netlify-cli/node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/concordance": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", - "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", "dev": true, + "license": "ISC", "dependencies": { "date-time": "^3.1.0", "esutils": "^2.0.3", @@ -41446,9 +39177,8 @@ }, "node_modules/netlify-cli/node_modules/config-chain": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -41456,15 +39186,13 @@ }, "node_modules/netlify-cli/node_modules/config-chain/node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/configstore": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -41481,9 +39209,8 @@ }, "node_modules/netlify-cli/node_modules/configstore/node_modules/dot-prop": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -41496,9 +39223,8 @@ }, "node_modules/netlify-cli/node_modules/configstore/node_modules/write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -41508,24 +39234,21 @@ }, "node_modules/netlify-cli/node_modules/consola": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", "dev": true, + "license": "MIT", "engines": { "node": "^14.18.0 || >=16.10.0" } }, "node_modules/netlify-cli/node_modules/console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/content-disposition": { "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -41535,8 +39258,6 @@ }, "node_modules/netlify-cli/node_modules/content-disposition/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -41551,49 +39272,44 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/cookie": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/cookie-es": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.0.0.tgz", - "integrity": "sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/cookie-signature": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/cp-file": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-10.0.0.tgz", - "integrity": "sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.10", "nested-error-stacks": "^2.1.1", @@ -41608,9 +39324,8 @@ }, "node_modules/netlify-cli/node_modules/cpy": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-9.0.1.tgz", - "integrity": "sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^3.0.0", "cp-file": "^9.1.0", @@ -41630,9 +39345,8 @@ }, "node_modules/netlify-cli/node_modules/cpy/node_modules/cp-file": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", - "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "make-dir": "^3.0.0", @@ -41648,9 +39362,8 @@ }, "node_modules/netlify-cli/node_modules/cpy/node_modules/globby": { "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -41667,9 +39380,8 @@ }, "node_modules/netlify-cli/node_modules/cpy/node_modules/p-event": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", "dev": true, + "license": "MIT", "dependencies": { "p-timeout": "^3.1.0" }, @@ -41682,9 +39394,8 @@ }, "node_modules/netlify-cli/node_modules/cpy/node_modules/p-filter": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", "dev": true, + "license": "MIT", "dependencies": { "p-map": "^5.1.0" }, @@ -41697,9 +39408,8 @@ }, "node_modules/netlify-cli/node_modules/cpy/node_modules/p-map": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^4.0.0" }, @@ -41712,9 +39422,8 @@ }, "node_modules/netlify-cli/node_modules/cpy/node_modules/p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, + "license": "MIT", "dependencies": { "p-finally": "^1.0.0" }, @@ -41724,9 +39433,8 @@ }, "node_modules/netlify-cli/node_modules/cpy/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -41736,9 +39444,8 @@ }, "node_modules/netlify-cli/node_modules/crc-32": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", "dev": true, + "license": "Apache-2.0", "bin": { "crc32": "bin/crc32.njs" }, @@ -41748,9 +39455,8 @@ }, "node_modules/netlify-cli/node_modules/crc32-stream": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", - "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", "dev": true, + "license": "MIT", "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^4.0.0" @@ -41761,8 +39467,6 @@ }, "node_modules/netlify-cli/node_modules/crc32-stream/node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -41778,6 +39482,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -41785,9 +39490,8 @@ }, "node_modules/netlify-cli/node_modules/crc32-stream/node_modules/readable-stream": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -41801,8 +39505,6 @@ }, "node_modules/netlify-cli/node_modules/crc32-stream/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -41817,28 +39519,26 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/crc32-stream/node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/netlify-cli/node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/cron-parser": { "version": "4.9.0", - "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", - "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", "dev": true, + "license": "MIT", "dependencies": { "luxon": "^3.2.1" }, @@ -41848,9 +39548,8 @@ }, "node_modules/netlify-cli/node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -41862,24 +39561,21 @@ }, "node_modules/netlify-cli/node_modules/cross-spawn/node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/crossws": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.1.1.tgz", - "integrity": "sha512-c9c/o7bS3OjsdpSkvexpka0JNlesBF2JU9B2V1yNsYGwRbAafxhJQ7VI9b48D5bpONz/oxbPGMzBojy9sXoQIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/crypto-random-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -41892,9 +39588,8 @@ }, "node_modules/netlify-cli/node_modules/crypto-random-string/node_modules/type-fest": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -41904,9 +39599,8 @@ }, "node_modules/netlify-cli/node_modules/css-select": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -41920,9 +39614,8 @@ }, "node_modules/netlify-cli/node_modules/css-tree": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, + "license": "MIT", "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -41933,9 +39626,8 @@ }, "node_modules/netlify-cli/node_modules/css-what": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -41945,15 +39637,13 @@ }, "node_modules/netlify-cli/node_modules/cssfilter": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/csso": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, + "license": "MIT", "dependencies": { "css-tree": "~2.2.0" }, @@ -41964,9 +39654,8 @@ }, "node_modules/netlify-cli/node_modules/csso/node_modules/css-tree": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", "dev": true, + "license": "MIT", "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -41978,30 +39667,26 @@ }, "node_modules/netlify-cli/node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/netlify-cli/node_modules/cyclist": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/data-uri-to-buffer": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12" } }, "node_modules/netlify-cli/node_modules/date-time": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", - "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", "dev": true, + "license": "MIT", "dependencies": { "time-zone": "^1.0.0" }, @@ -42011,9 +39696,8 @@ }, "node_modules/netlify-cli/node_modules/debug": { "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -42028,24 +39712,21 @@ }, "node_modules/netlify-cli/node_modules/debug/node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/decache": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz", - "integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==", "dev": true, + "license": "MIT", "dependencies": { "callsite": "^1.0.0" } }, "node_modules/netlify-cli/node_modules/decompress-response": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -42058,9 +39739,8 @@ }, "node_modules/netlify-cli/node_modules/decompress-response/node_modules/mimic-response": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -42070,87 +39750,76 @@ }, "node_modules/netlify-cli/node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/netlify-cli/node_modules/deepmerge": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/defer-to-connect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/netlify-cli/node_modules/define-lazy-prop": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/defu": { "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/denque": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=0.10" } }, "node_modules/netlify-cli/node_modules/depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/deprecation": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/destr": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.2.tgz", - "integrity": "sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/destroy": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -42158,18 +39827,16 @@ }, "node_modules/netlify-cli/node_modules/detect-libc": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/detective-amd": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-5.0.2.tgz", - "integrity": "sha512-XFd/VEQ76HSpym80zxM68ieB77unNuoMwopU2TFT/ErUk5n4KvUTwW4beafAVUugrjV48l4BmmR0rh2MglBaiA==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^5.0.0", "escodegen": "^2.0.0", @@ -42185,9 +39852,8 @@ }, "node_modules/netlify-cli/node_modules/detective-cjs": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-5.0.1.tgz", - "integrity": "sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^5.0.0", "node-source-walk": "^6.0.0" @@ -42198,9 +39864,8 @@ }, "node_modules/netlify-cli/node_modules/detective-es6": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-4.0.1.tgz", - "integrity": "sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw==", "dev": true, + "license": "MIT", "dependencies": { "node-source-walk": "^6.0.1" }, @@ -42210,9 +39875,8 @@ }, "node_modules/netlify-cli/node_modules/detective-postcss": { "version": "6.1.3", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.3.tgz", - "integrity": "sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==", "dev": true, + "license": "MIT", "dependencies": { "is-url": "^1.2.4", "postcss": "^8.4.23", @@ -42224,9 +39888,8 @@ }, "node_modules/netlify-cli/node_modules/detective-sass": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-5.0.3.tgz", - "integrity": "sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^6.0.1" @@ -42237,9 +39900,8 @@ }, "node_modules/netlify-cli/node_modules/detective-scss": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-4.0.3.tgz", - "integrity": "sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^6.0.1" @@ -42250,18 +39912,16 @@ }, "node_modules/netlify-cli/node_modules/detective-stylus": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-4.0.0.tgz", - "integrity": "sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/netlify-cli/node_modules/detective-typescript": { "version": "11.2.0", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-11.2.0.tgz", - "integrity": "sha512-ARFxjzizOhPqs1fYC/2NMC3N4jrQ6HvVflnXBTRqNEqJuXwyKLRr9CrJwkRcV/SnZt1sNXgsF6FPm0x57Tq0rw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "^5.62.0", "ast-module-types": "^5.0.0", @@ -42274,9 +39934,8 @@ }, "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/@typescript-eslint/types": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -42287,9 +39946,8 @@ }, "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/@typescript-eslint/typescript-estree": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0", @@ -42314,9 +39972,8 @@ }, "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -42331,9 +39988,8 @@ }, "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -42343,9 +39999,8 @@ }, "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/typescript": { "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -42356,9 +40011,8 @@ }, "node_modules/netlify-cli/node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -42368,9 +40022,8 @@ }, "node_modules/netlify-cli/node_modules/dom-serializer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -42382,21 +40035,19 @@ }, "node_modules/netlify-cli/node_modules/domelementtype": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/netlify-cli/node_modules/domhandler": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -42409,9 +40060,8 @@ }, "node_modules/netlify-cli/node_modules/domutils": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -42423,9 +40073,8 @@ }, "node_modules/netlify-cli/node_modules/dot-prop": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", - "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^4.18.2" }, @@ -42438,9 +40087,8 @@ }, "node_modules/netlify-cli/node_modules/dot-prop/node_modules/type-fest": { "version": "4.18.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.18.2.tgz", - "integrity": "sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" }, @@ -42450,9 +40098,8 @@ }, "node_modules/netlify-cli/node_modules/dotenv": { "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -42462,60 +40109,52 @@ }, "node_modules/netlify-cli/node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/ecdsa-sig-formatter": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/netlify-cli/node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/enabled": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/netlify-cli/node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -42525,9 +40164,8 @@ }, "node_modules/netlify-cli/node_modules/env-paths": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -42537,9 +40175,8 @@ }, "node_modules/netlify-cli/node_modules/envinfo": { "version": "7.13.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", - "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, + "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -42549,9 +40186,8 @@ }, "node_modules/netlify-cli/node_modules/environment": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -42561,40 +40197,35 @@ }, "node_modules/netlify-cli/node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/netlify-cli/node_modules/error-stack-parser": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "dev": true, + "license": "MIT", "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/netlify-cli/node_modules/es-module-lexer": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz", - "integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/es6-promisify": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", - "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/esbuild": { "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", - "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -42629,18 +40260,16 @@ }, "node_modules/netlify-cli/node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/escape-goat": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -42650,15 +40279,13 @@ }, "node_modules/netlify-cli/node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/escodegen": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -42677,9 +40304,8 @@ }, "node_modules/netlify-cli/node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -42690,66 +40316,58 @@ }, "node_modules/netlify-cli/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/netlify-cli/node_modules/estree-walker": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/etag": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/event-target-shim": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/netlify-cli/node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -42770,9 +40388,8 @@ }, "node_modules/netlify-cli/node_modules/execa/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -42782,18 +40399,16 @@ }, "node_modules/netlify-cli/node_modules/expand-template": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", "dev": true, + "license": "(MIT OR WTFPL)", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/express": { "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -42833,9 +40448,8 @@ }, "node_modules/netlify-cli/node_modules/express-logging": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/express-logging/-/express-logging-1.1.1.tgz", - "integrity": "sha512-1KboYwxxCG5kwkJHR5LjFDTD1Mgl8n4PIMcCuhhd/1OqaxlC68P3QKbvvAbZVUtVgtlxEdTgSUwf6yxwzRCuuA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "on-headers": "^1.0.0" }, @@ -42845,27 +40459,24 @@ }, "node_modules/netlify-cli/node_modules/express/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/netlify-cli/node_modules/express/node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/express/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -42879,14 +40490,11 @@ }, "node_modules/netlify-cli/node_modules/express/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -42901,13 +40509,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/ext-list": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "^1.28.0" }, @@ -42917,9 +40525,8 @@ }, "node_modules/netlify-cli/node_modules/ext-name": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", "dev": true, + "license": "MIT", "dependencies": { "ext-list": "^2.0.0", "sort-keys-length": "^1.0.0" @@ -42930,9 +40537,8 @@ }, "node_modules/netlify-cli/node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -42944,9 +40550,8 @@ }, "node_modules/netlify-cli/node_modules/extract-zip": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -42964,9 +40569,8 @@ }, "node_modules/netlify-cli/node_modules/extract-zip/node_modules/get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -42979,45 +40583,38 @@ }, "node_modules/netlify-cli/node_modules/fast-content-type-parse": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz", - "integrity": "sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fast-decode-uri-component": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fast-diff": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/netlify-cli/node_modules/fast-equals": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-3.0.3.tgz", - "integrity": "sha512-NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fast-fifo": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", - "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fast-glob": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -43031,16 +40628,14 @@ }, "node_modules/netlify-cli/node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/netlify-cli/node_modules/fast-json-stringify": { "version": "5.15.1", - "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.15.1.tgz", - "integrity": "sha512-JopGtkvvguRqrS4gHXSSA2jf4pDgOZkeBAkLO1LbzOpiOMo7/kugoR+KiWifpLpluaVeYDkAuxCJOj4Gyc6L9A==", "dev": true, + "license": "MIT", "dependencies": { "@fastify/merge-json-schemas": "^0.1.0", "ajv": "^8.10.0", @@ -43053,9 +40648,8 @@ }, "node_modules/netlify-cli/node_modules/fast-json-stringify/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -43069,9 +40663,8 @@ }, "node_modules/netlify-cli/node_modules/fast-json-stringify/node_modules/ajv-formats": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -43086,53 +40679,45 @@ }, "node_modules/netlify-cli/node_modules/fast-json-stringify/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fast-querystring": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.0.0.tgz", - "integrity": "sha512-3LQi62IhQoDlmt4ULCYmh17vRO2EtS7hTSsG4WwoKWgV7GLMKBOecEh+aiavASnLx8I2y89OD33AGLo0ccRhzA==", "dev": true, + "license": "MIT", "dependencies": { "fast-decode-uri-component": "^1.0.1" } }, "node_modules/netlify-cli/node_modules/fast-redact": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", - "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/fast-safe-stringify": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fast-uri": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.2.0.tgz", - "integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fastest-levenshtein": { "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.9.1" } }, "node_modules/netlify-cli/node_modules/fastify": { "version": "4.27.0", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.27.0.tgz", - "integrity": "sha512-ci9IXzbigB8dyi0mSy3faa3Bsj0xWAPb9JeT4KRzubdSb6pNhcADRUaXCBml6V1Ss/a05kbtQls5LBmhHydoTA==", "dev": true, "funding": [ { @@ -43144,6 +40729,7 @@ "url": "https://opencollective.com/fastify" } ], + "license": "MIT", "dependencies": { "@fastify/ajv-compiler": "^3.5.0", "@fastify/error": "^3.4.0", @@ -43165,14 +40751,11 @@ }, "node_modules/netlify-cli/node_modules/fastify-plugin": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.4.0.tgz", - "integrity": "sha512-ovwFQG2qNy3jcCROiWpr94Hs0le+c7N/3t7m9aVwbFhkxcR/esp2xu25dP8e617HpQdmeDv+gFX4zagdUhDByw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fastify/node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -43188,6 +40771,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -43195,9 +40779,8 @@ }, "node_modules/netlify-cli/node_modules/fastify/node_modules/pino": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.1.0.tgz", - "integrity": "sha512-qUcgfrlyOtjwhNLdbhoL7NR4NkHjzykAPw0V2QLFbvu/zss29h4NkRnibyFzBrNCbzCOY3WZ9hhKSwfOkNggYA==", "dev": true, + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", @@ -43217,9 +40800,8 @@ }, "node_modules/netlify-cli/node_modules/fastify/node_modules/pino-abstract-transport": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", - "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^4.0.0", "split2": "^4.0.0" @@ -43227,21 +40809,18 @@ }, "node_modules/netlify-cli/node_modules/fastify/node_modules/pino-std-serializers": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", - "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fastify/node_modules/process-warning": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fastify/node_modules/readable-stream": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -43255,8 +40834,6 @@ }, "node_modules/netlify-cli/node_modules/fastify/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -43271,67 +40848,61 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fastify/node_modules/sonic-boom": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", - "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", "dev": true, + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" } }, "node_modules/netlify-cli/node_modules/fastify/node_modules/split2": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 10.x" } }, "node_modules/netlify-cli/node_modules/fastify/node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/netlify-cli/node_modules/fastify/node_modules/thread-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.0.0.tgz", - "integrity": "sha512-oUIFjxaUT6knhPtWgDMc29zF1FcSl0yXpapkyrQrCGEfYA2HUZXCilUtKyYIv6HkCyqSPAMkY+EG0GbyIrNDQg==", "dev": true, + "license": "MIT", "dependencies": { "real-require": "^0.2.0" } }, "node_modules/netlify-cli/node_modules/fastq": { "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/netlify-cli/node_modules/fd-slicer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, + "license": "MIT", "dependencies": { "pend": "~1.2.0" } }, "node_modules/netlify-cli/node_modules/fdir": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.0.1.tgz", - "integrity": "sha512-bdrUUb0eYQrPRlaAtlSRoLs7sp6yKEwbMQuUgwvi/14TnaqhM/deSZUrC5ic+yjm5nEPPWE61oWpTTxQFQMmLA==", "dev": true, + "license": "MIT", "peerDependencies": { "picomatch": "2.x" }, @@ -43343,14 +40914,11 @@ }, "node_modules/netlify-cli/node_modules/fecha": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fetch-blob": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", - "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", "dev": true, "funding": [ { @@ -43362,6 +40930,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -43372,9 +40941,8 @@ }, "node_modules/netlify-cli/node_modules/fetch-node-website": { "version": "7.3.0", - "resolved": "https://registry.npmjs.org/fetch-node-website/-/fetch-node-website-7.3.0.tgz", - "integrity": "sha512-/wayUHbdVUWrD72aqRNNrr6+MHnCkumZgNugN0RfiWJpbNJUdAkMk4Z18MGayGZVVqYXR1RWrV+bIFEt5HuBZg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "cli-progress": "^3.11.2", "colors-option": "^4.4.0", @@ -43388,9 +40956,8 @@ }, "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/colors-option": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-4.5.0.tgz", - "integrity": "sha512-Soe5lerRg3erMRgYC0EC696/8dMCGpBzcQchFfi55Yrkja8F+P7cUt0LVTIg7u5ob5BexLZ/F1kO+ejmv+nq8w==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.0.1", "is-plain-obj": "^4.1.0" @@ -43401,9 +40968,8 @@ }, "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -43413,9 +40979,8 @@ }, "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/figures": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" @@ -43429,9 +40994,8 @@ }, "node_modules/netlify-cli/node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -43444,18 +41008,16 @@ }, "node_modules/netlify-cli/node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/netlify-cli/node_modules/file-type": { "version": "18.5.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.5.0.tgz", - "integrity": "sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-web-to-node-stream": "^3.0.2", "strtok3": "^7.0.0", @@ -43470,15 +41032,13 @@ }, "node_modules/netlify-cli/node_modules/file-uri-to-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -43488,9 +41048,8 @@ }, "node_modules/netlify-cli/node_modules/filter-obj": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz", - "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -43500,9 +41059,8 @@ }, "node_modules/netlify-cli/node_modules/finalhandler": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -43518,24 +41076,21 @@ }, "node_modules/netlify-cli/node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/netlify-cli/node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/find-my-way": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.0.tgz", - "integrity": "sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-querystring": "^1.0.0", @@ -43547,9 +41102,8 @@ }, "node_modules/netlify-cli/node_modules/find-up": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.2.0", "path-exists": "^5.0.0", @@ -43564,9 +41118,8 @@ }, "node_modules/netlify-cli/node_modules/find-up-simple": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", - "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -43576,18 +41129,16 @@ }, "node_modules/netlify-cli/node_modules/find-up/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/flush-write-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-2.0.0.tgz", - "integrity": "sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "readable-stream": "^3.1.1" @@ -43595,23 +41146,19 @@ }, "node_modules/netlify-cli/node_modules/fn.name": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/folder-walker": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/folder-walker/-/folder-walker-3.2.0.tgz", - "integrity": "sha512-VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "from2": "^2.1.0" } }, "node_modules/netlify-cli/node_modules/follow-redirects": { "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -43619,6 +41166,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -43630,9 +41178,8 @@ }, "node_modules/netlify-cli/node_modules/foreground-child": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -43646,9 +41193,8 @@ }, "node_modules/netlify-cli/node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -43658,18 +41204,16 @@ }, "node_modules/netlify-cli/node_modules/form-data-encoder": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.3.tgz", - "integrity": "sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14.17" } }, "node_modules/netlify-cli/node_modules/formdata-polyfill": { "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", "dev": true, + "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -43679,27 +41223,24 @@ }, "node_modules/netlify-cli/node_modules/forwarded": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/from2": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -43707,18 +41248,16 @@ }, "node_modules/netlify-cli/node_modules/from2-array": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", - "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", "dev": true, + "license": "MIT", "dependencies": { "from2": "^2.0.3" } }, "node_modules/netlify-cli/node_modules/from2/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -43731,15 +41270,13 @@ }, "node_modules/netlify-cli/node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -43749,9 +41286,8 @@ }, "node_modules/netlify-cli/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -43761,16 +41297,13 @@ }, "node_modules/netlify-cli/node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -43781,17 +41314,14 @@ }, "node_modules/netlify-cli/node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/netlify-cli/node_modules/fuzzy": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", - "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -43799,9 +41329,8 @@ }, "node_modules/netlify-cli/node_modules/gauge": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "dev": true, + "license": "ISC", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", @@ -43819,9 +41348,8 @@ }, "node_modules/netlify-cli/node_modules/gauge/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -43831,9 +41359,8 @@ }, "node_modules/netlify-cli/node_modules/get-amd-module-type": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-5.0.1.tgz", - "integrity": "sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^5.0.0", "node-source-walk": "^6.0.1" @@ -43844,18 +41371,16 @@ }, "node_modules/netlify-cli/node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/netlify-cli/node_modules/get-east-asian-width": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -43865,9 +41390,8 @@ }, "node_modules/netlify-cli/node_modules/get-intrinsic": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -43879,18 +41403,16 @@ }, "node_modules/netlify-cli/node_modules/get-package-name": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/get-package-name/-/get-package-name-2.2.0.tgz", - "integrity": "sha512-LmCKVxioe63Fy6KDAQ/mmCSOSSRUE/x4zdrMD+7dU8quF3bGpzvP8mOmq4Dgce3nzU9AgkVDotucNOOg7c27BQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.0.0" } }, "node_modules/netlify-cli/node_modules/get-port": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -43900,15 +41422,13 @@ }, "node_modules/netlify-cli/node_modules/get-port-please": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", - "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -43918,9 +41438,8 @@ }, "node_modules/netlify-cli/node_modules/gh-release-fetch": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gh-release-fetch/-/gh-release-fetch-4.0.3.tgz", - "integrity": "sha512-TOiP1nwLsH5shG85Yt6v6Kjq5JU/44jXyEpbcfPgmj3C829yeXIlx9nAEwQRaxtRF3SJinn2lz7XUkfG9W/U4g==", "dev": true, + "license": "MIT", "dependencies": { "@xhmikosr/downloader": "^13.0.0", "node-fetch": "^3.3.1", @@ -43932,39 +41451,34 @@ }, "node_modules/netlify-cli/node_modules/git-repo-info": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz", - "integrity": "sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0" } }, "node_modules/netlify-cli/node_modules/gitconfiglocal": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz", - "integrity": "sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==", "dev": true, + "license": "BSD", "dependencies": { "ini": "^1.3.2" } }, "node_modules/netlify-cli/node_modules/gitconfiglocal/node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/github-from-package": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -43982,9 +41496,8 @@ }, "node_modules/netlify-cli/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -43994,9 +41507,8 @@ }, "node_modules/netlify-cli/node_modules/global-cache-dir": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global-cache-dir/-/global-cache-dir-4.4.0.tgz", - "integrity": "sha512-bk0gI6IbbphRjAaCJJn5H+T/CcEck5B3a5KBO2BXSDzjFSV+API17w8GA7YPJ6IXJiasW8M0VsEIig1PCHdfOQ==", "dev": true, + "license": "MIT", "dependencies": { "cachedir": "^2.3.0", "path-exists": "^5.0.0" @@ -44007,18 +41519,16 @@ }, "node_modules/netlify-cli/node_modules/global-cache-dir/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -44036,9 +41546,8 @@ }, "node_modules/netlify-cli/node_modules/gonzales-pe": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5" }, @@ -44051,9 +41560,8 @@ }, "node_modules/netlify-cli/node_modules/got": { "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -44076,15 +41584,13 @@ }, "node_modules/netlify-cli/node_modules/graceful-fs": { "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/h3": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.10.1.tgz", - "integrity": "sha512-UBAUp47hmm4BB5/njB4LrEa9gpuvZj4/Qf/ynSMzO6Ku2RXaouxEfiG2E2IFnv6fxbhAkzjasDxmo6DFdEeXRg==", "dev": true, + "license": "MIT", "dependencies": { "cookie-es": "^1.0.0", "defu": "^6.1.4", @@ -44099,9 +41605,8 @@ }, "node_modules/netlify-cli/node_modules/has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -44111,27 +41616,24 @@ }, "node_modules/netlify-cli/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/has-own-prop": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -44141,15 +41643,13 @@ }, "node_modules/netlify-cli/node_modules/has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/hasbin": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/hasbin/-/hasbin-1.2.3.tgz", - "integrity": "sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg==", "dev": true, + "license": "MIT", "dependencies": { "async": "~1.5" }, @@ -44159,15 +41659,13 @@ }, "node_modules/netlify-cli/node_modules/hasbin/node_modules/async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/hasha": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, + "license": "MIT", "dependencies": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" @@ -44181,9 +41679,8 @@ }, "node_modules/netlify-cli/node_modules/hasha/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -44193,18 +41690,16 @@ }, "node_modules/netlify-cli/node_modules/hasha/node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/hosted-git-info": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -44214,9 +41709,8 @@ }, "node_modules/netlify-cli/node_modules/hot-shots": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-10.0.0.tgz", - "integrity": "sha512-uy/uGpuJk7yuyiKRfZMBNkF1GAOX5O2ifO9rDCaX9jw8fu6eW9QeWC7WRPDI+O98frW1HQgV3+xwjWsZPECIzQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -44226,15 +41720,13 @@ }, "node_modules/netlify-cli/node_modules/http-cache-semantics": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/netlify-cli/node_modules/http-errors": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -44248,18 +41740,16 @@ }, "node_modules/netlify-cli/node_modules/http-errors/node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/http-proxy": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -44271,9 +41761,8 @@ }, "node_modules/netlify-cli/node_modules/http-proxy-middleware": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -44295,9 +41784,8 @@ }, "node_modules/netlify-cli/node_modules/http-proxy-middleware/node_modules/is-plain-obj": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -44307,9 +41795,8 @@ }, "node_modules/netlify-cli/node_modules/http-shutdown": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", - "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -44317,9 +41804,8 @@ }, "node_modules/netlify-cli/node_modules/http2-wrapper": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dev": true, + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -44330,9 +41816,8 @@ }, "node_modules/netlify-cli/node_modules/https-proxy-agent": { "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -44343,9 +41828,8 @@ }, "node_modules/netlify-cli/node_modules/https-proxy-agent/node_modules/agent-base": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -44355,18 +41839,16 @@ }, "node_modules/netlify-cli/node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/netlify-cli/node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -44376,8 +41858,6 @@ }, "node_modules/netlify-cli/node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -44392,46 +41872,42 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/netlify-cli/node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/netlify-cli/node_modules/image-meta": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/image-meta/-/image-meta-0.2.0.tgz", - "integrity": "sha512-ZBGjl0ZMEMeOC3Ns0wUF/5UdUmr3qQhBSCniT0LxOgGGIRHiNFOkMtIHB7EOznRU47V2AxPgiVP+s+0/UCU0Hg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/import-lazy": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/netlify-cli/node_modules/index-to-position": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", - "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -44441,9 +41917,8 @@ }, "node_modules/netlify-cli/node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -44451,15 +41926,13 @@ }, "node_modules/netlify-cli/node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/inquirer": { "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", @@ -44481,9 +41954,8 @@ }, "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz", - "integrity": "sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw==", "dev": true, + "license": "ISC", "dependencies": { "ansi-escapes": "^4.3.1", "chalk": "^4.0.0", @@ -44500,9 +41972,8 @@ }, "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -44515,9 +41986,8 @@ }, "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -44530,9 +42000,8 @@ }, "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -44546,9 +42015,8 @@ }, "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -44558,15 +42026,13 @@ }, "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -44576,9 +42042,8 @@ }, "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -44588,27 +42053,24 @@ }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/ansi-escapes": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/ansi-regex": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -44618,9 +42080,8 @@ }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -44632,18 +42093,16 @@ }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -44653,27 +42112,24 @@ }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, + "license": "MIT", "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -44684,18 +42140,16 @@ }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/string-width/node_modules/ansi-regex": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^3.0.0" }, @@ -44705,9 +42159,8 @@ }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -44717,9 +42170,8 @@ }, "node_modules/netlify-cli/node_modules/inquirer/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -44729,18 +42181,16 @@ }, "node_modules/netlify-cli/node_modules/inspect-with-kind": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz", - "integrity": "sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==", "dev": true, + "license": "ISC", "dependencies": { "kind-of": "^6.0.2" } }, "node_modules/netlify-cli/node_modules/ioredis": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", "dev": true, + "license": "MIT", "dependencies": { "@ioredis/commands": "^1.1.1", "cluster-key-slot": "^1.1.0", @@ -44762,18 +42212,16 @@ }, "node_modules/netlify-cli/node_modules/ipaddr.js": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/netlify-cli/node_modules/ipx": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipx/-/ipx-2.1.0.tgz", - "integrity": "sha512-AVnPGXJ8L41vjd11Z4akIF2yd14636Klxul3tBySxHA6PKfCOQPxBDkCFK5zcWh0z/keR6toh1eg8qzdBVUgdA==", "dev": true, + "license": "MIT", "dependencies": { "@fastify/accept-negotiator": "^1.1.0", "citty": "^0.1.5", @@ -44798,9 +42246,8 @@ }, "node_modules/netlify-cli/node_modules/ipx/node_modules/@netlify/blobs": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-6.5.0.tgz", - "integrity": "sha512-wRFlNnL/Qv3WNLZd3OT/YYqF1zb6iPSo8T31sl9ccL1ahBxW1fBqKgF4b1XL7Z+6mRIkatvcsVPkWBcO+oJMNA==", "dev": true, + "license": "MIT", "optional": true, "peer": true, "engines": { @@ -44809,18 +42256,16 @@ }, "node_modules/netlify-cli/node_modules/ipx/node_modules/lru-cache": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "dev": true, + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/netlify-cli/node_modules/ipx/node_modules/unstorage": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.10.1.tgz", - "integrity": "sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw==", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^3.5.3", @@ -44889,24 +42334,21 @@ }, "node_modules/netlify-cli/node_modules/iron-webcrypto": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.0.0.tgz", - "integrity": "sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/brc-dd" } }, "node_modules/netlify-cli/node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -44916,9 +42358,8 @@ }, "node_modules/netlify-cli/node_modules/is-builtin-module": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", "dev": true, + "license": "MIT", "dependencies": { "builtin-modules": "^3.0.0" }, @@ -44928,9 +42369,8 @@ }, "node_modules/netlify-cli/node_modules/is-core-module": { "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, + "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -44940,9 +42380,8 @@ }, "node_modules/netlify-cli/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==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -44955,18 +42394,16 @@ }, "node_modules/netlify-cli/node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/is-fullwidth-code-point": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -44976,9 +42413,8 @@ }, "node_modules/netlify-cli/node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -44988,9 +42424,8 @@ }, "node_modules/netlify-cli/node_modules/is-in-ci": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz", - "integrity": "sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==", "dev": true, + "license": "MIT", "bin": { "is-in-ci": "cli.js" }, @@ -45003,9 +42438,8 @@ }, "node_modules/netlify-cli/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==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^3.0.0" }, @@ -45021,9 +42455,8 @@ }, "node_modules/netlify-cli/node_modules/is-installed-globally": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -45037,9 +42470,8 @@ }, "node_modules/netlify-cli/node_modules/is-installed-globally/node_modules/global-dirs": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -45052,18 +42484,16 @@ }, "node_modules/netlify-cli/node_modules/is-installed-globally/node_modules/ini": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/netlify-cli/node_modules/is-interactive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -45073,9 +42503,8 @@ }, "node_modules/netlify-cli/node_modules/is-npm": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -45085,36 +42514,32 @@ }, "node_modules/netlify-cli/node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/netlify-cli/node_modules/is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/is-plain-obj": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -45124,9 +42549,8 @@ }, "node_modules/netlify-cli/node_modules/is-stream": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -45136,15 +42560,13 @@ }, "node_modules/netlify-cli/node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/is-unicode-supported": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -45154,15 +42576,13 @@ }, "node_modules/netlify-cli/node_modules/is-url": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/is-url-superb": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", - "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -45172,9 +42592,8 @@ }, "node_modules/netlify-cli/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==", "dev": true, + "license": "MIT", "dependencies": { "is-inside-container": "^1.0.0" }, @@ -45187,9 +42606,8 @@ }, "node_modules/netlify-cli/node_modules/is64bit": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", - "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", "dev": true, + "license": "MIT", "dependencies": { "system-architecture": "^0.1.0" }, @@ -45202,30 +42620,26 @@ }, "node_modules/netlify-cli/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/iserror": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz", - "integrity": "sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/isexe": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=16" } }, "node_modules/netlify-cli/node_modules/jackspeak": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -45241,18 +42655,16 @@ }, "node_modules/netlify-cli/node_modules/jest-get-type": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "dev": true, + "license": "MIT", "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/netlify-cli/node_modules/jest-validate": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "camelcase": "^6.2.0", @@ -45267,9 +42679,8 @@ }, "node_modules/netlify-cli/node_modules/jest-validate/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -45282,9 +42693,8 @@ }, "node_modules/netlify-cli/node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -45298,9 +42708,8 @@ }, "node_modules/netlify-cli/node_modules/jest-validate/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -45310,15 +42719,13 @@ }, "node_modules/netlify-cli/node_modules/jest-validate/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -45328,33 +42735,29 @@ }, "node_modules/netlify-cli/node_modules/jiti": { "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/netlify-cli/node_modules/js-string-escape": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -45364,52 +42767,45 @@ }, "node_modules/netlify-cli/node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/json-schema-ref-resolver": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz", - "integrity": "sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" } }, "node_modules/netlify-cli/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/netlify-cli/node_modules/jsonc-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/jsonpointer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/jsonwebtoken": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", "dev": true, + "license": "MIT", "dependencies": { "jws": "^3.2.2", "lodash.includes": "^4.3.0", @@ -45429,9 +42825,8 @@ }, "node_modules/netlify-cli/node_modules/junk": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", - "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -45441,9 +42836,8 @@ }, "node_modules/netlify-cli/node_modules/jwa": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", "dev": true, + "license": "MIT", "dependencies": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", @@ -45452,9 +42846,8 @@ }, "node_modules/netlify-cli/node_modules/jws": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "dev": true, + "license": "MIT", "dependencies": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" @@ -45462,18 +42855,16 @@ }, "node_modules/netlify-cli/node_modules/jwt-decode": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", - "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/netlify-cli/node_modules/keep-func-props": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/keep-func-props/-/keep-func-props-4.0.1.tgz", - "integrity": "sha512-87ftOIICfdww3SxR5P1veq3ThBNyRPG0JGL//oaR08v0k2yTicEIHd7s0GqSJfQvlb+ybC3GiDepOweo0LDhvw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -45483,33 +42874,29 @@ }, "node_modules/netlify-cli/node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/netlify-cli/node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/kuler": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lambda-local": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/lambda-local/-/lambda-local-2.2.0.tgz", - "integrity": "sha512-bPcgpIXbHnVGfI/omZIlgucDqlf4LrsunwoKue5JdZeGybt8L6KyJz2Zu19ffuZwIwLj2NAI2ZyaqNT6/cetcg==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^10.0.1", "dotenv": "^16.3.1", @@ -45524,9 +42911,8 @@ }, "node_modules/netlify-cli/node_modules/latest-version": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", "dev": true, + "license": "MIT", "dependencies": { "package-json": "^8.1.0" }, @@ -45539,9 +42925,8 @@ }, "node_modules/netlify-cli/node_modules/lazystream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.0.5" }, @@ -45551,9 +42936,8 @@ }, "node_modules/netlify-cli/node_modules/lazystream/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -45566,18 +42950,16 @@ }, "node_modules/netlify-cli/node_modules/leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/light-my-request": { "version": "5.13.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.13.0.tgz", - "integrity": "sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "cookie": "^0.6.0", "process-warning": "^3.0.0", @@ -45586,21 +42968,18 @@ }, "node_modules/netlify-cli/node_modules/light-my-request/node_modules/process-warning": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/listhen": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.6.0.tgz", - "integrity": "sha512-z0RcEXVX5oTpY1bO02SKoTU/kmZSrFSngNNzHRM6KICR17PTq7ANush6AE6ztGJwJD4RLpBrVHd9GnV51J7s3w==", "dev": true, + "license": "MIT", "dependencies": { "@parcel/watcher": "^2.4.0", "@parcel/watcher-wasm": "2.4.0", @@ -45628,9 +43007,8 @@ }, "node_modules/netlify-cli/node_modules/listr2": { "version": "8.2.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.3.tgz", - "integrity": "sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", @@ -45645,21 +43023,18 @@ }, "node_modules/netlify-cli/node_modules/listr2/node_modules/emoji-regex": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/listr2/node_modules/eventemitter3": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/listr2/node_modules/string-width": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -45674,9 +43049,8 @@ }, "node_modules/netlify-cli/node_modules/listr2/node_modules/wrap-ansi": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", @@ -45691,9 +43065,8 @@ }, "node_modules/netlify-cli/node_modules/locate-path": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -45706,9 +43079,8 @@ }, "node_modules/netlify-cli/node_modules/locate-path/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -45721,9 +43093,8 @@ }, "node_modules/netlify-cli/node_modules/locate-path/node_modules/p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -45736,9 +43107,8 @@ }, "node_modules/netlify-cli/node_modules/locate-path/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -45748,93 +43118,78 @@ }, "node_modules/netlify-cli/node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash-es": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.deburr": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.defaults": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.includes": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.isarguments": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.isboolean": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.isempty": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", - "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.isinteger": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.isnumber": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.isstring": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.once": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/lodash.transform": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", - "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/log-process-errors": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/log-process-errors/-/log-process-errors-8.0.0.tgz", - "integrity": "sha512-+SNGqNC1gCMJfhwYzAHr/YgNT/ZJc+V2nCkvtPnjrENMeCe+B/jgShBW0lmWoh6uVV2edFAPc/IUOkDdsjTbTg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "colors-option": "^3.0.0", "figures": "^4.0.0", @@ -45850,9 +43205,8 @@ }, "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -45862,9 +43216,8 @@ }, "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/figures": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", - "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" @@ -45878,9 +43231,8 @@ }, "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/filter-obj": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", - "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -45890,9 +43242,8 @@ }, "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/map-obj": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -45902,9 +43253,8 @@ }, "node_modules/netlify-cli/node_modules/log-symbols": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.3.0", "is-unicode-supported": "^1.3.0" @@ -45918,9 +43268,8 @@ }, "node_modules/netlify-cli/node_modules/log-update": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", - "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^6.2.0", "cli-cursor": "^4.0.0", @@ -45937,9 +43286,8 @@ }, "node_modules/netlify-cli/node_modules/log-update/node_modules/ansi-escapes": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", - "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -45949,9 +43297,8 @@ }, "node_modules/netlify-cli/node_modules/log-update/node_modules/cli-cursor": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^4.0.0" }, @@ -45964,15 +43311,13 @@ }, "node_modules/netlify-cli/node_modules/log-update/node_modules/emoji-regex": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/log-update/node_modules/is-fullwidth-code-point": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, + "license": "MIT", "dependencies": { "get-east-asian-width": "^1.0.0" }, @@ -45985,9 +43330,8 @@ }, "node_modules/netlify-cli/node_modules/log-update/node_modules/restore-cursor": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -46001,9 +43345,8 @@ }, "node_modules/netlify-cli/node_modules/log-update/node_modules/slice-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^5.0.0" @@ -46017,9 +43360,8 @@ }, "node_modules/netlify-cli/node_modules/log-update/node_modules/string-width": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -46034,9 +43376,8 @@ }, "node_modules/netlify-cli/node_modules/log-update/node_modules/wrap-ansi": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", @@ -46051,9 +43392,8 @@ }, "node_modules/netlify-cli/node_modules/logform": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", - "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", "dev": true, + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "fecha": "^4.2.0", @@ -46064,9 +43404,8 @@ }, "node_modules/netlify-cli/node_modules/lowercase-keys": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -46076,9 +43415,8 @@ }, "node_modules/netlify-cli/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -46088,18 +43426,16 @@ }, "node_modules/netlify-cli/node_modules/luxon": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", - "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/netlify-cli/node_modules/macos-release": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.0.1.tgz", - "integrity": "sha512-3l6OrhdDg2H2SigtuN3jBh+5dRJRWxNKuJTPBbGeNJTsmt/pj9PO25wYaNb05NuNmAsl435j4rDP6rgNXz7s7g==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -46109,9 +43445,8 @@ }, "node_modules/netlify-cli/node_modules/make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -46124,30 +43459,26 @@ }, "node_modules/netlify-cli/node_modules/make-dir/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/netlify-cli/node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/maxstache": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/maxstache/-/maxstache-1.0.7.tgz", - "integrity": "sha512-53ZBxHrZM+W//5AcRVewiLpDunHnucfdzZUGz54Fnvo4tE+J3p8EL66kBrs2UhBXvYKTWckWYYWBqJqoTcenqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/maxstache-stream": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/maxstache-stream/-/maxstache-stream-1.0.4.tgz", - "integrity": "sha512-v8qlfPN0pSp7bdSoLo1NTjG43GXGqk5W2NWFnOCq2GlmFFqebGzPCjLKSbShuqIOVorOtZSAy7O/S1OCCRONUw==", "dev": true, + "license": "MIT", "dependencies": { "maxstache": "^1.0.0", "pump": "^1.0.0", @@ -46157,9 +43488,8 @@ }, "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/pump": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -46167,9 +43497,8 @@ }, "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -46182,18 +43511,16 @@ }, "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/split2": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz", - "integrity": "sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA==", "dev": true, + "license": "ISC", "dependencies": { "through2": "~2.0.0" } }, "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -46201,9 +43528,8 @@ }, "node_modules/netlify-cli/node_modules/md5-hex": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", - "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", "dev": true, + "license": "MIT", "dependencies": { "blueimp-md5": "^2.10.0" }, @@ -46213,36 +43539,31 @@ }, "node_modules/netlify-cli/node_modules/mdn-data": { "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/netlify-cli/node_modules/media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/memoize-one": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/merge-options": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^2.1.0" }, @@ -46252,54 +43573,47 @@ }, "node_modules/netlify-cli/node_modules/merge-options/node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/netlify-cli/node_modules/methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/micro-api-client": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz", - "integrity": "sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/micro-memoize": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.0.11.tgz", - "integrity": "sha512-CjxsaYe4j43df32DtzzNCwanPqZjZDwuQAZilsCYpa2ZVtSPDjHXbTlR4gsEZRyO9/twHs0b7HLjvy/sowl7sA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -46310,9 +43624,8 @@ }, "node_modules/netlify-cli/node_modules/mime": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -46322,18 +43635,16 @@ }, "node_modules/netlify-cli/node_modules/mime-db": { "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/mime-types": { "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.51.0" }, @@ -46343,9 +43654,8 @@ }, "node_modules/netlify-cli/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -46355,9 +43665,8 @@ }, "node_modules/netlify-cli/node_modules/mimic-response": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -46367,9 +43676,8 @@ }, "node_modules/netlify-cli/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -46379,27 +43687,24 @@ }, "node_modules/netlify-cli/node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/netlify-cli/node_modules/minipass": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -46410,9 +43715,8 @@ }, "node_modules/netlify-cli/node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -46422,9 +43726,8 @@ }, "node_modules/netlify-cli/node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -46434,15 +43737,13 @@ }, "node_modules/netlify-cli/node_modules/mkdirp-classic": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/mlly": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz", - "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.11.3", "pathe": "^1.1.2", @@ -46452,9 +43753,8 @@ }, "node_modules/netlify-cli/node_modules/module-definition": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-5.0.1.tgz", - "integrity": "sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^5.0.0", "node-source-walk": "^6.0.1" @@ -46468,9 +43768,8 @@ }, "node_modules/netlify-cli/node_modules/moize": { "version": "6.1.3", - "resolved": "https://registry.npmjs.org/moize/-/moize-6.1.3.tgz", - "integrity": "sha512-Cn+1T5Ypieeo46fn8X98V2gHj2VSRohVPjvT8BRvNANJJC3UOeege/G84xA/3S9c5qA4p9jOdSB1jfhumwe8qw==", "dev": true, + "license": "MIT", "dependencies": { "fast-equals": "^3.0.1", "micro-memoize": "^4.0.11" @@ -46478,9 +43777,8 @@ }, "node_modules/netlify-cli/node_modules/move-file": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-3.0.0.tgz", - "integrity": "sha512-v6u4XjX3MFW6Jo1V/YfbhC7eiGSgvYPJ/NM+aGtTtB9/Y6IYj7YViaHu6dkgDsZFB7MbnAoSI5+Z26XZXnP0vg==", "dev": true, + "license": "MIT", "dependencies": { "path-exists": "^5.0.0" }, @@ -46493,33 +43791,29 @@ }, "node_modules/netlify-cli/node_modules/move-file/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/mri": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/multiparty": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.3.tgz", - "integrity": "sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==", "dev": true, + "license": "MIT", "dependencies": { "http-errors": "~1.8.1", "safe-buffer": "5.2.1", @@ -46531,8 +43825,6 @@ }, "node_modules/netlify-cli/node_modules/multiparty/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -46547,25 +43839,22 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/nan": { "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/netlify-cli/node_modules/nanoid": { "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -46573,6 +43862,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -46582,30 +43872,26 @@ }, "node_modules/netlify-cli/node_modules/napi-build-utils": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/negotiator": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/nested-error-stacks": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", - "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/netlify": { "version": "13.1.20", - "resolved": "https://registry.npmjs.org/netlify/-/netlify-13.1.20.tgz", - "integrity": "sha512-pfYUCfaywrzkMzN8If4IVM58DqsAYq2JroAFziuYK7m0LKYPzlbuSNYWhlfQL/zoBmRm8kxzRxEiK6fj1tvOOw==", "dev": true, + "license": "MIT", "dependencies": { "@netlify/open-api": "^2.33.1", "lodash-es": "^4.17.21", @@ -46621,9 +43907,8 @@ }, "node_modules/netlify-cli/node_modules/netlify-headers-parser": { "version": "7.1.4", - "resolved": "https://registry.npmjs.org/netlify-headers-parser/-/netlify-headers-parser-7.1.4.tgz", - "integrity": "sha512-fTVQf8u65vS4YTP2Qt1K6Np01q3yecRKXf6VMONMlWbfl5n3M/on7pZlZISNAXHNOtnVt+6Kpwfl+RIeALC8Kg==", "dev": true, + "license": "MIT", "dependencies": { "@iarna/toml": "^2.2.5", "escape-string-regexp": "^5.0.0", @@ -46638,9 +43923,8 @@ }, "node_modules/netlify-cli/node_modules/netlify-headers-parser/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -46650,9 +43934,8 @@ }, "node_modules/netlify-cli/node_modules/netlify-headers-parser/node_modules/map-obj": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", - "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -46662,18 +43945,16 @@ }, "node_modules/netlify-cli/node_modules/netlify-headers-parser/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/netlify-redirect-parser": { "version": "14.3.0", - "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-14.3.0.tgz", - "integrity": "sha512-/Oqq+SrTXk8hZqjCBy0AkWf5qAhsgcsdxQA09uYFdSSNG5w9rhh17a7dp77o5Q5XoHCahm8u4Kig/lbXkl4j2g==", "dev": true, + "license": "MIT", "dependencies": { "@iarna/toml": "^2.2.5", "fast-safe-stringify": "^2.1.1", @@ -46687,24 +43968,21 @@ }, "node_modules/netlify-cli/node_modules/netlify-redirect-parser/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/netlify-redirector": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/netlify-redirector/-/netlify-redirector-0.5.0.tgz", - "integrity": "sha512-4zdzIP+6muqPCuE8avnrgDJ6KW/2+UpHTRcTbMXCIRxiRmyrX+IZ4WSJGZdHPWF3WmQpXpy603XxecZ9iygN7w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/netlify/node_modules/p-timeout": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -46714,9 +43992,8 @@ }, "node_modules/netlify-cli/node_modules/netlify/node_modules/p-wait-for": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", - "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", "dev": true, + "license": "MIT", "dependencies": { "p-timeout": "^5.0.0" }, @@ -46729,9 +44006,8 @@ }, "node_modules/netlify-cli/node_modules/node-abi": { "version": "3.51.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", - "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -46741,17 +44017,14 @@ }, "node_modules/netlify-cli/node_modules/node-addon-api": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", "dev": true, + "license": "MIT", "engines": { "node": "^16 || ^18 || >= 20" } }, "node_modules/netlify-cli/node_modules/node-domexception": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "dev": true, "funding": [ { @@ -46763,15 +44036,15 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } }, "node_modules/netlify-cli/node_modules/node-fetch": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dev": true, + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -46787,24 +44060,21 @@ }, "node_modules/netlify-cli/node_modules/node-fetch-native": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.2.tgz", - "integrity": "sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/node-forge": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/netlify-cli/node_modules/node-gyp-build": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "dev": true, + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -46813,9 +44083,8 @@ }, "node_modules/netlify-cli/node_modules/node-source-walk": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-6.0.2.tgz", - "integrity": "sha512-jn9vOIK/nfqoFCcpK89/VCVaLg1IHE6UVfDOzvqmANaJ/rWCTEdH8RZ1V278nv2jr36BJdyQXIAavBLXpzdlag==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.21.8" }, @@ -46825,9 +44094,8 @@ }, "node_modules/netlify-cli/node_modules/node-stream-zip": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", - "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" }, @@ -46838,9 +44106,8 @@ }, "node_modules/netlify-cli/node_modules/node-version-alias": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/node-version-alias/-/node-version-alias-3.4.1.tgz", - "integrity": "sha512-Kf3L9spAL6lEHMPyqpwHSTNG3LPkOXBfSUnBMG/YE2TdoC8Qoqf0+qg01nr6K9MFQEcXtWUyTQzLJByRixSBsA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "all-node-versions": "^11.3.0", "filter-obj": "^5.1.0", @@ -46855,18 +44122,16 @@ }, "node_modules/netlify-cli/node_modules/node-version-alias/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/nopt": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "license": "ISC", "dependencies": { "abbrev": "1" }, @@ -46879,9 +44144,8 @@ }, "node_modules/netlify-cli/node_modules/normalize-node-version": { "version": "12.4.0", - "resolved": "https://registry.npmjs.org/normalize-node-version/-/normalize-node-version-12.4.0.tgz", - "integrity": "sha512-0oLZN5xcyKVrSHMk8/9RuNblEe7HEsXAt5Te2xmMiZD9VX7bqWYe0HMyfqSYFD3xv0949lZuXaEwjTqle1uWWQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "all-node-versions": "^11.3.0", "filter-obj": "^5.1.0", @@ -46893,9 +44157,8 @@ }, "node_modules/netlify-cli/node_modules/normalize-package-data": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -46908,18 +44171,16 @@ }, "node_modules/netlify-cli/node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/normalize-url": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -46929,9 +44190,8 @@ }, "node_modules/netlify-cli/node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -46941,18 +44201,16 @@ }, "node_modules/netlify-cli/node_modules/npm-run-path/node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/npmlog": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "dev": true, + "license": "ISC", "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", @@ -46962,9 +44220,8 @@ }, "node_modules/netlify-cli/node_modules/nth-check": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -46974,27 +44231,24 @@ }, "node_modules/netlify-cli/node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/object-inspect": { "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/netlify-cli/node_modules/ofetch": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.3.3.tgz", - "integrity": "sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==", "dev": true, + "license": "MIT", "dependencies": { "destr": "^2.0.1", "node-fetch-native": "^1.4.0", @@ -47003,30 +44257,26 @@ }, "node_modules/netlify-cli/node_modules/ohash": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", - "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/omit.js": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz", - "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/on-exit-leak-free": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", - "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/netlify-cli/node_modules/on-finished": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -47036,36 +44286,32 @@ }, "node_modules/netlify-cli/node_modules/on-headers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/netlify-cli/node_modules/one-time": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", "dev": true, + "license": "MIT", "dependencies": { "fn.name": "1.x.x" } }, "node_modules/netlify-cli/node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -47078,18 +44324,16 @@ }, "node_modules/netlify-cli/node_modules/onetime/node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/open": { "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, + "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -47104,9 +44348,8 @@ }, "node_modules/netlify-cli/node_modules/open/node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -47119,9 +44362,8 @@ }, "node_modules/netlify-cli/node_modules/open/node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -47131,9 +44373,8 @@ }, "node_modules/netlify-cli/node_modules/ora": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.0.1.tgz", - "integrity": "sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^4.0.0", @@ -47154,9 +44395,8 @@ }, "node_modules/netlify-cli/node_modules/ora/node_modules/cli-cursor": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^4.0.0" }, @@ -47169,15 +44409,13 @@ }, "node_modules/netlify-cli/node_modules/ora/node_modules/emoji-regex": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/ora/node_modules/is-unicode-supported": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", - "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -47187,9 +44425,8 @@ }, "node_modules/netlify-cli/node_modules/ora/node_modules/restore-cursor": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -47203,9 +44440,8 @@ }, "node_modules/netlify-cli/node_modules/ora/node_modules/string-width": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -47220,9 +44456,8 @@ }, "node_modules/netlify-cli/node_modules/os-name": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.0.1.tgz", - "integrity": "sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==", "dev": true, + "license": "MIT", "dependencies": { "macos-release": "^3.0.1", "windows-release": "^5.0.1" @@ -47236,27 +44471,24 @@ }, "node_modules/netlify-cli/node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/p-cancelable": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" } }, "node_modules/netlify-cli/node_modules/p-event": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", - "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", "dev": true, + "license": "MIT", "dependencies": { "p-timeout": "^5.0.2" }, @@ -47269,9 +44501,8 @@ }, "node_modules/netlify-cli/node_modules/p-event/node_modules/p-timeout": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -47281,9 +44512,8 @@ }, "node_modules/netlify-cli/node_modules/p-every": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-every/-/p-every-2.0.0.tgz", - "integrity": "sha512-MCz9DqD5opPC48Zsd+BHm56O/HfhYIQQtupfDzhXoVgQdg/Ux4F8/JcdRuQ+arq7zD5fB6zP3axbH3d9Nr8dlw==", "dev": true, + "license": "MIT", "dependencies": { "p-map": "^2.0.0" }, @@ -47293,18 +44523,16 @@ }, "node_modules/netlify-cli/node_modules/p-every/node_modules/p-map": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/p-filter": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", - "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", "dev": true, + "license": "MIT", "dependencies": { "p-map": "^7.0.1" }, @@ -47317,18 +44545,16 @@ }, "node_modules/netlify-cli/node_modules/p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/p-map": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", - "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -47338,9 +44564,8 @@ }, "node_modules/netlify-cli/node_modules/p-reduce": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", - "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -47350,9 +44575,8 @@ }, "node_modules/netlify-cli/node_modules/p-retry": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", - "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", "dev": true, + "license": "MIT", "dependencies": { "@types/retry": "0.12.1", "retry": "^0.13.1" @@ -47366,9 +44590,8 @@ }, "node_modules/netlify-cli/node_modules/p-timeout": { "version": "6.1.2", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", - "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -47378,9 +44601,8 @@ }, "node_modules/netlify-cli/node_modules/p-wait-for": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-5.0.2.tgz", - "integrity": "sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==", "dev": true, + "license": "MIT", "dependencies": { "p-timeout": "^6.0.0" }, @@ -47393,9 +44615,8 @@ }, "node_modules/netlify-cli/node_modules/package-json": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", - "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", "dev": true, + "license": "MIT", "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -47411,9 +44632,8 @@ }, "node_modules/netlify-cli/node_modules/parallel-transform": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "dev": true, + "license": "MIT", "dependencies": { "cyclist": "^1.0.1", "inherits": "^2.0.3", @@ -47422,9 +44642,8 @@ }, "node_modules/netlify-cli/node_modules/parallel-transform/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -47437,9 +44656,8 @@ }, "node_modules/netlify-cli/node_modules/parse-github-url": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", "dev": true, + "license": "MIT", "bin": { "parse-github-url": "cli.js" }, @@ -47449,18 +44667,16 @@ }, "node_modules/netlify-cli/node_modules/parse-gitignore": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-2.0.0.tgz", - "integrity": "sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/netlify-cli/node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -47476,9 +44692,8 @@ }, "node_modules/netlify-cli/node_modules/parse-ms": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz", - "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -47488,27 +44703,24 @@ }, "node_modules/netlify-cli/node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -47518,61 +44730,31 @@ }, "node_modules/netlify-cli/node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/netlify-cli/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/netlify-cli/node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "MIT" }, "node_modules/netlify-cli/node_modules/path-to-regexp": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/pathe": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/peek-readable": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", - "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -47583,21 +44765,18 @@ }, "node_modules/netlify-cli/node_modules/pend": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -47607,9 +44786,8 @@ }, "node_modules/netlify-cli/node_modules/pkg-types": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", "dev": true, + "license": "MIT", "dependencies": { "jsonc-parser": "^3.2.0", "mlly": "^1.2.0", @@ -47618,8 +44796,6 @@ }, "node_modules/netlify-cli/node_modules/postcss": { "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { @@ -47635,6 +44811,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -47646,9 +44823,8 @@ }, "node_modules/netlify-cli/node_modules/postcss-values-parser": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", - "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", "dev": true, + "license": "MPL-2.0", "dependencies": { "color-name": "^1.1.4", "is-url-superb": "^4.0.0", @@ -47663,15 +44839,13 @@ }, "node_modules/netlify-cli/node_modules/postcss-values-parser/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/prebuild-install": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", "dev": true, + "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -47695,15 +44869,13 @@ }, "node_modules/netlify-cli/node_modules/prebuild-install/node_modules/chownr": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/prebuild-install/node_modules/tar-fs": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, + "license": "MIT", "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -47713,9 +44885,8 @@ }, "node_modules/netlify-cli/node_modules/prebuild-install/node_modules/tar-stream": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -47729,9 +44900,8 @@ }, "node_modules/netlify-cli/node_modules/precinct": { "version": "11.0.5", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-11.0.5.tgz", - "integrity": "sha512-oHSWLC8cL/0znFhvln26D14KfCQFFn4KOLSw6hmLhd+LQ2SKt9Ljm89but76Pc7flM9Ty1TnXyrA2u16MfRV3w==", "dev": true, + "license": "MIT", "dependencies": { "@dependents/detective-less": "^4.1.0", "commander": "^10.0.1", @@ -47755,8 +44925,6 @@ }, "node_modules/netlify-cli/node_modules/precond": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", "dev": true, "engines": { "node": ">= 0.6" @@ -47764,9 +44932,8 @@ }, "node_modules/netlify-cli/node_modules/pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -47778,9 +44945,8 @@ }, "node_modules/netlify-cli/node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -47790,9 +44956,8 @@ }, "node_modules/netlify-cli/node_modules/pretty-ms": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz", - "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==", "dev": true, + "license": "MIT", "dependencies": { "parse-ms": "^3.0.0" }, @@ -47805,9 +44970,8 @@ }, "node_modules/netlify-cli/node_modules/prettyjson": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz", - "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==", "dev": true, + "license": "MIT", "dependencies": { "colors": "1.4.0", "minimist": "^1.2.0" @@ -47818,30 +44982,26 @@ }, "node_modules/netlify-cli/node_modules/process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/netlify-cli/node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/proto-list": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/proxy-addr": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -47852,9 +45012,8 @@ }, "node_modules/netlify-cli/node_modules/ps-list": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.0.tgz", - "integrity": "sha512-NoGBqJe7Ou3kfQxEvDzDyKGAyEgwIuD3YrfXinjcCmBRv0hTld0Xb71hrXvtsNPj7HSFATfemvzB8PPJtq6Yag==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -47864,9 +45023,8 @@ }, "node_modules/netlify-cli/node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -47874,18 +45032,16 @@ }, "node_modules/netlify-cli/node_modules/punycode": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/pupa": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", "dev": true, + "license": "MIT", "dependencies": { "escape-goat": "^4.0.0" }, @@ -47898,9 +45054,8 @@ }, "node_modules/netlify-cli/node_modules/qs": { "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -47913,8 +45068,6 @@ }, "node_modules/netlify-cli/node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -47929,25 +45082,23 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/queue-tick": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/quick-format-unescaped": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/quick-lru": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -47957,39 +45108,34 @@ }, "node_modules/netlify-cli/node_modules/quote-unquote": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", - "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/radix3": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.0.tgz", - "integrity": "sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/random-bytes": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/range-parser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/netlify-cli/node_modules/raw-body": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -48002,18 +45148,16 @@ }, "node_modules/netlify-cli/node_modules/raw-body/node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/raw-body/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -48027,9 +45171,8 @@ }, "node_modules/netlify-cli/node_modules/rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -48042,30 +45185,26 @@ }, "node_modules/netlify-cli/node_modules/rc/node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/react-is": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/read-package-up": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", - "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up-simple": "^1.0.0", "read-pkg": "^9.0.0", @@ -48080,9 +45219,8 @@ }, "node_modules/netlify-cli/node_modules/read-package-up/node_modules/hosted-git-info": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, @@ -48092,18 +45230,16 @@ }, "node_modules/netlify-cli/node_modules/read-package-up/node_modules/lru-cache": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "dev": true, + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/netlify-cli/node_modules/read-package-up/node_modules/normalize-package-data": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", "is-core-module": "^2.8.1", @@ -48116,9 +45252,8 @@ }, "node_modules/netlify-cli/node_modules/read-package-up/node_modules/parse-json": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", - "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "index-to-position": "^0.1.2", @@ -48133,9 +45268,8 @@ }, "node_modules/netlify-cli/node_modules/read-package-up/node_modules/read-pkg": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", - "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", "dev": true, + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.3", "normalize-package-data": "^6.0.0", @@ -48152,9 +45286,8 @@ }, "node_modules/netlify-cli/node_modules/read-package-up/node_modules/type-fest": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.12.0.tgz", - "integrity": "sha512-5Y2/pp2wtJk8o08G0CMkuFPCO354FGwk/vbidxrdhRGZfd0tFnb4Qb8anp9XxXriwBgVPjdWbKpGl4J9lJY2jQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" }, @@ -48164,9 +45297,8 @@ }, "node_modules/netlify-cli/node_modules/read-pkg-up": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^6.3.0", "read-pkg": "^7.1.0", @@ -48181,9 +45313,8 @@ }, "node_modules/netlify-cli/node_modules/read-pkg-up/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -48197,18 +45328,16 @@ }, "node_modules/netlify-cli/node_modules/read-pkg-up/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/netlify-cli/node_modules/read-pkg-up/node_modules/read-pkg": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", "dev": true, + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.1", "normalize-package-data": "^3.0.2", @@ -48224,9 +45353,8 @@ }, "node_modules/netlify-cli/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -48238,9 +45366,8 @@ }, "node_modules/netlify-cli/node_modules/readable-web-to-node-stream": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^3.6.0" }, @@ -48254,27 +45381,24 @@ }, "node_modules/netlify-cli/node_modules/readdir-glob": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.1.0" } }, "node_modules/netlify-cli/node_modules/readdir-glob/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/netlify-cli/node_modules/readdir-glob/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -48284,9 +45408,8 @@ }, "node_modules/netlify-cli/node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -48296,27 +45419,24 @@ }, "node_modules/netlify-cli/node_modules/real-require": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", - "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.13.0" } }, "node_modules/netlify-cli/node_modules/redis-errors": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/redis-parser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", "dev": true, + "license": "MIT", "dependencies": { "redis-errors": "^1.0.0" }, @@ -48326,9 +45446,8 @@ }, "node_modules/netlify-cli/node_modules/registry-auth-token": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", "dev": true, + "license": "MIT", "dependencies": { "@pnpm/npm-conf": "^2.1.0" }, @@ -48338,9 +45457,8 @@ }, "node_modules/netlify-cli/node_modules/registry-url": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", "dev": true, + "license": "MIT", "dependencies": { "rc": "1.2.8" }, @@ -48353,54 +45471,47 @@ }, "node_modules/netlify-cli/node_modules/remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/netlify-cli/node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/require-package-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", - "integrity": "sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/resolve": { "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -48415,24 +45526,21 @@ }, "node_modules/netlify-cli/node_modules/resolve-alpn": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/responselike": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, + "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -48445,9 +45553,8 @@ }, "node_modules/netlify-cli/node_modules/restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -48458,18 +45565,16 @@ }, "node_modules/netlify-cli/node_modules/restore-cursor/node_modules/mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/restore-cursor/node_modules/onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^1.0.0" }, @@ -48479,18 +45584,16 @@ }, "node_modules/netlify-cli/node_modules/retry": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/netlify-cli/node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -48498,15 +45601,13 @@ }, "node_modules/netlify-cli/node_modules/rfdc": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -48519,17 +45620,14 @@ }, "node_modules/netlify-cli/node_modules/run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/netlify-cli/node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -48545,15 +45643,15 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/netlify-cli/node_modules/rxjs": { "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^1.9.0" }, @@ -48563,60 +45661,52 @@ }, "node_modules/netlify-cli/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/safe-json-stringify": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/safe-regex2": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-3.1.0.tgz", - "integrity": "sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==", "dev": true, + "license": "MIT", "dependencies": { "ret": "~0.4.0" } }, "node_modules/netlify-cli/node_modules/safe-regex2/node_modules/ret": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.4.3.tgz", - "integrity": "sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/netlify-cli/node_modules/safe-stable-stringify": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/netlify-cli/node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/secure-json-parse": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/netlify-cli/node_modules/seek-bzip": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.8.1" }, @@ -48627,15 +45717,13 @@ }, "node_modules/netlify-cli/node_modules/seek-bzip/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/semver": { "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -48645,9 +45733,8 @@ }, "node_modules/netlify-cli/node_modules/semver-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -48660,9 +45747,8 @@ }, "node_modules/netlify-cli/node_modules/send": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -48684,33 +45770,29 @@ }, "node_modules/netlify-cli/node_modules/send/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/netlify-cli/node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/send/node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/send/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -48724,9 +45806,8 @@ }, "node_modules/netlify-cli/node_modules/serve-static": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, + "license": "MIT", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -48739,28 +45820,24 @@ }, "node_modules/netlify-cli/node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/set-cookie-parser": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", - "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/setprototypeof": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/sharp": { "version": "0.32.6", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", - "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", "dev": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.2", @@ -48780,9 +45857,8 @@ }, "node_modules/netlify-cli/node_modules/sharp/node_modules/color": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -48793,9 +45869,8 @@ }, "node_modules/netlify-cli/node_modules/sharp/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -48805,21 +45880,18 @@ }, "node_modules/netlify-cli/node_modules/sharp/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/sharp/node_modules/node-addon-api": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -48829,18 +45901,16 @@ }, "node_modules/netlify-cli/node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -48852,14 +45922,11 @@ }, "node_modules/netlify-cli/node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/simple-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true, "funding": [ { @@ -48874,12 +45941,11 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/simple-get": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "dev": true, "funding": [ { @@ -48895,6 +45961,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", @@ -48903,33 +45970,29 @@ }, "node_modules/netlify-cli/node_modules/simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } }, "node_modules/netlify-cli/node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/slice-ansi": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" @@ -48943,9 +46006,8 @@ }, "node_modules/netlify-cli/node_modules/sort-keys": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^1.0.0" }, @@ -48955,9 +46017,8 @@ }, "node_modules/netlify-cli/node_modules/sort-keys-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", "dev": true, + "license": "MIT", "dependencies": { "sort-keys": "^1.0.0" }, @@ -48967,36 +46028,32 @@ }, "node_modules/netlify-cli/node_modules/sort-keys/node_modules/is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/source-map-js": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -49004,9 +46061,8 @@ }, "node_modules/netlify-cli/node_modules/spdx-correct": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -49014,15 +46070,13 @@ }, "node_modules/netlify-cli/node_modules/spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/netlify-cli/node_modules/spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -49030,60 +46084,52 @@ }, "node_modules/netlify-cli/node_modules/spdx-license-ids": { "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/netlify-cli/node_modules/stack-generator": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", "dev": true, + "license": "MIT", "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/netlify-cli/node_modules/stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/netlify-cli/node_modules/stackframe": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/standard-as-callback": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/std-env": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/stdin-discarder": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -49093,9 +46139,8 @@ }, "node_modules/netlify-cli/node_modules/streamx": { "version": "2.15.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz", - "integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==", "dev": true, + "license": "MIT", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" @@ -49103,18 +46148,16 @@ }, "node_modules/netlify-cli/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/netlify-cli/node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -49127,9 +46170,8 @@ "node_modules/netlify-cli/node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -49141,18 +46183,16 @@ }, "node_modules/netlify-cli/node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -49162,18 +46202,16 @@ }, "node_modules/netlify-cli/node_modules/string-width/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/netlify-cli/node_modules/string-width/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -49183,9 +46221,8 @@ }, "node_modules/netlify-cli/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -49199,9 +46236,8 @@ "node_modules/netlify-cli/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -49211,15 +46247,13 @@ }, "node_modules/netlify-cli/node_modules/strip-ansi-control-characters": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz", - "integrity": "sha512-Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/strip-ansi/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -49229,9 +46263,8 @@ }, "node_modules/netlify-cli/node_modules/strip-dirs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-3.0.0.tgz", - "integrity": "sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ==", "dev": true, + "license": "ISC", "dependencies": { "inspect-with-kind": "^1.0.5", "is-plain-obj": "^1.1.0" @@ -49239,27 +46272,24 @@ }, "node_modules/netlify-cli/node_modules/strip-dirs/node_modules/is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/netlify-cli/node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/strtok3": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", - "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", "dev": true, + "license": "MIT", "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^5.0.0" @@ -49274,9 +46304,8 @@ }, "node_modules/netlify-cli/node_modules/supports-color": { "version": "9.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -49286,9 +46315,8 @@ }, "node_modules/netlify-cli/node_modules/supports-hyperlinks": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -49299,9 +46327,8 @@ }, "node_modules/netlify-cli/node_modules/supports-hyperlinks/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -49311,9 +46338,8 @@ }, "node_modules/netlify-cli/node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -49323,9 +46349,8 @@ }, "node_modules/netlify-cli/node_modules/svgo": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", "dev": true, + "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -49348,18 +46373,16 @@ }, "node_modules/netlify-cli/node_modules/svgo/node_modules/commander": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/netlify-cli/node_modules/system-architecture": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", - "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -49369,9 +46392,8 @@ }, "node_modules/netlify-cli/node_modules/tabtab": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tabtab/-/tabtab-3.0.2.tgz", - "integrity": "sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.0.1", "es6-promisify": "^6.0.0", @@ -49383,9 +46405,8 @@ }, "node_modules/netlify-cli/node_modules/tar": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -49400,9 +46421,8 @@ }, "node_modules/netlify-cli/node_modules/tar-fs": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", - "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "dev": true, + "license": "MIT", "dependencies": { "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", @@ -49411,9 +46431,8 @@ }, "node_modules/netlify-cli/node_modules/tar-stream": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, + "license": "MIT", "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", @@ -49422,9 +46441,8 @@ }, "node_modules/netlify-cli/node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -49434,18 +46452,16 @@ }, "node_modules/netlify-cli/node_modules/temp-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", - "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" } }, "node_modules/netlify-cli/node_modules/tempy": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", - "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", "dev": true, + "license": "MIT", "dependencies": { "is-stream": "^3.0.0", "temp-dir": "^3.0.0", @@ -49461,9 +46477,8 @@ }, "node_modules/netlify-cli/node_modules/tempy/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -49473,9 +46488,8 @@ }, "node_modules/netlify-cli/node_modules/terminal-link": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-3.0.0.tgz", - "integrity": "sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^5.0.0", "supports-hyperlinks": "^2.2.0" @@ -49489,9 +46503,8 @@ }, "node_modules/netlify-cli/node_modules/terminal-link/node_modules/ansi-escapes": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^1.0.2" }, @@ -49504,9 +46517,8 @@ }, "node_modules/netlify-cli/node_modules/terminal-link/node_modules/type-fest": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -49516,30 +46528,26 @@ }, "node_modules/netlify-cli/node_modules/text-hex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/through2": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "3" } }, "node_modules/netlify-cli/node_modules/through2-filter": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-4.0.0.tgz", - "integrity": "sha512-P8IpQL19bSdXqGLvLdbidYRxERXgHEXGcQofPxbLpPkqS1ieOrUrocdYRTNv8YwSukaDJWr71s6F2kZ3bvgEhA==", "dev": true, + "license": "MIT", "dependencies": { "through2": "^4.0.2" }, @@ -49549,9 +46557,8 @@ }, "node_modules/netlify-cli/node_modules/through2-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/through2-map/-/through2-map-4.0.0.tgz", - "integrity": "sha512-+rpmDB5yckiBGEuqJSsWYWMs9e1zdksypDKvByysEyN+knhsPXV9Z6O2mA9meczIa6AON7bi2G3xWk5T8UG4zQ==", "dev": true, + "license": "MIT", "dependencies": { "through2": "^4.0.2" }, @@ -49561,18 +46568,16 @@ }, "node_modules/netlify-cli/node_modules/time-zone": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", - "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -49582,18 +46587,16 @@ }, "node_modules/netlify-cli/node_modules/tmp-promise": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", "dev": true, + "license": "MIT", "dependencies": { "tmp": "^0.2.0" } }, "node_modules/netlify-cli/node_modules/tmp-promise/node_modules/tmp": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, + "license": "MIT", "dependencies": { "rimraf": "^3.0.0" }, @@ -49603,18 +46606,16 @@ }, "node_modules/netlify-cli/node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/to-readable-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-3.0.0.tgz", - "integrity": "sha512-vD2LytT6DxPynBa1xbMtswY9gGqj27wNbh2uvI5OhBe+mrGLurRWRQZyQn3812sqlQRtUJwaKVshG+PoGwbPDQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -49624,9 +46625,8 @@ }, "node_modules/netlify-cli/node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -49636,27 +46636,24 @@ }, "node_modules/netlify-cli/node_modules/toad-cache": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz", - "integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/netlify-cli/node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/netlify-cli/node_modules/token-types": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", - "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", "dev": true, + "license": "MIT", "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" @@ -49671,33 +46668,28 @@ }, "node_modules/netlify-cli/node_modules/toml": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/tomlify-j0.4": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz", - "integrity": "sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/triple-beam": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/ts-node": { "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -49738,24 +46730,21 @@ }, "node_modules/netlify-cli/node_modules/ts-node/node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/netlify-cli/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/netlify-cli/node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -49768,9 +46757,8 @@ }, "node_modules/netlify-cli/node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -49780,9 +46768,8 @@ }, "node_modules/netlify-cli/node_modules/type-fest": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -49792,9 +46779,8 @@ }, "node_modules/netlify-cli/node_modules/type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -49805,18 +46791,16 @@ }, "node_modules/netlify-cli/node_modules/typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/netlify-cli/node_modules/typescript": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -49827,15 +46811,13 @@ }, "node_modules/netlify-cli/node_modules/ufo": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", - "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/uid-safe": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", "dev": true, + "license": "MIT", "dependencies": { "random-bytes": "~1.0.0" }, @@ -49845,18 +46827,16 @@ }, "node_modules/netlify-cli/node_modules/ulid": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz", - "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==", "dev": true, + "license": "MIT", "bin": { "ulid": "bin/cli.js" } }, "node_modules/netlify-cli/node_modules/unbzip2-stream": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" @@ -49864,21 +46844,18 @@ }, "node_modules/netlify-cli/node_modules/uncrypto": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/unenv": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.9.0.tgz", - "integrity": "sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==", "dev": true, + "license": "MIT", "dependencies": { "consola": "^3.2.3", "defu": "^6.1.3", @@ -49889,9 +46866,8 @@ }, "node_modules/netlify-cli/node_modules/unenv/node_modules/mime": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -49901,9 +46877,8 @@ }, "node_modules/netlify-cli/node_modules/unicorn-magic": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -49913,9 +46888,8 @@ }, "node_modules/netlify-cli/node_modules/unique-string": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -49928,16 +46902,13 @@ }, "node_modules/netlify-cli/node_modules/universal-user-agent": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/unix-dgram": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.6.tgz", - "integrity": "sha512-AURroAsb73BZ6CdAyMrTk/hYKNj3DuYYEuOaB8bYMOHGKupRNScw90Q5C71tWJc3uE7dIeXRyuwN0xLLq3vDTg==", "dev": true, - "hasInstallScript": true, + "license": "ISC", "optional": true, "dependencies": { "bindings": "^1.5.0", @@ -49949,9 +46920,8 @@ }, "node_modules/netlify-cli/node_modules/unixify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", - "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", "dev": true, + "license": "MIT", "dependencies": { "normalize-path": "^2.1.1" }, @@ -49961,9 +46931,8 @@ }, "node_modules/netlify-cli/node_modules/unixify/node_modules/normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", "dependencies": { "remove-trailing-separator": "^1.0.1" }, @@ -49973,27 +46942,24 @@ }, "node_modules/netlify-cli/node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/untildify": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/netlify-cli/node_modules/untun": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/untun/-/untun-0.1.3.tgz", - "integrity": "sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==", "dev": true, + "license": "MIT", "dependencies": { "citty": "^0.1.5", "consola": "^3.2.3", @@ -50005,9 +46971,8 @@ }, "node_modules/netlify-cli/node_modules/update-notifier": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.0.0.tgz", - "integrity": "sha512-Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boxen": "^7.1.1", "chalk": "^5.3.0", @@ -50031,64 +46996,56 @@ }, "node_modules/netlify-cli/node_modules/uqr": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz", - "integrity": "sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/netlify-cli/node_modules/urlpattern-polyfill": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", - "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/netlify-cli/node_modules/uuid": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "dev": true, "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/netlify-cli/node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -50096,9 +47053,8 @@ }, "node_modules/netlify-cli/node_modules/validate-npm-package-name": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", "dev": true, + "license": "ISC", "dependencies": { "builtins": "^5.0.0" }, @@ -50108,18 +47064,16 @@ }, "node_modules/netlify-cli/node_modules/vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/netlify-cli/node_modules/wait-port": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-1.1.0.tgz", - "integrity": "sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "commander": "^9.3.0", @@ -50134,9 +47088,8 @@ }, "node_modules/netlify-cli/node_modules/wait-port/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -50149,9 +47102,8 @@ }, "node_modules/netlify-cli/node_modules/wait-port/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -50165,9 +47117,8 @@ }, "node_modules/netlify-cli/node_modules/wait-port/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -50177,24 +47128,21 @@ }, "node_modules/netlify-cli/node_modules/wait-port/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/wait-port/node_modules/commander": { "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/netlify-cli/node_modules/wait-port/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -50204,27 +47152,24 @@ }, "node_modules/netlify-cli/node_modules/web-streams-polyfill": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/netlify-cli/node_modules/well-known-symbols": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", - "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", "dev": true, + "license": "ISC", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -50232,15 +47177,13 @@ }, "node_modules/netlify-cli/node_modules/whatwg-url/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/netlify-cli/node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -50253,24 +47196,21 @@ }, "node_modules/netlify-cli/node_modules/which/node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/wide-align": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/netlify-cli/node_modules/widest-line": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^5.0.1" }, @@ -50283,15 +47223,13 @@ }, "node_modules/netlify-cli/node_modules/widest-line/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/widest-line/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -50306,9 +47244,8 @@ }, "node_modules/netlify-cli/node_modules/windows-release": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.0.1.tgz", - "integrity": "sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.1.1" }, @@ -50321,9 +47258,8 @@ }, "node_modules/netlify-cli/node_modules/winston": { "version": "3.13.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.0.tgz", - "integrity": "sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==", "dev": true, + "license": "MIT", "dependencies": { "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", @@ -50343,9 +47279,8 @@ }, "node_modules/netlify-cli/node_modules/winston-transport": { "version": "4.7.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", - "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", "dev": true, + "license": "MIT", "dependencies": { "logform": "^2.3.2", "readable-stream": "^3.6.0", @@ -50357,18 +47292,16 @@ }, "node_modules/netlify-cli/node_modules/winston/node_modules/@colors/colors": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", - "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/netlify-cli/node_modules/winston/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -50378,9 +47311,8 @@ }, "node_modules/netlify-cli/node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -50396,9 +47328,8 @@ "node_modules/netlify-cli/node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -50413,9 +47344,8 @@ }, "node_modules/netlify-cli/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -50428,9 +47358,8 @@ }, "node_modules/netlify-cli/node_modules/wrap-ansi-cjs/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -50440,15 +47369,13 @@ }, "node_modules/netlify-cli/node_modules/wrap-ansi-cjs/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -50458,9 +47385,8 @@ }, "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -50473,9 +47399,8 @@ }, "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -50485,15 +47410,13 @@ }, "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -50503,15 +47426,13 @@ }, "node_modules/netlify-cli/node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/write-file-atomic": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" @@ -50522,9 +47443,8 @@ }, "node_modules/netlify-cli/node_modules/write-file-atomic/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -50534,9 +47454,8 @@ }, "node_modules/netlify-cli/node_modules/ws": { "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -50555,9 +47474,8 @@ }, "node_modules/netlify-cli/node_modules/xdg-basedir": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -50567,9 +47485,8 @@ }, "node_modules/netlify-cli/node_modules/xss": { "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.20.3", "cssfilter": "0.0.10" @@ -50583,39 +47500,34 @@ }, "node_modules/netlify-cli/node_modules/xss/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netlify-cli/node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } }, "node_modules/netlify-cli/node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/netlify-cli/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/netlify-cli/node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -50631,9 +47543,8 @@ }, "node_modules/netlify-cli/node_modules/yargs/node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -50645,9 +47556,8 @@ }, "node_modules/netlify-cli/node_modules/yargs/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -50657,18 +47567,16 @@ }, "node_modules/netlify-cli/node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/netlify-cli/node_modules/yauzl": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -50676,18 +47584,16 @@ }, "node_modules/netlify-cli/node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/netlify-cli/node_modules/zip-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", - "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", "dev": true, + "license": "MIT", "dependencies": { "archiver-utils": "^5.0.0", "compress-commons": "^6.0.2", @@ -50699,8 +47605,6 @@ }, "node_modules/netlify-cli/node_modules/zip-stream/node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -50716,6 +47620,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -50723,9 +47628,8 @@ }, "node_modules/netlify-cli/node_modules/zip-stream/node_modules/readable-stream": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -50739,8 +47643,6 @@ }, "node_modules/netlify-cli/node_modules/zip-stream/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -50755,30 +47657,25 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/netlify-cli/node_modules/zip-stream/node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/netlify-cli/node_modules/zod": { "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/netlify-cli/tools/lint-rules": { - "name": "eslint-plugin-workspace", - "extraneous": true - }, "node_modules/next-tick": { "version": "1.1.0", "dev": true, @@ -50813,8 +47710,6 @@ }, "node_modules/node-domexception": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "funding": [ { "type": "github", @@ -50825,6 +47720,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } @@ -50844,8 +47740,7 @@ }, "node_modules/node-fetch": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -54392,9 +51287,8 @@ }, "node_modules/ora": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.0.1.tgz", - "integrity": "sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^4.0.0", @@ -54415,9 +51309,8 @@ }, "node_modules/ora/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -54427,9 +51320,8 @@ }, "node_modules/ora/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -54439,15 +51331,13 @@ }, "node_modules/ora/node_modules/emoji-regex": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ora/node_modules/is-unicode-supported": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", - "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -54457,9 +51347,8 @@ }, "node_modules/ora/node_modules/log-symbols": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.3.0", "is-unicode-supported": "^1.3.0" @@ -54473,9 +51362,8 @@ }, "node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -54485,9 +51373,8 @@ }, "node_modules/ora/node_modules/stdin-discarder": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -54497,9 +51384,8 @@ }, "node_modules/ora/node_modules/string-width": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -54514,9 +51400,8 @@ }, "node_modules/ora/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -54734,8 +51619,7 @@ }, "node_modules/p-ratelimit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/p-ratelimit/-/p-ratelimit-1.0.1.tgz", - "integrity": "sha512-tKBGoow6aWRH68K2eQx+qc1gSegjd5VLirZYc1Yms9pPFsYQ9TFI6aMn0vJH2vmvzjNpjlWZOFft4aPUen2w0A==", + "license": "MIT", "engines": { "node": ">=10.23.0" } @@ -54800,33 +51684,6 @@ "dev": true, "license": "BlueOak-1.0.0" }, - "node_modules/package-json/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/package-json/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, "node_modules/pako": { "version": "1.0.11", "license": "(MIT AND Zlib)" @@ -54917,9 +51774,8 @@ }, "node_modules/parse-ms": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", - "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -55543,16 +52399,13 @@ }, "node_modules/possible-typed-array-names": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/postcss": { "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "funding": [ { "type": "opencollective", @@ -55567,6 +52420,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -55845,8 +52699,7 @@ }, "node_modules/postcss-modules-local-by-default": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", @@ -55861,8 +52714,7 @@ }, "node_modules/postcss-modules-scope": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "license": "ISC", "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -56082,8 +52934,7 @@ }, "node_modules/postcss-selector-parser": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -56238,9 +53089,8 @@ }, "node_modules/prettier": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -56304,9 +53154,8 @@ }, "node_modules/pretty-ms": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.0.0.tgz", - "integrity": "sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==", "dev": true, + "license": "MIT", "dependencies": { "parse-ms": "^4.0.0" }, @@ -57391,8 +54240,7 @@ }, "node_modules/react-json-view-lite": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.4.0.tgz", - "integrity": "sha512-wh6F6uJyYAmQ4fK0e8dSQMEWuvTs2Wr3el3sLD9bambX1+pSWUVXIz1RFaoy3TI1mZ0FqdpKq9YgbgTTgyrmXA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -57456,8 +54304,7 @@ }, "node_modules/react-markdown": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", - "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.0.0", @@ -58056,9 +54903,8 @@ }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", @@ -59228,9 +56074,8 @@ }, "node_modules/safe-array-concat": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4", @@ -59246,9 +56091,8 @@ }, "node_modules/safe-array-concat/node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -59278,9 +56122,8 @@ }, "node_modules/safe-regex-test": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -59299,8 +56142,7 @@ }, "node_modules/sass": { "version": "1.77.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", - "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -59437,8 +56279,7 @@ }, "node_modules/search-insights": { "version": "2.14.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.14.0.tgz", - "integrity": "sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==", + "license": "MIT", "peer": true }, "node_modules/section-matter": { @@ -59976,9 +56817,8 @@ }, "node_modules/semantic-release/node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -62806,9 +59646,8 @@ }, "node_modules/semantic-release/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semantic-release/node_modules/unique-string": { "version": "2.0.0", @@ -62828,15 +59667,13 @@ }, "node_modules/semantic-release/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/semantic-release/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -62860,8 +59697,7 @@ }, "node_modules/semver": { "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -63125,8 +59961,7 @@ }, "node_modules/set-function-length": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -63430,8 +60265,7 @@ }, "node_modules/sitemap": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", - "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", + "license": "MIT", "dependencies": { "@types/node": "^17.0.5", "@types/sax": "^1.2.1", @@ -63448,8 +60282,7 @@ }, "node_modules/sitemap/node_modules/@types/node": { "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + "license": "MIT" }, "node_modules/skin-tone": { "version": "2.0.0", @@ -63503,8 +60336,7 @@ }, "node_modules/snake-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -63679,8 +60511,7 @@ }, "node_modules/source-map-js": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -64245,9 +61076,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -64263,9 +61093,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -64277,9 +61106,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -64481,9 +61309,8 @@ }, "node_modules/stylus": { "version": "0.62.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.62.0.tgz", - "integrity": "sha512-v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==", "dev": true, + "license": "MIT", "dependencies": { "@adobe/css-tools": "~4.3.1", "debug": "^4.3.2", @@ -64746,8 +61573,7 @@ }, "node_modules/swagger2openapi/node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -64765,18 +61591,15 @@ }, "node_modules/swagger2openapi/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" }, "node_modules/swagger2openapi/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "license": "BSD-2-Clause" }, "node_modules/swagger2openapi/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -65402,9 +62225,8 @@ }, "node_modules/test-links/node_modules/ws": { "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -66008,9 +62830,8 @@ }, "node_modules/ts-api-utils": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -66024,9 +62845,8 @@ }, "node_modules/ts-jest": { "version": "29.1.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", - "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", @@ -66228,9 +63048,8 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -66242,9 +63061,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -66261,9 +63079,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -66281,9 +63098,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -66324,9 +63140,8 @@ }, "node_modules/typescript-plugin-css-modules": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/typescript-plugin-css-modules/-/typescript-plugin-css-modules-5.1.0.tgz", - "integrity": "sha512-6h+sLBa4l+XYSTn/31vZHd/1c3SvAbLpobY6FxDiUOHJQG1eD9Gh3eCs12+Eqc+TCOAdxcO+zAPvUq0jBfdciw==", "dev": true, + "license": "MIT", "dependencies": { "@types/postcss-modules-local-by-default": "^4.0.2", "@types/postcss-modules-scope": "^3.0.4", @@ -67811,8 +64626,7 @@ }, "node_modules/web-streams-polyfill": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -67904,8 +64718,7 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -68169,9 +64982,8 @@ }, "node_modules/webpconvert": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webpconvert/-/webpconvert-3.0.1.tgz", - "integrity": "sha512-svqxsUKvOR1ZBMDQG03uKTDVYIA8G+wMBsyOOOBmxYIW+ajRJF//m21YCxr9B9QB338VWHLgwDuyFon+Rx8p4Q==", "dev": true, + "license": "MIT", "dependencies": { "gulp": "^4.0.2", "gulp-imagemin": "^8.0.0", @@ -68315,8 +65127,7 @@ }, "node_modules/which-typed-array": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -68492,8 +65303,7 @@ }, "node_modules/ws": { "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -68674,9 +65484,8 @@ }, "node_modules/yoctocolors": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.0.2.tgz", - "integrity": "sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 8aad1b99a5..e32dbf7c7a 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -203,6 +203,10 @@ "name": "aws-cluster-autoscaler", "description": "The AWS Cluster Autoscaler pack monitors the cluster workload and utilizes AWS autoscaling groups to dynamically provision or shut down nodes, maximizing the cluster's performance and making it more resilient to failures." }, + { + "name": "consul", + "description": "Consul is a service networking solution that enables teams to manage secure network connectivity between services and across on-prem and multi-cloud environments and runtimes. Consul offers service discovery, service mesh, traffic management, and automated updates to network infrastructure devices." + }, { "name": "crossplane", "description": "Crossplane transforms Kubernetes clusters into universal control planes, extending the Kubernetes API and enabling infrastructure resource provisioning and management across major infrastructure providers." From 83bfa905ac2ca1c35ee930c64b3005521781c993 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Wed, 24 Jul 2024 08:07:44 -0700 Subject: [PATCH 13/22] chore: partials --- _partials/packs/_longhorn.mdx | 324 ++++++++++++++++ docs/docs-content/integrations/aws-ebs.md | 98 ----- docs/docs-content/integrations/azure-disk.md | 52 --- docs/docs-content/integrations/csi-aws-ebs.md | 118 ++++++ docs/docs-content/integrations/csi-aws-efs.md | 82 ++++ docs/docs-content/integrations/csi-azure.md | 41 ++ .../integrations/csi-gcp-driver.md | 42 +++ .../integrations/csi-longhorn-addon.md | 30 ++ .../docs-content/integrations/csi-longhorn.md | 30 ++ docs/docs-content/integrations/gce.md | 44 --- .../integrations/gke-csi-gcp-driver.md | 42 +++ docs/docs-content/integrations/longhorn.md | 355 ------------------ .../release-notes/known-issues.md | 2 +- static/packs-data/exclude_packs.json | 2 +- static/packs-data/packs_information.json | 44 +++ 15 files changed, 755 insertions(+), 551 deletions(-) create mode 100644 _partials/packs/_longhorn.mdx delete mode 100644 docs/docs-content/integrations/aws-ebs.md delete mode 100644 docs/docs-content/integrations/azure-disk.md create mode 100644 docs/docs-content/integrations/csi-aws-ebs.md create mode 100644 docs/docs-content/integrations/csi-azure.md create mode 100644 docs/docs-content/integrations/csi-gcp-driver.md create mode 100644 docs/docs-content/integrations/csi-longhorn-addon.md create mode 100644 docs/docs-content/integrations/csi-longhorn.md delete mode 100644 docs/docs-content/integrations/gce.md create mode 100644 docs/docs-content/integrations/gke-csi-gcp-driver.md delete mode 100644 docs/docs-content/integrations/longhorn.md diff --git a/_partials/packs/_longhorn.mdx b/_partials/packs/_longhorn.mdx new file mode 100644 index 0000000000..c1526289d7 --- /dev/null +++ b/_partials/packs/_longhorn.mdx @@ -0,0 +1,324 @@ +--- +partial_category: packs +partial_name: longhorn +--- + + +## Versions Supported + + + + +### Longhorn with Harbor Registry in Airgap Environments + +When you use the Longhorn pack in an airgapped environment, the Harbor Edge-Native Config pack is required for your +cluster to function. However, you must change the image references in the Longhorn pack to use the base URL of the local +Harbor registry. Otherwise, the cluster will fail to deploy, with the `longhorn-driver-deployer` pod stuck in the `Init` +state. + +1. Log in to Palette. + +2. From the left **Main Menu**, select **Profiles**. + +3. Select the cluster profile you use to deploy the cluster with Longhorn. + +4. In the pack YAML for the Longhorn pack, replace the base URL of each image referenced in the pack with the Harbor + registry. + + For example, the following is a snippet of the Longhorn pack's YAML before and after you replace the base URL. + + + + + + ```yaml + pack: + namespace: "longhorn-system" + namespaceLabels: + "longhorn-system": + "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ + .spectro.system.kubernetes.version | substr 0 4 }}" + content: + images: + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 + ``` + + + + + + ```yaml + pack: + namespace: "longhorn-system" + namespaceLabels: + "longhorn-system": + "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ + .spectro.system.kubernetes.version | substr 0 4 }}" + content: + images: + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 + ``` + + + + + + Refer to pack documentation to learn how to + find the node IP and port of the Harbor registry. If you have given the registry a domain name, you can use the + domain name instead of the node IP. + +## Known Issues + +The following known issues exist in the Longhorn 1.5.X release. + +- A deadlock may occurs when using a RWX volume and a cluster node is recreated. This issue is disclosed as a + [known issue](https://github.com/longhorn/longhorn/wiki/Release-Known-Issues#v153) in the Longhorn GitHub repository] + and a fix is on the roadmap. Workarounds provided by the community can be found in the + [issue discussion](https://github.com/longhorn/longhorn/issues/7183#issuecomment-1823715359). + +- Rebooting or upgrading a cluster with Longhorn has a small possibility of triggering a race condition that causes pods + to be stuck in the terminating state. This issue is related to a + [known issue](https://github.com/longhorn/longhorn/issues/6962) in the Longhorn GitHub repository and a fix is on the + roadmap. + +- Using Longhorn together in airgap environments with an external registry requires you to update the Longhorn pack + image references to use the base URL of the Harbor registry. For more information, refer to + Longhorn Deployer Stuck in Init State in Airgap Environments section. + + + + +### Longhorn with Harbor Registry in Airgap Environments + +When you use the Longhorn pack in an airgapped environment, the Harbor Edge-Native Config pack is required for your +cluster to function. However, you must change the image references in the Longhorn pack to use the base URL of the local +Harbor registry. Otherwise, the cluster will fail to deploy, with the `longhorn-driver-deployer` pod stuck in the `Init` +state. + +1. Log in to Palette. + +2. From the left **Main Menu**, select **Profiles**. + +3. Select the cluster profile you use to deploy the cluster with Longhorn. + +4. In the pack YAML for the Longhorn pack, replace the base URL of each image referenced in the pack with the Harbor + registry. + + For example, the following is a snippet of the Longhorn pack's YAML before and after you replace the base URL. + + + + + + ```yaml + pack: + namespace: "longhorn-system" + namespaceLabels: + "longhorn-system": + "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ + .spectro.system.kubernetes.version | substr 0 4 }}" + content: + images: + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 + ``` + + + + + + ```yaml + pack: + namespace: "longhorn-system" + namespaceLabels: + "longhorn-system": + "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ + .spectro.system.kubernetes.version | substr 0 4 }}" + content: + images: + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 + ``` + + + + + + Refer to pack documentation to learn how to + find the node IP and port of the Harbor registry. If you have given the registry a domain name, you can use the + domain name instead of the node IP. + +## Known Issues + +The following known issues exist in the Longhorn 1.5.X release. + +- A deadlock may occurs when using a RWX volume and a cluster node is recreated. This issue is disclosed as a + [known issue](https://github.com/longhorn/longhorn/wiki/Release-Known-Issues#v153) in the Longhorn GitHub repository] + and a fix is on the roadmap. Workarounds provided by the community can be found in the + [issue discussion](https://github.com/longhorn/longhorn/issues/7183#issuecomment-1823715359). + +- Rebooting or upgrading a cluster with Longhorn has a small possibility of triggering a race condition that causes pods + to be stuck in the terminating state. This issue is related to a + [known issue](https://github.com/longhorn/longhorn/issues/6962) in the Longhorn GitHub repository and a fix is on the + roadmap. + +- Using Longhorn together in airgap environments with an external registry requires you to update the Longhorn pack + image references to use the base URL of the Harbor registry. For more information, refer to + Longhorn Deployer Stuck in Init State in Airgap Environments section. + + + + + +### Longhorn with Harbor Registry in Airgap Environments + +When you use the Longhorn pack in an airgapped environment, the Harbor Edge-Native Config pack is required for your +cluster to function. However, you must change the image references in the Longhorn pack to use the base URL of the local +Harbor registry. Otherwise, the cluster will fail to deploy, with the `longhorn-driver-deployer` pod stuck in the `Init` +state. + +1. Log in to Palette. + +2. From the left **Main Menu**, select **Profiles**. + +3. Select the cluster profile you use to deploy the cluster with Longhorn. + +4. In the pack YAML for the Longhorn pack, replace the base URL of each image referenced in the pack with the Harbor + registry. + + For example, the following is a snippet of the Longhorn pack's YAML before and after you replace the base URL. + + + + + + ```yaml + pack: + namespace: "longhorn-system" + namespaceLabels: + "longhorn-system": + "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ + .spectro.system.kubernetes.version | substr 0 4 }}" + content: + images: + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 + ``` + + + + + + ```yaml + pack: + namespace: "longhorn-system" + namespaceLabels: + "longhorn-system": + "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ + .spectro.system.kubernetes.version | substr 0 4 }}" + content: + images: + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 + ``` + + + + + + Refer to pack documentation to learn how to + find the node IP and port of the Harbor registry. If you have given the registry a domain name, you can use the + domain name instead of the node IP. + + + + + +### Longhorn with Harbor Registry in Airgap Environments + +When you use the Longhorn pack in an airgapped environment, the Harbor Edge-Native Config pack is required for your +cluster to function. However, you must change the image references in the Longhorn pack to use the base URL of the local +Harbor registry. Otherwise, the cluster will fail to deploy, with the `longhorn-driver-deployer` pod stuck in the `Init` +state. + +1. Log in to Palette. + +2. From the left **Main Menu**, select **Profiles**. + +3. Select the cluster profile you use to deploy the cluster with Longhorn. + +4. In the pack YAML for the Longhorn pack, replace the base URL of each image referenced in the pack with the Harbor + registry. + + For example, the following is a snipped of the Longhorn pack's YAML before and after you replace the base URL: + + + + + + ```yaml + pack: + namespace: "longhorn-system" + namespaceLabels: + "longhorn-system": + "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ + .spectro.system.kubernetes.version | substr 0 4 }}" + content: + images: + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 + - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 + ``` + + + + + + ```yaml + pack: + namespace: "longhorn-system" + namespaceLabels: + "longhorn-system": + "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ + .spectro.system.kubernetes.version | substr 0 4 }}" + content: + images: + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 + - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 + ``` + + + + + + Refer to pack documentation to learn how to + find the node IP and port of the Harbor registry. If you have given the registry a domain name, you can use the + domain name instead of the node IP. + + + diff --git a/docs/docs-content/integrations/aws-ebs.md b/docs/docs-content/integrations/aws-ebs.md deleted file mode 100644 index 1d81d3cd0e..0000000000 --- a/docs/docs-content/integrations/aws-ebs.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -sidebar_label: "AWS-EBS" -title: "AWS EBS" -description: "AWS EBS storage add on into Spectro Cloud" -type: "integration" -category: ["storage", "amd64", "fips"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/csi-aws/blobs/sha256:f86813591b3b63b3afcf0a604a7c8c715660448585e89174908f3c6a421ad8d8?type=image.webp" -tags: ["packs", "aws-ebs", "storage"] ---- - -AWS Elastic Block Store is an easy to use, high performance block storage at any scale. It helps in the easy deployment, -management, and scaling of the most demanding and high-performance tenant workloads. AWS EBS also ensures availability -with replication and durability. - -## Prerequisites - -Palette requires the following IAM policies to be attached to the IAM role that is used to create the cluster: - -- The AWS managed policy `AmazonEBSCSIDriverPolicy`. - -- For AWS Key Management Service (KMS) encryption, refer to the [KMS Encryption Policy](#kms-encryption-policy) section. - -## Versions Supported - - - - - -- **1.12.0** - - - - - -- **1.10.0** - - - - - -- ** 1.8.0** - - - - - -- ** 1.5.1** - - - - -## KMS Encryption Policy - -If you want to use KMS encryption, you must attach the following IAM policy to the Palette IAM role that is used to -create the cluster. - -```json -{ - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "VisualEditor0", - "Effect": "Allow", - "Action": ["kms:GenerateDataKeyWithoutPlaintext", "kms:CreateGrant"], - "Resource": "*" - } - ] -} -``` - -## Notable Parameters - -| Name | Supported Values | Default Value | Description | -| -------------------- | --------------------------------------------------------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| storageType | gp2, sc1, st1, io1 | gp2 | AWS Volume type to be used. | -| reclaimPolicy | Delete, Retain | Delete | Defines whether volumes will be retained or deleted. | -| allowVolumeExpansion | true, false | true | Flag to allow resizing a volume. | -| isDefaultClass | true, false | true | Flag to denote if this StorageClass will be the default. | -| volumeBindingMode | WaitForFirstConsumer, Immediate | WaitForFirstConsumer | Controls when volumeBinding and dynamic provisioning should happen. | -| encrypted | true, false | true | Denotes whether the EBS volume should be encrypted or not. | -| kmsKeyId (optional) | The full Amazon Resource Name of the key to use when encrypting the volume. | -- | If you don't provide the full Amazon Resource Name but **encrypted** is true, AWS [generates a key](https://kubernetes.io/docs/concepts/storage/storage-classes/#aws-ebs). | - -You can view the full parameter list -[here](https://github.com/kubernetes-sigs/aws-ebs-csi-driver#createvolume-parameters). - -Storage classes that Palette creates are named `spectro-storage-class` and can be fetched from kubectl using the -following CLI command: - -```bash -kubectl get storageclass --all-namespaces -``` - -## References - -- [AWS EBS](https://aws.amazon.com/ebs/) - -- [AWS EBS Storage Class Details](https://kubernetes.io/docs/concepts/storage/storage-classes/#aws-ebs) diff --git a/docs/docs-content/integrations/azure-disk.md b/docs/docs-content/integrations/azure-disk.md deleted file mode 100644 index d2dfe3c022..0000000000 --- a/docs/docs-content/integrations/azure-disk.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -sidebar_label: "Azure Disk" -title: "Azure Disk" -description: "Azure Disk storage add on into Spectro Cloud" -hide_table_of_contents: true -type: "integration" -category: ["storage", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.dev.spectrocloud.com/v1/csi-azure/blobs/sha256:0787b7943741181181823079533cd363884a28aa0651715ea43408bdc77a5c51?type=image.webp" -tags: ["packs", "azure-disk", "storage"] ---- - -Azure Disk storage is designed to be used with Azure virtual machines for the tenant workloads. It offers -high-performance, durable block storage with sub-millisecond latency and throughput for transaction-intensive workloads. - -## Versions Supported - - - - - - - - - - - -## Notable Parameters - -| Name | Supported Values | Default Value | Description | -| -------------------- | ------------------------------- | -------------------- | ------------------------------------------------------------------ | -| storageaccounttype | Standard_LRS, Premium_LRS | Standard_LRS | The storage account type to use | -| kind | managed, shared, dedicated | managed | The disk kind | -| reclaimPolicy | Delete, Retain | Delete | Defines whether volumes will be retained or deleted | -| allowVolumeExpansion | true, false | true | Flag to allow resizing volume | -| isDefaultClass | true, false | true | Flag to denote if this StorageClass will be the default | -| volumeBindingMode | WaitForFirstConsumer, Immediate | WaitForFirstConsumer | Controls when volumeBinding and dynamic provisioning should happen | - -## Troubleshooting - -Storage classes created by Palette are named `spectro-storage-class` and can be fetched from kubectl using the following -CLI command: - -```bash -kubectl get storageclass --all-namespaces -``` - -## References - -- [Azure Disk Storage Class](https://kubernetes.io/docs/concepts/storage/storage-classes/#azure-disk-storage-class) - -- [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes) diff --git a/docs/docs-content/integrations/csi-aws-ebs.md b/docs/docs-content/integrations/csi-aws-ebs.md new file mode 100644 index 0000000000..6d5c9fa2de --- /dev/null +++ b/docs/docs-content/integrations/csi-aws-ebs.md @@ -0,0 +1,118 @@ +--- +sidebar_label: "AWS-EBS" +title: "AWS EBS" +description: "AWS EBS CSI pack for AWS Clusters" +type: "integration" +category: ["storage", "amd64", "fips"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "aws-ebs", "storage"] +--- + +## Versions Supported + + + + + +### KMS Encryption Policy + +If you want to use KMS encryption, you must attach the following IAM policy to the Palette IAM role that is used to +create the cluster. + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "VisualEditor0", + "Effect": "Allow", + "Action": ["kms:GenerateDataKeyWithoutPlaintext", "kms:CreateGrant"], + "Resource": "*" + } + ] +} +``` + + + + + +If you want to use KMS encryption, you must attach the following IAM policy to the Palette IAM role that is used to +create the cluster. + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "VisualEditor0", + "Effect": "Allow", + "Action": ["kms:GenerateDataKeyWithoutPlaintext", "kms:CreateGrant"], + "Resource": "*" + } + ] +} +``` + + + + + +If you want to use KMS encryption, you must attach the following IAM policy to the Palette IAM role that is used to +create the cluster. + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "VisualEditor0", + "Effect": "Allow", + "Action": ["kms:GenerateDataKeyWithoutPlaintext", "kms:CreateGrant"], + "Resource": "*" + } + ] +} +``` + + + + + +If you want to use KMS encryption, you must attach the following IAM policy to the Palette IAM role that is used to +create the cluster. + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "VisualEditor0", + "Effect": "Allow", + "Action": ["kms:GenerateDataKeyWithoutPlaintext", "kms:CreateGrant"], + "Resource": "*" + } + ] +} +``` + + + + +## Terraform + +Use the following Terraform snippet to reference the AWS EBS CSI pack in your Terraform template. Update the version +number as needed. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "aws-ebs-csi" { + name = "csi-aws-ebs" + version = "1.30.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/csi-aws-efs.md b/docs/docs-content/integrations/csi-aws-efs.md index 3ff190fb62..614f246183 100644 --- a/docs/docs-content/integrations/csi-aws-efs.md +++ b/docs/docs-content/integrations/csi-aws-efs.md @@ -13,6 +13,88 @@ tags: ["packs", "aws-efs", "storage"] ## Versions Supported + + +### Policy Information + +You must create a policy that allows you to use EFS from your IAM account. You can use the following JSON to create the +policy. + +```yaml +{ + "Version": "2012-10-17", + "Statement": + [ + { + "Effect": "Allow", + "Action": ["elasticfilesystem:DescribeAccessPoints", "elasticfilesystem:DescribeFileSystems"], + "Resource": "*", + }, + { + "Effect": "Allow", + "Action": ["elasticfilesystem:CreateAccessPoint"], + "Resource": "*", + "Condition": { "StringLike": { "aws:RequestTag/efs.csi.aws.com/cluster": "true" } }, + }, + { + "Effect": "Allow", + "Action": "elasticfilesystem:DeleteAccessPoint", + "Resource": "*", + "Condition": { "StringEquals": { "aws:ResourceTag/efs.csi.aws.com/cluster": "true" } }, + }, + ], +} +``` + +### Storage Class + +Palette creates storage classes named _spectro-storage-class_. You can view a list of storage classes using this kubectl +command: + +```bash +kubectl get storageclass +``` + +### PersistentVolumeClaim + +A PersistentVolumeClaim (PVC) is a request made by a pod for a certain amount of storage from the cluster. It acts as a +link between the pod and the storage resource, allowing the pod to use the storage. You can learn details about a PVC, +as shown in the following output, when you use the `kubectl describe pvc` command. + +```bash +kubectl describe pvc my-efs-volume +``` + +```shell hideClipboard +Name: efs +Namespace: default +StorageClass: aws-efs +Status: Pending + +Volume: + +Labels: + +Annotations: kubectl.kubernetes.io/last-applied-configuration: +{"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{"volume.beta.kubernetes.io/ +storage-class":"aws-efs"},"name":"..."} + +volume.beta.kubernetes.io/storage-class: aws-efs + +Finalizers: [kubernetes.io/pvc-protection] + +Capacity: + +Access Modes: + +Events: +| Type | Reason | Age | From | Message | +| ------- | ------------------ | ------------------ | --------------------------- | ------------------------ | +| Warning | ProvisioningFailed | 43s (x12 over 11m) | persistentvolume-controller | no volume plugin matched | +Mounted By: +``` + + ### Policy Information diff --git a/docs/docs-content/integrations/csi-azure.md b/docs/docs-content/integrations/csi-azure.md new file mode 100644 index 0000000000..1da269e2da --- /dev/null +++ b/docs/docs-content/integrations/csi-azure.md @@ -0,0 +1,41 @@ +--- +sidebar_label: "Azure Disk" +title: "Azure Disk" +description: "Azure Disk storage add on into Spectro Cloud" +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.dev.spectrocloud.com/v1/csi-azure/blobs/sha256:0787b7943741181181823079533cd363884a28aa0651715ea43408bdc77a5c51?type=image.webp" +tags: ["packs", "azure-disk", "storage"] +--- + +## Versions Supported + + + + + + + + + + + +## Terraform + +Use the following Terraform snippet to reference the Azure Disk CSI pack in your Terraform template. Update the version +number as needed. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "azure-disk-csi" { + name = "csi-azure" + version = "1.30.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/csi-gcp-driver.md b/docs/docs-content/integrations/csi-gcp-driver.md new file mode 100644 index 0000000000..1108be23ea --- /dev/null +++ b/docs/docs-content/integrations/csi-gcp-driver.md @@ -0,0 +1,42 @@ +--- +sidebar_label: "GCE-Persistent-Disk" +title: "GCE Persistent Disk" +description: "GCE Persistent Disk storage pack in Spectro Cloud" +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "storage", "gce-persistent-disk"] +--- + +## Versions Supported + + + + + + + + + + + + + +## Terraform + +Use the following Terraform snippet to reference the GCE Persistent Disk pack in your Terraform code. + +```hcl + +data "spectrocloud_registry" "palette_registry_oci" { + name = "Palette Registry" +} + +data "spectrocloud_pack_simple" "cs-gcp-driver" { + name = "csi-gcp-driver" + version = "1.13.2" + type = "helm" + registry_uid = data.spectrocloud_registry.palette_registry_oci.id +} +``` diff --git a/docs/docs-content/integrations/csi-longhorn-addon.md b/docs/docs-content/integrations/csi-longhorn-addon.md new file mode 100644 index 0000000000..cf82b57ea9 --- /dev/null +++ b/docs/docs-content/integrations/csi-longhorn-addon.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Longhorn" +title: "Longhorn" +description: "Longhorn pack in Palette" +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64", "fips"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "longhorn", "storage"] +--- + + + +## Terraform + +Use the following Terraform snippet to reference the Longhorn pack in your Terraform template. Update the version number +as needed. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "csi-longhorn-addon" { + name = "csi-longhorn" + version = "1.6.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/csi-longhorn.md b/docs/docs-content/integrations/csi-longhorn.md new file mode 100644 index 0000000000..1432360443 --- /dev/null +++ b/docs/docs-content/integrations/csi-longhorn.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Longhorn" +title: "Longhorn" +description: "Longhorn pack in Palette" +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64", "fips"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "longhorn", "storage"] +--- + + + +## Terraform + +Use the following Terraform snippet to reference the Longhorn pack in your Terraform template. Update the version number +as needed. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "csi-longhorn" { + name = "csi-longhorn" + version = "1.5.1" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/gce.md b/docs/docs-content/integrations/gce.md deleted file mode 100644 index f251081027..0000000000 --- a/docs/docs-content/integrations/gce.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_label: "GCE-Persistent-Disk" -title: "GCE Persistent Disk" -description: "GCE Persistent Disk storage pack in Spectro Cloud" -hide_table_of_contents: true -type: "integration" -category: ["storage", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.dev.spectrocloud.com/v1/csi-gcp/blobs/sha256:af4cf7923e75f0ca1fe109f423ff0551855019edfc1d8772653cede454ef87ea?type=image.webp" -tags: ["packs", "storage", "gce-persistent-disk"] ---- - -The GCE Persistent disk are reliable, high-performance block storage for virtual machine instances. They are designed -for high durability. It provides redundant data storage to ensure data integrity. The key features of GCE Persistent -Disk are: - -- Disk Clones -- High Durability -- Resizable Volumes -- Independent Volumes -- Snapshots -- Machine Images - -## Versions Supported - - - - - -**1.7.1** - - - - - -**1.0** - - - - - -# References - -- [Google Cloud Persistent Disk Documentation](https://cloud.google.com/compute/docs/disks) diff --git a/docs/docs-content/integrations/gke-csi-gcp-driver.md b/docs/docs-content/integrations/gke-csi-gcp-driver.md new file mode 100644 index 0000000000..894e1a4487 --- /dev/null +++ b/docs/docs-content/integrations/gke-csi-gcp-driver.md @@ -0,0 +1,42 @@ +--- +sidebar_label: "GKE GCE-Persistent-Disk" +title: "GKE GCE Persistent Disk" +description: "GCE Persistent Disk storage pack in Spectro Cloud for GKE" +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "storage", "gce-persistent-disk"] +--- + +## Versions Supported + + + + + + + + + + + + + +## Terraform + +Use the following Terraform snippet to reference the GCE Persistent Disk for GKE pack in your Terraform code. + +```hcl + +data "spectrocloud_registry" "palette_registry_oci" { + name = "Palette Registry" +} + +data "spectrocloud_pack_simple" "cs-gcp-driver" { + name = "gke-csi-gcp-driver" + version = "1.0.0" + type = "helm" + registry_uid = data.spectrocloud_registry.palette_registry_oci.id +} +``` diff --git a/docs/docs-content/integrations/longhorn.md b/docs/docs-content/integrations/longhorn.md deleted file mode 100644 index ec545eb4b0..0000000000 --- a/docs/docs-content/integrations/longhorn.md +++ /dev/null @@ -1,355 +0,0 @@ ---- -sidebar_label: "Longhorn" -title: "Longhorn" -description: "Longhorn pack in Palette" -hide_table_of_contents: true -type: "integration" -category: ["storage", "amd64", "fips"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/csi-longhorn/blobs/sha256:8257bd6697941139cea8ace907e25b3859cb8de48f965a5b6011d518cad0a2db?type=image.webp" -tags: ["packs", "longhorn", "storage"] ---- - -Longhorn is a lightweight distributed block storage system for cloud native storage Kubernetes that allows you to -replicate storage to Kubernetes clusters. Once Longhorn is installed, it adds persistent volume support to the -Kubernetes cluster using containers and microservices. - -Longhorn creates a dedicated storage controller for each block device volume and replicates the volume across multiple -nodes. - -## Version Supported - - - - -## Prerequisites - -- Kubernetes cluster is 1.21 or higher. - -- Different Operating Systems (OS) have different requirements for the Longhorn installation. Use the links below to - learn more about the requirements for your OS. - - - [RKE and CoreOS](https://longhorn.io/docs/1.5.3/advanced-resources/os-distro-specific/csi-on-rke-and-coreos/) - - [K3s](https://longhorn.io/docs/1.5.3/advanced-resources/os-distro-specific/csi-on-k3s/) - - [Google GKE](https://longhorn.io/docs/1.5.3/advanced-resources/os-distro-specific/csi-on-gke/) - -## Parameters - -The table lists commonly used parameters you can configure when adding this pack. Refer to the -[Settings Reference](https://longhorn.io/docs/1.5.3/references/settings/) resource for a complete list of Longhorn -parameters and their descriptions. - -| Parameter | Description | Default | -| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | -| `pack.namespace` | The namespace where the Longhorn will be installed. If the namespace does not exist, it will be created. | `longhorn-system` | -| `charts.longhorn.global.persistence.defaultClass` | The volume type to be used. | `true` | -| `charts.longhorn.global.persistence.defaultFsType` | The default file system. | `ext4` | -| `charts.longhorn.global.persistence.defaultClassReplicaCount` | The default number of copies of data store in your cluster. | `3` | -| `charts.longhorn.global.persistence.defaultDataLocality` | The default location where data computation will occur. | `disabled` | -| `charts.longhorn.global.persistence.reclaimPolicy` | The policy that regulates dynamically provisioned volumes when its corresponding PersistentVolumeClaim is deleted. The default policy is `Delete`. This means that a dynamically provisioned volume will be automatically deleted when corresponding PersistentVolumeClaim is deleted. For important data, it is more appropriate to use the "Retain" policy. | `Delete` | -| `charts.longhorn.global.persistence.migratable` | The ability to transfer data to another data storage systems. | `false` | -| `charts.longhorn.global.persistence.recurringJobSelector.enable` | The management of recurring jobs. You can enable this feature and type a comma-separated list of jobs to activate. | `false` | - -## Usage - -The official Longhorn documentation contains several guides and examples. The following guides are a good place to start -when learning how to use Longhorn. - -- [How to Create Volumes](https://longhorn.io/docs/1.5.3/volumes-and-nodes/create-volumes/) - -- [Access the Longhorn UI](https://longhorn.io/docs/1.5.3/deploy/accessing-the-ui/) - -- [Longhorn Networking](https://longhorn.io/docs/1.5.3/references/networking/) - -- [Node Maintenance and Kubernetes Upgrade Guide](https://longhorn.io/docs/1.5.3/volumes-and-nodes/maintenance/) - -- [Storage Tags](https://longhorn.io/docs/1.5.3/volumes-and-nodes/storage-tags/) - -- [Important Notes](https://longhorn.io/docs/1.5.3/deploy/important-notes/) - -We also recommend you check out the [Examples](https://longhorn.io/docs/1.5.3/references/examples/) section of the -Longhorn documentation. The examples section contains several use cases of how to configure Longhorn. - -## Known Issues - -The following known issues exist in the Longhorn 1.5.X release. - -- A deadlock may occurs when using a RWX volume and a cluster node is recreated. This issue is disclosed as a - [known issue](https://github.com/longhorn/longhorn/wiki/Release-Known-Issues#v153) in the Longhorn GitHub repository] - and a fix is on the roadmap. Workarounds provided by the community can be found in the - [issue discussion](https://github.com/longhorn/longhorn/issues/7183#issuecomment-1823715359). - -- Rebooting or upgrading a cluster with Longhorn has a small possibility of triggering a race condition that causes pods - to be stuck in the terminating state. This issue is related to a - [known issue](https://github.com/longhorn/longhorn/issues/6962) in the Longhorn GitHub repository and a fix is on the - roadmap. - -- Using Longhorn together in airgap environments with an external registry requires you to update the Longhorn pack - image references to use the base URL of the Harbor registry. For more information, refer to - [Longhorn Deployer Stuck in Init State in Airgap Environments](#using-longhorn-with-harbor-registry-in-airgap-environments). - - - - - -## Prerequisites - -- Kubernetes cluster is 1.21 or higher. - -- Different Operating Systems (OS) have different requirements for the Longhorn installation. Use the links below to - learn more about the requirements for your OS. - - - [RKE and CoreOS](https://longhorn.io/docs/1.4.4/advanced-resources/os-distro-specific/csi-on-rke-and-coreos/) - - [K3s](https://longhorn.io/docs/1.4.4/advanced-resources/os-distro-specific/csi-on-k3s/) - - [Google GKE](https://longhorn.io/docs/1.4.4/advanced-resources/os-distro-specific/csi-on-gke/) - -## Parameters - -The table lists commonly used parameters you can configure when adding this pack. Refer to the -[Settings Reference](https://longhorn.io/docs/1.4.4/references/settings/) resource for a complete list of Longhorn -parameters and their descriptions. - -| Parameter | Description | Default | -| ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | -| `pack.namespace` | The namespace where the Longhorn will be installed. If the namespace does not exist, it will be created. | `longhorn-system` | -| `charts.longhorn.global.persistence.defaultClass` | The volume type to be used. | `true` | -| `charts.longhorn.global.persistence.defaultFsType` | The default file system. | `ext4` | -| `charts.longhorn.global.persistence.defaultClassReplicaCount` | The default number of copies of data store in your cluster. | `3` | -| `charts.longhorn.global.persistence.defaultDataLocality` | The default location where data computation will occur. | `disabled` | -| `charts.longhorn.global.persistence.reclaimPolicy` | This means that a dynamically provisioned volume will be automatically deleted when deletes when corresponding PersistentVolumeClaim is deleted. For important data, it is more appropriate to use the "Retain" policy. | `Delete` | -| `charts.longhorn.global.persistence.migratable` | The ability to transfer data to another data storage systems. | `false` | -| `charts.longhorn.global.persistence.recurringJobSelector.enable` | The management of recurring jobs. You can enable this feature and type a comma-separated list of jobs to activate. | `false` | - -## Usage - -The official Longhorn documentation contains several guides and examples. The following guides are a good place to start -when learning how to use Longhorn. - -- [How to Create Volumes](https://longhorn.io/docs/1.4.4/volumes-and-nodes/create-volumes/). - -- [Access the Longhorn UI](https://longhorn.io/docs/latest/deploy/accessing-the-ui/#accessing-the-longhorn-ui) - -- [Longhorn Networking](https://longhorn.io/docs/1.4.4/references/networking/) - -- [Node Maintenance and Kubernetes Upgrade Guide](https://longhorn.io/docs/1.4.4/volumes-and-nodes/maintenance/) - -- [Storage Tags](https://longhorn.io/docs/1.4.4/volumes-and-nodes/storage-tags/) - -- [Important Notes](https://longhorn.io/docs/1.4.4/deploy/important-notes/) - -We also recommend you check out the [Examples](https://longhorn.io/docs/1.4.4/references/examples/) section of the -Longhorn documentation. The examples section contains several use cases of how to configure Longhorn. - -### Using Longhorn with Harbor Registry in Airgap Environments - -When you use the Longhorn pack in an airgapped environment, the Harbor Edge-Native Config pack is required for your -cluster to function. However, you must change the image references in the Longhorn pack to use the base URL of the local -Harbor registry. Otherwise, the cluster will fail to deploy, with the `longhorn-driver-deployer` pod stuck in the `Init` -state. - -1. Log in to Palette. - -2. From the left **Main Menu**, select **Profiles**. - -3. Select the cluster profile you use to deploy the cluster with Longhorn. - -4. In the pack YAML for the Longhorn pack, replace the base URL of each image referenced in the pack with the Harbor - registry. - - For example, the following is a snippet of the Longhorn pack's YAML before and after you replace the base URL. - - - - - - ```yaml - pack: - namespace: "longhorn-system" - namespaceLabels: - "longhorn-system": - "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ - .spectro.system.kubernetes.version | substr 0 4 }}" - content: - images: - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 - ``` - - - - - - ```yaml - pack: - namespace: "longhorn-system" - namespaceLabels: - "longhorn-system": - "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ - .spectro.system.kubernetes.version | substr 0 4 }}" - content: - images: - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 - ``` - - - - - - Refer to [Harbor Edge-Native Config](./harbor-edge.md#log-in-to-harbor-web-ui) pack documentation to learn how to - find the node IP and port of the Harbor registry. If you have given the registry a domain name, you can use the - domain name instead of the node IP. - - - - - -## Prerequisites - -- Kubernetes cluster is at least version 1.18 and not higher than 1.24. - -- Different Operating Systems (OS) have different requirements for the Longhorn installation. Use the links below to - learn more about the requirements for your OS. - - - [RKE and CoreOS](https://longhorn.io/docs/1.3.3/advanced-resources/os-distro-specific/csi-on-rke-and-coreos/) - - [K3s](https://longhorn.io/docs/1.3.3/advanced-resources/os-distro-specific/csi-on-k3s/) - - [Google GKE](https://longhorn.io/docs/1.3.3/advanced-resources/os-distro-specific/csi-on-gke/) - -## Parameters - -The table lists commonly used parameters you can configure when adding this pack. Refer to the -[Settings Reference](https://longhorn.io/docs/1.3.3/references/settings/) resource for a complete list of Longhorn -parameters and their descriptions. - -| Parameter | Description | Default | -| ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | -| `pack.namespace` | The namespace where the Longhorn will be installed. If the namespace does not exist, it will be created. | `longhorn-system` | -| `charts.longhorn.global.persistence.defaultClass` | The volume type to be used. | `true` | -| `charts.longhorn.global.persistence.defaultFsType` | The default file system. | `ext4` | -| `charts.longhorn.global.persistence.defaultClassReplicaCount` | The default number of copies of data store in your cluster. | `3` | -| `charts.longhorn.global.persistence.defaultDataLocality` | The default location where data computation will occur. | `disabled` | -| `charts.longhorn.global.persistence.reclaimPolicy` | This means that a dynamically provisioned volume will be automatically deleted when deletes when corresponding PersistentVolumeClaim is deleted. For important data, it is more appropriate to use the `Retain` policy. | `Delete` | -| `charts.longhorn.global.persistence.migratable` | The ability to transfer data to another data storage systems. | `false` | -| `charts.longhorn.global.persistence.recurringJobSelector.enable` | The management of recurring jobs. You can enable this feature and type a comma-separated list of jobs to activate. | `false` | - -## Usage - -The official Longhorn documentation contains several guides and examples. The following guides are a good place to start -when learning how to use Longhorn. - -- [How to Create Volumes](https://longhorn.io/docs/1.4.4/volumes-and-nodes/create-volumes/). - -- [Access the Longhorn UI](https://longhorn.io/docs/latest/deploy/accessing-the-ui/#accessing-the-longhorn-ui) - -- [Longhorn Networking](https://longhorn.io/docs/1.4.4/references/networking/) - -- [Node Maintenance and Kubernetes Upgrade Guide](https://longhorn.io/docs/1.4.4/volumes-and-nodes/maintenance/) - -- [Storage Tags](https://longhorn.io/docs/1.4.4/volumes-and-nodes/storage-tags/) - -- [Important Notes](https://longhorn.io/docs/1.4.4/deploy/important-notes/) - -We also recommend you check out the [Examples](https://longhorn.io/docs/1.4.4/references/examples/) section of the -Longhorn documentation. The examples section contains several use cases of how to configure Longhorn. - -### Using Longhorn with Harbor Registry in Airgap Environments - -When you use the Longhorn pack in an airgapped environment, the Harbor Edge-Native Config pack is required for your -cluster to function. However, you must change the image references in the Longhorn pack to use the base URL of the local -Harbor registry. Otherwise, the cluster will fail to deploy, with the `longhorn-driver-deployer` pod stuck in the `Init` -state. - -1. Log in to Palette. - -2. From the left **Main Menu**, select **Profiles**. - -3. Select the cluster profile you use to deploy the cluster with Longhorn. - -4. In the pack YAML for the Longhorn pack, replace the base URL of each image referenced in the pack with the Harbor - registry. - - For example, the following is a snipped of the Longhorn pack's YAML before and after you replace the base URL: - - - - - - ```yaml - pack: - namespace: "longhorn-system" - namespaceLabels: - "longhorn-system": - "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ - .spectro.system.kubernetes.version | substr 0 4 }}" - content: - images: - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 - - image: gcr.io/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 - ``` - - - - - - ```yaml - pack: - namespace: "longhorn-system" - namespaceLabels: - "longhorn-system": - "pod-security.kubernetes.io/enforce=privileged,pod-security.kubernetes.io/enforce-version=v{{ - .spectro.system.kubernetes.version | substr 0 4 }}" - content: - images: - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-engine:v1.5.3 - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-manager:v1.5.3 - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-ui:v1.5.3 - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-instance-manager:v1.5.3 - - image: 10.10.137.220:30003/spectro-images-public/packs/csi-longhorn/1.5.3/longhorn-share-manager:v1.5.3 - ``` - - - - - - Refer to [Harbor Edge-Native Config](./harbor-edge.md#log-in-to-harbor-web-ui) pack documentation to learn how to - find the node IP and port of the Harbor registry. If you have given the registry a domain name, you can use the - domain name instead of the node IP. - - - - -## Terraform - -When using this Pack as a base layer, you need the following terraform code. - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "csi-longhorn" { - name = "longhorn" - version = "1.5.1" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - -## References - -- [Longhorn Home](https://longhorn.io/) - -- [Longhorn Documentation](https://longhorn.io/docs) - -- [Settings Reference](https://longhorn.io/docs/latest/references/settings/) - -- [Storage Class Parameters](https://longhorn.io/docs/latest/references/storage-class-parameters/) diff --git a/docs/docs-content/release-notes/known-issues.md b/docs/docs-content/release-notes/known-issues.md index c86ad05f30..e6db11eda4 100644 --- a/docs/docs-content/release-notes/known-issues.md +++ b/docs/docs-content/release-notes/known-issues.md @@ -40,7 +40,7 @@ The following table lists all known issues that are currently active and affecti | Conducting cluster node scaling operations on a cluster undergoing a backup can lead to issues and potential unresponsiveness. | To avoid this, ensure no backup operations are in progress before scaling nodes or performing other cluster operations that change the cluster state | April 14, 2024 | Clusters | | Palette automatically creates an AWS security group for worker nodes using the format `-node`. If a security group with the same name already exists in the VPC, the cluster creation process fails. | To avoid this, ensure that no security group with the same name exists in the VPC before creating a cluster. | April 14, 2024 | Clusters | | K3s version 1.27.7 has been marked as _Deprecated_. This version has a known issue that causes clusters to crash. | Upgrade to a newer version of K3s to avoid the issue, such as versions 1.26.12, 1.28.5, and 1.27.11. You can learn more about the issue in the [K3s GitHub issue](https://github.com/k3s-io/k3s/issues/9047) page. | April 14, 2024 | Packs, Clusters | -| When deploying a multi-node AWS EKS cluster with the Container Network Interface (CNI) [Calico](../integrations/calico.md), the cluster deployment fails. | A workaround is to use the AWS VPC CNI in the interim while the issue is resolved. | April 14, 2024 | Packs, Clusters | +| When deploying a multi-node AWS EKS cluster with the Container Network Interface (CNI) , the cluster deployment fails. | A workaround is to use the AWS VPC CNI in the interim while the issue is resolved. | April 14, 2024 | Packs, Clusters | | If a Kubernetes cluster deployed onto VMware is deleted, and later re-created with the same name, the cluster creation process fails. The issue is caused by existing resources remaining inside the PCG, or the System PCG, that are not cleaned up during the cluster deletion process. | Refer to the [VMware Resources Remain After Cluster Deletion](../troubleshooting/pcg.md#scenario---vmware-resources-remain-after-cluster-deletion) troubleshooting guide for resolution steps. | April 14, 2024 | Clusters | | In a VMware environment, self-hosted Palette instances do not receive a unique cluster ID when deployed, which can cause issues during a node repave event, such as a Kubernetes version upgrade. Specifically, Persistent Volumes (PVs) and Persistent Volume Claims (PVCs) will experience start problems due to the lack of a unique cluster ID. | To resolve this issue, refer to the [Volume Attachment Errors Volume in VMware Environment](../troubleshooting/palette-upgrade.md#volume-attachment-errors-volume-in-vmware-environment) troubleshooting guide. | April 14, 2024 | Self-Hosted | | Day-2 operations related to infrastructure changes, such as modifying the node size and count, when using MicroK8s are not taking effect. | No workaround is available. | April 14, 2024 | Packs, Clusters | diff --git a/static/packs-data/exclude_packs.json b/static/packs-data/exclude_packs.json index 86b9b55ba7..2d038757e2 100644 --- a/static/packs-data/exclude_packs.json +++ b/static/packs-data/exclude_packs.json @@ -1 +1 @@ -["palette-upgrader"] +["palette-upgrader", "csi-aws-new"] diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index e32dbf7c7a..aeef4d3a6b 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -183,6 +183,38 @@ "name": "cni-cilium", "description": "The Cilium agent runs on all clusters and servers to provide networking, security and observability to the workload running on that node." }, + { + "name": "csi-azure", + "description": "Azure Disk CSI Driver allows Kubernetes to access Azure Disk volumes. The driver is implemented as a Container Storage Interface (CSI) plugin." + }, + { + "name": "csi-gcp", + "description": "The Google Compute Engine Persistent Disk (GCE PD) Container Storage Interface (CSI) Storage Plugin. You can use the GCE PD CSI driver to manage the lifecycle of GCE PD volumes." + }, + { + "name": "csi-gcp-driver", + "description": "The Google Compute Engine Persistent Disk (GCE PD) Container Storage Interface (CSI) Storage Plugin. You can use the GCE PD CSI driver to manage the lifecycle of GCE PD volumes. This pack supports Google IaaS clusters." + }, + { + "name": "gke-csi-gcp-driver", + "description": "The Google Compute Engine Persistent Disk (GCE PD) Container Storage Interface (CSI) Storage Plugin. You can use the GCE PD CSI driver to manage the lifecycle of GCE PD volumes. This pack supports Google GKE clusters." + }, + { + "name": "csi-local-path-provisioner", + "description": "Local Path Provisioner provides a way for the Kubernetes users to utilize the local storage in each node. Based on the user configuration, the Local Path Provisioner will create either hostPath or local based persistent volume on the node automatically" + }, + { + "name": "csi-local-path-provisioner-addon", + "description": "Local Path Provisioner provides a way for the Kubernetes users to utilize the local storage in each node. Based on the user configuration, the Local Path Provisioner will create either hostPath or local based persistent volume on the node automatically" + }, + { + "name": "csi-longhorn", + "description": "Longhorn is a lightweight distributed block storage system for cloud native storage Kubernetes that allows you to replicate storage to Kubernetes clusters. Once Longhorn is installed, it adds persistent volume support to the Kubernetes cluster using containers and microservices." + }, + { + "name": "csi-longhorn-addon", + "description": "Longhorn is a lightweight distributed block storage system for cloud native storage Kubernetes that allows you to replicate storage to Kubernetes clusters. Once Longhorn is installed, it adds persistent volume support to the Kubernetes cluster using containers and microservices." + }, { "name": "csi-rook", "description": "Rook is a cloud-native storage orchestrator for Kubernetes, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments. Rook turns storage" @@ -207,10 +239,22 @@ "name": "consul", "description": "Consul is a service networking solution that enables teams to manage secure network connectivity between services and across on-prem and multi-cloud environments and runtimes. Consul offers service discovery, service mesh, traffic management, and automated updates to network infrastructure devices." }, + { + "name": "cos-gke", + "description": "Container-Optimized OS is an operating system image for your Compute Engine VMs that is optimized for deploying Docker containers. With Container-Optimized OS, you can bring up your Docker containers on Google Cloud Platform quickly, efficiently, and securely. Container-Optimized OS is maintained by Google and is based on the open source Chromium OS project." + }, { "name": "crossplane", "description": "Crossplane transforms Kubernetes clusters into universal control planes, extending the Kubernetes API and enabling infrastructure resource provisioning and management across major infrastructure providers." }, + { + "name": "csi-aws", + "description": "This Container Storage Interface (CSI) driver, provisioner, snapshotter, resizer, and attacher for Amazon Elastic Block Store (EBS) volumes enables Kubernetes to manage the lifecycle of EBS volumes." + }, + { + "name": "csi-aws-ebs", + "description": "The Amazon Elastic Block Store Container Storage Interface (CSI) Driver provides a CSI interface used by Container Orchestrators to manage the lifecycle of Amazon EBS volumes." + }, { "name": "kubernetes-microk8s", "description": "MicroK8s is a lightweight CNCF-certified Kubernetes distribution developed by Canonical. It deploys all Kubernetes services in a single, fully contained package and offers out-of-the-box add-ons." From db6c16ec60ea24b784adde4ecfd5fff77721182e Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Wed, 24 Jul 2024 13:50:16 -0700 Subject: [PATCH 14/22] docs: added more partials --- .../packs/_portworkx-operator.mdx | 248 +------- .../packs/_rook-ceph.mdx | 184 +++--- .../integrations/csi-nfs-subdir-external.md | 40 ++ .../integrations/csi-portworx-generic.md | 29 + .../integrations/csi-rook-ceph-addon.md | 29 + .../integrations/csi-rook-ceph.md | 29 + .../integrations/nfs-subdir-external.md | 37 -- .../integrations/portworx-add-on.md | 29 + docs/docs-content/integrations/portworx.md | 530 ------------------ static/packs-data/exclude_packs.json | 10 +- static/packs-data/packs_information.json | 52 ++ 11 files changed, 303 insertions(+), 914 deletions(-) rename docs/docs-content/integrations/portworx_operator.md => _partials/packs/_portworkx-operator.mdx (79%) rename docs/docs-content/integrations/rook-ceph.md => _partials/packs/_rook-ceph.mdx (65%) create mode 100644 docs/docs-content/integrations/csi-nfs-subdir-external.md create mode 100644 docs/docs-content/integrations/csi-portworx-generic.md create mode 100644 docs/docs-content/integrations/csi-rook-ceph-addon.md create mode 100644 docs/docs-content/integrations/csi-rook-ceph.md delete mode 100644 docs/docs-content/integrations/nfs-subdir-external.md create mode 100644 docs/docs-content/integrations/portworx-add-on.md delete mode 100644 docs/docs-content/integrations/portworx.md diff --git a/docs/docs-content/integrations/portworx_operator.md b/_partials/packs/_portworkx-operator.mdx similarity index 79% rename from docs/docs-content/integrations/portworx_operator.md rename to _partials/packs/_portworkx-operator.mdx index b01cceede2..8abbdec79d 100644 --- a/docs/docs-content/integrations/portworx_operator.md +++ b/_partials/packs/_portworkx-operator.mdx @@ -1,86 +1,13 @@ --- -sidebar_label: "Portworx /w Operator" -title: "Portworx Operator" -description: "Portworx storage CSI for all use cases" -hide_table_of_contents: true -type: "integration" -category: ["storage", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/csi-portworx/blobs/sha256:e27bc9aaf22835194ca38062061c29b5921734eed922e57d693d15818ade7486?type=image.webp" -tags: ["packs", "portworx", "storage"] +partial_category: packs +partial_name: portworx-operator --- -[Portworx](https://portworx.com/) is a software-defined persistent storage solution designed and purpose-built for -applications deployed as containers via container orchestrators such as Kubernetes. You can include Portworx in your -Kubernetes cluster by using the Portworx Operator pack. - ## Versions Supported - + -## Prerequisites - -Portworx Operator has the following prerequisites for installation. You can learn more about all the required Portworx -requirements in the [Portworx documentation](https://docs.portworx.com/install-portworx/prerequisites). - -- The Kubernetes cluster must have at least three nodes of the type bare metal or virtual machine. - -- Storage drives must be unmounted block storage. You can use either, raw disks, drive partitions, LVM, or cloud block - storage. - -- The backing drive must be at least 8 GB in size. - -- The following disk folder require enough space to store Portworx metadata: - - - **/var** - 2 GB - - - **/opt** - 3 GB - -- The operating system root partition must be at least 64 GB is the minimum. - -- The minimum hardware requirements for each node are: - - - 4 CPU cores - - - 8 GB RAM - - - 50 GB disk space - - - 1 Gbps network connectivity - -- A Linux kernel version of 3.10 or higher is required. - -* Docker version 1.13.1 or higher is required. - -- Ensure you use a - [supported Kubernetes version](https://docs.portworx.com/portworx-enterprise/install-portworx/prerequisites#supported-kubernetes-versions). - -- Identify and set up the type of storage you want to use. - -:::warning - -Starting with Portworx version 3.x.x and greater. Lighthouse is no longer available in the pack itself. Instead you can -install [Portworx Central](https://docs.portworx.com/portworx-central-on-prem/install/px-central.html), which provides -monitoring capabilities. - -::: - -## Parameters - -The following parameters are highlighted for this version of the pack and provide a preset option when configured -through the UI. These parameters are not exhaustive and you can configure additional parameters as needed. - -| Parameter | Description | Default | -| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------- | -| `portworx-generic.activateLicense` | Set to `true` to activate the Portworx license. | `true` | -| `portworx-generic.license.type` | Allowed values are: `essentials`, `saas`, `enterprise`. If you want to deploy the PX Enterprise Trial version, or need manual offline activation, select the **PX Enterprise** type and set `activateLicense` to `false`. | `essentials` | -| `portworx-generic.Storagecluster.spec` | Define the storage type and behavior for Portworx.Refer to the Storage Specification section below to learn more. | `{}` | -| `portworx-generic.externalKvdb` | Define the external Key Value Database (KVDB) configuration for Portworx. Refer to the Integration With External etcd section below to learn more. | `{}` | -| `portworx-generic.storageCluster.env` | Specify environment variables, such as HTTP Proxy settings, for Portworx. | `{}` | - -## Usage - The default installation of Portworx /w Operator will deploy the following components in the Kubernetes cluster: - Portworx Operator @@ -692,68 +619,6 @@ Use the following steps to integrate Portworx to an external etcd server by foll -## Prerequisites - -Portworx Operator has the following prerequisites for installation. You can learn more about all the required Portworx -requirements in the [Portworx documentation](https://docs.portworx.com/install-portworx/prerequisites). - -- The Kubernetes cluster must have at least three nodes of the type bare metal or virtual machine. - -- Storage drives must be unmounted block storage. You can use either, raw disks, drive partitions, LVM, or cloud block - storage. - -- The backing drive must be at least 8 GB in size. - -- The following disk folder require enough space to store Portworx metadata: - - - **/var** - 2 GB - - - **/opt** - 3 GB - -- The operating system root partition must be at least 64 GB is the minimum. - -- The minimum hardware requirements for each node are: - - - 4 CPU cores - - - 8 GB RAM - - - 50 GB disk space - - - 1 Gbps network connectivity - -- A Linux kernel version of 3.10 or higher is required. - -* Docker version 1.13.1 or higher is required. - -- Ensure you use a - [supported Kubernetes version](https://docs.portworx.com/portworx-enterprise/install-portworx/prerequisites#supported-kubernetes-versions). - -- Identify and set up the type of storage you want to use. - -:::warning - -Starting with Portworx version 3.x.x and greater. Lighthouse is no longer available in the pack itself. Instead you can -install [Portworx Central](https://docs.portworx.com/portworx-central-on-prem/install/px-central.html), which provides -monitoring capabilities. - -::: - -## Parameters - -The following parameters are highlighted for this version of the pack and provide a preset option when configured -through the UI. These parameters are not exhaustive and you can configure additional parameters as needed. - -| Parameter | Description | Default | -| :------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | -| `portworx-generic.activateLicense` | Set to `true` to activate the Portworx license. | `true` | -| `portworx-generic.license.type` | Allowed values are: `essentials`, `saas`, `enterprise`. If you want to deploy the PX Enterprise Trial version, or need manual offline activation, select **PX Enterprise** type and set `activateLicense` to `false`. | `essentials` | -| `portworx-generic.Storagecluster.spec` | Define the storage type and behavior for Portworx.Refer to the Storage Specification section below to learn more. | `{}` | -| `portworx-generic.externalKvdb` | Define the external Key Value Database (KVDB) configuration for Portworx. Refer to the Integration With External etcd section below to learn more. | `{}` | -| `portworx-generic.storageCluster.env` | Specify environment variables, such as HTTP Proxy settings, for Portworx. | `{}` | - -## Usage - The default installation of Portworx /w Operator will deploy the following components in the Kubernetes cluster: - Portworx Operator @@ -1281,68 +1146,6 @@ Use the following steps to integrate Portworx to an external etcd server by foll -## Prerequisites - -Portworx Operator has the following prerequisites for installation. You can learn more about all the required Portworx -requirements in the [Portworx documentation](https://docs.portworx.com/install-portworx/prerequisites). - -- The Kubernetes cluster must have at least three nodes of the type bare metal or virtual machine. - -- Storage drives must be unmounted block storage. You can use either, raw disks, drive partitions, LVM, or cloud block - storage. - -- The backing drive must be at least 8 GB in size. - -- The following disk folder require enough space to store Portworx metadata: - - - **/var** - 2 GB - - - **/opt** - 3 GB - -- The operating system root partition must be at least 64 GB is the minimum. - -- The minimum hardware requirements for each node are: - - - 4 CPU cores - - - 8 GB RAM - - - 50 GB disk space - - - 1 Gbps network connectivity - -- A Linux kernel version of 3.10 or higher is required. - -* Docker version 1.13.1 or higher is required. - -- Ensure you use a - [supported Kubernetes version](https://docs.portworx.com/portworx-enterprise/install-portworx/prerequisites#supported-kubernetes-versions). - -- Identify and set up the type of storage you want to use. - -:::warning - -Starting with Portworx version 3.x.x and greater. Lighthouse is no longer available in the pack itself. Instead you can -install [Portworx Central](https://docs.portworx.com/portworx-central-on-prem/install/px-central.html), which provides -monitoring capabilities. - -::: - -## Parameters - -The following parameters are highlighted for this version of the pack and provide a preset option when configured -through the UI. These parameters are not exhaustive and you can configure additional parameters as needed. - -| Parameter | Description | Default | -| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | -| `portworx-generic.activateLicense` | Set to `true` to activate the Portworx license. | `true` | -| `portworx-generic.license.type` | Allowed values are: `essentials`, `saas`, `enterprise`. If you want to deploy the PX Enterprise Trial version, or need manual offline activation, select **PX Enterprise** and set `activateLicense` to `false`. | `essentials` | -| `portworx-generic.Storagecluster.spec` | Define the storage type and behavior for Portworx.Refer to the Storage Specification section below to learn more. | `{}` | -| `portworx-generic.externalKvdb` | Define the external Key Value Database (KVDB) configuration for Portworx. Refer to the Integration With External etcd section below to learn more. | `{}` | -| `portworx-generic.storageCluster.env` | Specify environment variables, such as HTTP Proxy settings, for Portworx. | `{}` | - -## Usage - The default installation of Portworx /w Operator will deploy the following components in the Kubernetes cluster: - Portworx Operator @@ -1867,47 +1670,4 @@ certificates will not be imported correctly and will result in Portworx deployme - - -:::warning - -All versions less than 2.12.x are considered deprecated. Upgrade to a newer version to take advantage of new features. - -::: - -
- -
- -
- -## Terraform - -Use the following Terraform code to interact with the Portworx Operator pack in your Terraform scripts. - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "portworx-operator" { - name = "csi-portworx-generic" - version = "3.0.0" - type = "operator-instance" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - -## References - -- [Portworx Install with Kubernetes](https://docs.portworx.com/portworx-install-with-kubernetes/) - -- [Installation Prerequisites](https://docs.portworx.com/install-portworx/prerequisites/) - -- [Portworx Supported Kubernetes versions](https://docs.portworx.com/portworx-enterprise/install-portworx/prerequisites#supported-kubernetes-versions) - -- [Stork](https://docs.portworx.com/portworx-enterprise/operations/operate-kubernetes/storage-operations/stork.html) - -- [Portworx Central](https://docs.portworx.com/portworx-central-on-prem/install/px-central.html) - -- [Flash Array](https://docs.portworx.com/portworx-enterprise/install-portworx/kubernetes/flasharray) +
\ No newline at end of file diff --git a/docs/docs-content/integrations/rook-ceph.md b/_partials/packs/_rook-ceph.mdx similarity index 65% rename from docs/docs-content/integrations/rook-ceph.md rename to _partials/packs/_rook-ceph.mdx index e36eca9b65..9231569f56 100644 --- a/docs/docs-content/integrations/rook-ceph.md +++ b/_partials/packs/_rook-ceph.mdx @@ -1,58 +1,101 @@ --- -sidebar_label: "rook-ceph" -title: "Rook Ceph" -description: "Rook is an open-source cloud-native storage orchestrator that provides the platform, framework, and support for Ceph -storage to natively integrate with cloud-native environments. Ceph is a distributed storage system that provides file, -block, and object storage and is deployed in large-scale production clusters. This page talks about how to use the Rook Ceph storage pack in Spectro Cloud" -hide_table_of_contents: true -type: "integration" -category: ["storage", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: - " https://registry.dev.spectrocloud.com/v1/csi-rook-ceph/blobs/sha256:2817270f4eecbc2eea0740c55c7611d1a538a3e17da610a3487bb11b067076d1?type=image.webp" -tags: ["packs", "rook-ceph", "storage"] +partial_category: packs +partial_name: rook-ceph --- -Rook is an open-source cloud-native storage orchestrator that provides the platform, framework, and support for Ceph -storage to natively integrate with cloud-native environments. Ceph is a distributed storage system that provides file, -block, and object storage and is deployed in large-scale production clusters. +## Versions Supported -Rook turns storage software into self-managing, self-scaling, and self-healing storage services. It automates -deployment, bootstrapping, configuration, provisioning, scaling, upgrading, migration, disaster recovery, monitoring, -and resource management. Rook uses the facilities provided by the underlying cloud-native container management, -scheduling, and orchestration platform to perform its duties. + -The pack has two presets that provide the following two configurations: + -- A multi-node Ceph cluster. -- A single-node Ceph cluster. +### Rook on Edge Clusters -## Versions Supported +To use Rook-Ceph on Edge clusters, you need to make a few changes to the cluster profile depending on your cluster +configuration. - +1. In the YAML file for BYO-OS pack, add the following blocks to the `stages` configuration in the OS pack of the + cluster profile. - + ```yaml + stages: + initramfs: + - files: + - path: /etc/modules-load.d/ceph.conf + permissions: 644 + owner: 0 + group: 0 + content: | + rbd + ceph + encoding: "" + ownerstring: "" + after-upgrade: + - name: "Erase Old Partitions on Boot Disk" + commands: + - wipefs -a /dev/sdb + ``` + +2. Click on the Rook-Ceph layer. In the upper-right corner of the Rook-Ceph layer's YAML editing interface, click + **Presets**. Set the preset to either single-node or multi-node depending on your cluster configuration. + +3. If you chose the **Single Node Cluster** preset, skip this step. + + If you chose the **Multi Node Cluster with Replicas** preset, set the value of + `manifests.storageClass.volumeBindingMode` to `Immediate`. + +### Access Ceph Dashboard + +The Ceph dashboard gives you an overview of the status of your Ceph cluster, including overall health, and the status of +all Ceph daemons. By default, the Dashboard is exposed as a ClusterIP-type service on the port 7000 on single node +clusters. + +1. Issue the following command to view the service and find its cluster IP and port. + + ```shell + kukubectl --namespace rook-ceph get svc | grep dashboard + ``` + + ```hideClipboard + rook-ceph-mgr-dashboard ClusterIP 192.169.32.142 7000/TCP 15m + ``` -## Prerequisites +2. If you are on a node of the cluster, you can visit the dashboard by visiting the cluster IP and the exposed port. -- Kubernetes v1.21 or higher. + If you are remotely accessing the cluster, you can issue the following command to enable port forwarding from your + local machine to the dashboard service. -- If you are using Rook on Edge, the Edge host needs to be created with at least two hard disks. + ```shell + kukubectl port-forward svc/rook-ceph-mgr-dashboard -n rook-ceph 8443:7000 & + ``` -- If you are using Rook on Edge, you must have create a bind mount for the `/var/lib/rook` folder on the Edge host. For - more information, refer to - [Create Bind Mounts](../clusters/edge/edgeforge-workflow/prepare-user-data.md#create-bind-mounts). + If your dashboard service is exposed on a different port, replace 7000 with the port that the dashboard service is + exposed on. -## Parameters +3. Once you can connect to the dashboard, you need to provide the login credentials to access the dashboard. Rook + creates a default user named `admin` and generates a secret called `rook-ceph-dashboard-password` in the namespace of + the Rook-Ceph cluster. To retrieve the generated password, issue the following command: -| Parameter | Description | Default | -| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------ | -| cluster.contents.spec.storage.useAllDevices | Allows the cluster to use all available devices on the nodes for storage. | true | -| cluster.contents.spec.storage.deviceFilter | A regex filter that filters storage devices. Only device names that match the filter are used by Ceph clusters. | Empty String | -| cluster.contents.spec.dashboard.enabled | Whether to enable the Ceph dashboard. | true | -| cluster.operator.contents.data.LOG_LEVEL | The log level of Rook Operator. Accepted values are `DEBUG`, `INFO`. `WARNING`, and `ERROR`. | `INFO` | + ```shell + kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo + ``` + +4. Use the password you receive in the output with the username `admin` to log in to the Ceph Dashboard. + +### Known Issues + +- If a cluster experiences network issues, it's possible for the file mount to become unavailable and remain unavailable + even after the network is restored. This a known issue disclosed in the + [Rook GitHub repository](https://github.com/rook/rook/issues/13818). Refer to the + [Troubleshooting section](#file-mount-becomes-unavailable-after-cluster-experiences-network-issues) for a workaround + if you observe this issue in your cluster. + + + + + + -## Usage ### Rook on Edge Clusters @@ -139,27 +182,6 @@ clusters. -## Prerequisites - -- Kubernetes v1.21 or higher. - -- If you are using Rook on Edge, the Edge host needs to be created with at least two hard disks. The actual required - number of disks depend on your cluster configuration. - -- If you are using Rook on Edge, you must have create a bind mount for the `/var/lib/rook` folder on the Edge host. For - more information, refer to - [Create Bind Mounts](../clusters/edge/edgeforge-workflow/prepare-user-data.md#create-bind-mounts). - -## Parameters - -| Parameter | Description | Default | -| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------ | -| cluster.contents.spec.storage.useAllDevices | Allows the cluster to use all available devices on the nodes for storage. | true | -| cluster.contents.spec.storage.deviceFilter | A regex filter that filters storage devices. Only device names that match the filter are used by Ceph clusters. | Empty String | -| cluster.contents.spec.dashboard.enabled | Whether to enable the Ceph dashboard. | true | -| cluster.operator.contents.data.LOG_LEVEL | The log level of Rook Operator. Accepted values are `DEBUG`, `INFO`. `WARNING`, and `ERROR`. | `INFO` | - -## Usage ### Rook on Edge Clusters @@ -246,27 +268,6 @@ clusters. -## Prerequisites - -- Kubernetes v1.21 or higher. - -- If you are using Rook on Edge, the Edge host needs to be created with at least two hard disks. The actual required - number of disks depend on your cluster configuration. - -- If you are using Rook on Edge, you must have create a bind mount for the `/var/lib/rook` folder on the Edge host. For - more information, refer to - [Create Bind Mounts](../clusters/edge/edgeforge-workflow/prepare-user-data.md#create-bind-mounts). - -## Parameters - -| Parameter | Description | Default | -| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------ | -| cluster.contents.spec.storage.useAllDevices | Allows the cluster to use all available devices on the nodes for storage. | true | -| cluster.contents.spec.storage.deviceFilter | A regex filter that filters storage devices. Only device names that match the filter are used by Ceph clusters. | Empty String | -| cluster.contents.spec.dashboard.enabled | Whether to enable the Ceph dashboard. | true | -| cluster.operator.contents.data.LOG_LEVEL | The log level of Rook Operator. Accepted values are `DEBUG`, `INFO`. `WARNING`, and `ERROR`. | `INFO` | - -## Usage ### Rook on Edge Clusters @@ -420,24 +421,3 @@ issues are resolved. unmount will not happen and the issue will not be resolved. 6. Scale the workloads back to their original state. - -## Terraform - -```tf -data "spectrocloud_registry" "registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "pack" { - name = "csi-rook-ceph-addon" - version = "1.12.7" - type = "helm" - registry_uid = data.spectrocloud_registry.registry.id -} -``` - -## References - -- [Rook Ceph Documentation](https://rook.io/docs/rook/v1.10/Getting-Started/intro/) - -- [Ceph Dashboard](https://rook.io/docs/rook/latest-release/Storage-Configuration/Monitoring/ceph-dashboard/) diff --git a/docs/docs-content/integrations/csi-nfs-subdir-external.md b/docs/docs-content/integrations/csi-nfs-subdir-external.md new file mode 100644 index 0000000000..3f0039f395 --- /dev/null +++ b/docs/docs-content/integrations/csi-nfs-subdir-external.md @@ -0,0 +1,40 @@ +--- +sidebar_label: "nfs-subdir-External" +title: "Kubernetes NFS Subdir External Provisionerl" +description: "NFS-Subdir-External Provisioner pack in Spectro Cloud" +type: "integration" +category: ["storage", "amd64"] +hide_table_of_contents: true +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.dev.spectrocloud.com/v1/csi-nfs-subdir-external/blobs/sha256:4b40eb85382d04dc4dcfc174b5e288b963b6201f6915e14b07bd8a5c4323b51b?type=image.webp" +tags: ["packs", "nfs-subdir-external", "storage"] +--- + +## Versions Supported + + + + + + + + + +## Terraform + +Use the following Terraform snippet to reference the NFS-Subdir-External Provisioner pack in your Terraform template. +Update the version number as needed. + +```hcl +data "spectrocloud_registry" "community_registry" { + name = "Palette Community Registry" +} + + +data "spectrocloud_pack_simple" "csi-nfs-subdir-external" { + name = "csi-nfs-subdir-external" + version = "4.0.13" + type = "helm" + registry_uid = data.spectrocloud_registry.community_registry.id +} +``` diff --git a/docs/docs-content/integrations/csi-portworx-generic.md b/docs/docs-content/integrations/csi-portworx-generic.md new file mode 100644 index 0000000000..e59f321001 --- /dev/null +++ b/docs/docs-content/integrations/csi-portworx-generic.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "Portworx /w Operator" +title: "Portworx Operator" +description: "Portworx storage CSI for all use cases" +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "portworx", "storage"] +--- + + + +## Terraform + +Use the following Terraform code to interact with the Portworx Operator pack in your Terraform scripts. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "portworx-operator" { + name = "csi-portworx-generic" + version = "3.0.0" + type = "operator-instance" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/csi-rook-ceph-addon.md b/docs/docs-content/integrations/csi-rook-ceph-addon.md new file mode 100644 index 0000000000..1181b6f1c6 --- /dev/null +++ b/docs/docs-content/integrations/csi-rook-ceph-addon.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "rook-ceph" +title: "Rook Ceph" +description: "Rook is an open-source cloud-native storage orchestrator that provides the platform, framework, and support for Ceph +storage to natively integrate with cloud-native environments. Ceph is a distributed storage system that provides file, +block, and object storage and is deployed in large-scale production clusters." +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "rook-ceph", "storage"] +--- + + + +## Terraform + +```hcl +data "spectrocloud_registry" "registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "csi-rook-ceph" { + name = "csi-rook-ceph-addon" + version = "1.14.0" + type = "helm" + registry_uid = data.spectrocloud_registry.registry.id +} +``` diff --git a/docs/docs-content/integrations/csi-rook-ceph.md b/docs/docs-content/integrations/csi-rook-ceph.md new file mode 100644 index 0000000000..d08f6f6cdf --- /dev/null +++ b/docs/docs-content/integrations/csi-rook-ceph.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "rook-ceph" +title: "Rook Ceph" +description: "Rook is an open-source cloud-native storage orchestrator that provides the platform, framework, and support for Ceph +storage to natively integrate with cloud-native environments. Ceph is a distributed storage system that provides file, +block, and object storage and is deployed in large-scale production clusters." +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "rook-ceph", "storage"] +--- + + + +## Terraform + +```hcl +data "spectrocloud_registry" "registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "csi-rook-ceph" { + name = "csi-rook-ceph" + version = "1.14.0" + type = "helm" + registry_uid = data.spectrocloud_registry.registry.id +} +``` diff --git a/docs/docs-content/integrations/nfs-subdir-external.md b/docs/docs-content/integrations/nfs-subdir-external.md deleted file mode 100644 index 1e0503c5cb..0000000000 --- a/docs/docs-content/integrations/nfs-subdir-external.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -sidebar_label: "nfs-subdir-External" -title: "Kubernetes NFS Subdir External Provisionerl" -description: "NFS-Subdir-External Provisioner pack in Spectro Cloud" -type: "integration" -category: ["storage", "amd64"] -hide_table_of_contents: true -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.dev.spectrocloud.com/v1/csi-nfs-subdir-external/blobs/sha256:4b40eb85382d04dc4dcfc174b5e288b963b6201f6915e14b07bd8a5c4323b51b?type=image.webp" -tags: ["packs", "nfs-subdir-external", "storage"] ---- - -NFS Subdir External Provisioner is an automatic provisioner for Kubernetes that uses the already configured NFS server, -automatically creating Persistent storage volumes. It installs the storage classes and NFS client provisioner into the -workload cluster - -## Prerequisites - -Kubernetes >=1.9 - -## Versions Supported - - - - - -**1.0** - - - - - -## References - -- [Kubernetes NFS Subdir External Provisioner GitHub](https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner) - -- [Kubernetes NFS Subdir External Provisioner Documentation](https://artifacthub.io/docs) diff --git a/docs/docs-content/integrations/portworx-add-on.md b/docs/docs-content/integrations/portworx-add-on.md new file mode 100644 index 0000000000..8cca604c95 --- /dev/null +++ b/docs/docs-content/integrations/portworx-add-on.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "Portworx /w Operator Add-on" +title: "Portworx Operator Add-on" +description: "Portworx storage CSI for all use cases" +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "portworx", "storage"] +--- + + + +## Terraform + +Use the following Terraform code to interact with the Portworx Operator pack in your Terraform scripts. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "portworx-operator" { + name = "csi-portworx-add-on" + version = "3.0.0" + type = "operator-instance" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/portworx.md b/docs/docs-content/integrations/portworx.md deleted file mode 100644 index 1a8881baef..0000000000 --- a/docs/docs-content/integrations/portworx.md +++ /dev/null @@ -1,530 +0,0 @@ ---- -sidebar_label: "Portworx" -title: "Portworx" -description: "Portworx storage integration for on-prem installations" -hide_table_of_contents: true -type: "integration" -category: ["storage", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/csi-portworx/blobs/sha256:e27bc9aaf22835194ca38062061c29b5921734eed922e57d693d15818ade7486?type=image.webp" -tags: ["packs", "portworx", "storage"] ---- - -[Portworx](https://portworx.com/) is a software-defined persistent storage solution designed and purpose-built for -applications deployed as containers, via container orchestrators such as Kubernetes. You can use Palette to install -Portworx on the cloud or on-premises. - -## Versions Supported - -
- - - - - -- **2.11.2** - - - - - -- **2.10.0** - - - - -- **2.9.0** - - - - -- **2.8.0** - - - - -- **2.6.1** - - - - -## Prerequisites - -For deploying Portworx for Kubernetes, make sure to configure the properties in the pack: - -- Have at least three nodes with the proper - [hardware, software, and network requirements](https://docs.portworx.com/install-portworx/prerequisites). - -- Ensure you are using a supported Kubernetes version. - -- Identify and set up the storageType. - -
- -## Contents - -The default installation of Portworx will deploy the following components in the Kubernetes cluster. - -- Portworx - -- CSI Provisioner - -- [Lighthouse](https://portworx.com/blog/manage-portworx-clusters-using-lighthouse/) - -- [Stork](https://github.com/libopenstorage/stork) and - [Stork on Portworx](https://docs.portworx.com/portworx-enterprise/platform/openshift/ocp-gcp/operations/storage-operations/stork.html) - -- Storage class making use of portworx-volume provisioner. - -## Parameters - -### Manifests - Portworx - -```yaml -manifests: - portworx: - # The namespace to install Portworx resources - namespace: "portworx" - - # Portworx storage type and size - storageType: "type=zeroedthick,size=150" - - # Max storgae nodes per zone - maxStorageNodesPerZone: 3 - - # Node recovery timeout in seconds - nodeRecoveryTimeout: 1500 - - # Portworx storage class config - storageClass: - enabled: true - isDefaultStorageClass: true - allowVolumeExpansion: true - reclaimPolicy: Retain - volumeBindingMode: Immediate - parameters: - repl: "3" - priority_io: "high" - #sharedv4: true - - k8sVersion: "{{.spectro.system.kubernetes.version}}" - - templateVersion: "v4" - - # List of additional container args to be passed - args: - ociMonitor: - #- "-dedicated_cache" - #- "-a" - storkDeployment: - #- "--app-initializer=true" - storkScheduler: - #- "--scheduler-name=xyz" - autoPilot: - csiProvisioner: - csiSnapshotter: - csiSnapshotController: - csiResizer: - - # The private registry from where images will be pulled from. When left empty, images will be pulled from the public registry - # Example, imageRegistry: "harbor.company.com/portworx" - imageRegistry: "" -``` - -# Integration With External etcd - -Starting Portworx v2.6.1, you can use the presets feature to toggle between the available ETCD options. - -By default, Portworx is set to use internal KVDB. However, you can integrate Portworx to an external etcd server by -following the steps below. - -1. Enable `useExternalKvdb` flag by setting it to _true_. - -2. Configure the external etcd endpoints in `externalKvdb.endpoints`. - -If the external etcd server is configured to authenticate via certificates, additionally you may want to set up the -following: - -1. Enable `externalKvdb.useCertsForSSL` flag by setting it to _true_. - -2. Setup certificate related configuration in `externalKvdb.cacert`, `externalKvdb.cert`, and `externalKvdb.key`. - -:::warning - -Make sure to follow the correct indentation style; otherwise, certs will not be imported correctly and will result in -Portworx deployment failure. - -::: - -## Etcd Presets - -These are the three types of Presets that can be selected and modified. - -
- - - - -## Use Internal KVDB - -```yaml -# ECTD selection - useExternalKvdb: false - - # External kvdb related config - externalKvdb: - - useCertsForSSL: false - -vsphere-cloud-controller-manager: - k8sVersion: '{{.spectro.system.kubernetes.version}}' -``` - - - - -## Use Non-Secure KVDB Endpoints - -```yaml -# External kvdb related config - externalKvdb: - # List of External KVDB endpoints to use with Portworx. Used only when useExternalKvdb is true - endpoints: - - etcd:http://100.26.199.167:2379 - - etcd:http://100.26.199.168:2379 - - etcd:http://100.26.199.169:2379 - useCertsForSSL: false - useExternalKvdb: true - vsphere-cloud-controller-manager: - k8sVersion: '{{.spectro.system.kubernetes.version}}' -``` - - - - - -## Use Certs Secured KVDB Endpoints - -```yaml - -# External KVDB Related Configuration - externalKvdb: - # List of External KVDB endpoints to use with Portworx. Used only when useExternalKvdb is true - endpoints: - - etcd:https://100.26.199.167:2379 - - etcd:https://100.26.199.168:2379 - - etcd:https://100.26.199.169:2379 - useCertsForSSL: true - # The CA cert to use for etcd authentication. Make sure to follow the same indentation style as given in the example below - cacert: |- - -----BEGIN CERTIFICATE----- - MIIC3DCCAcQCCQCr1j968rOV3zANBgkqhkiG9w0BAQsFADAwMQswCQYDVQQGEwJV - UzELMAkGA1UECAwCQ0ExFDASBgNVBAcMC1NhbnRhIENsYXJhMB4XDTIwMDkwNDA1 - MzcyNFoXDTI1MDkwMzA1MzcyNFowMDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNB - MRQwEgYDVQQHDAtTYW50YSBDbGFyYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC - AQoCggEBALt2CykKKwncWNQqB6Jg0QXd58qeDk40OF4Ti8DewZiZgpQOgA/+GYO7 - bx2/oQyAwjvhpTYjmMN5zORJpE3p9A+o57An1+B9D8gm1W1uABVEmwiKZhXpa+3H - Zlon58GR+kAJPbMIpvWbjMZb4fxZM0BPo0PHzzITccoaTV4+HY4YoDNAVjfZ1cEn - Hu2PUyN8M4RM+HdE4MOQVwqFDq/Fr6mLBMV0PdiwML0tjZ7GSGSjv1hme3mOLvKP - qSWx4hCd5oTegEfneUKKnVhH3JLpSU1NaC6jU3vhyowRNOShi77/uJCnkx3mp9JG - c4YruKrGc997wmUMsIv0owt49Y3dAi8CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA - kEXPdtpOURiZIi01aNJkzLvm55CAhCg57ZVeyZat4/LOHdvo+eXeZ2LHRvEpbakU - 4h1TQJqeNTd3txI0eIx8WxpwbJNxesuTecCWSIeaN2AApIWzHev/N7ZYJsZ0EM2f - +rYVcX8mcOkLeyKDInCKySxIPok8kU4qQLTWytJbeRYhxh7mSMuZXu7mtSh0HdP1 - C84Ml+Ib9uY2lbr1+15MhfSKdpvmLVOibRIrdqQirNhl8uU9I1/ExDxXyR2NBMLW - tzGgsz5dfFDZ4oMqAc8Nqm9LuvmIZYMCunMZedI2h7jGH3LVQXdM81iZCgJdTgKf - i9CNyx+CcwUCkWQzhrHBQA== - -----END CERTIFICATE----- - # The cert to use for etcd authentication. Make sure to follow the same indentation style as given in the example below - cert: |- - -----BEGIN CERTIFICATE----- - MIIDaTCCAlGgAwIBAgIJAPLC+6M3EezhMA0GCSqGSIb3DQEBCwUAMDAxCzAJBgNV - BAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xhcmEwHhcNMjAw - OTA0MDUzODIyWhcNMjIxMjA4MDUzODIyWjA4MQswCQYDVQQGEwJVUzETMBEGA1UE - CAwKQ2FsaWZvcm5pYTEUMBIGA1UEBwwLU2FudGEgQ2xhcmEwggEiMA0GCSqGSIb3 - DQEBAQUAA4IBDwAwggEKAoIBAQCycmCHPrX0YNk75cu3H5SQv/D1qND2+2rGvv0Z - x28A98KR/Bdchk1QaE+UHYPWejsRWUtEB0Q0KreyxpwH1B4EHNKpP+jV9YqCo5fW - 3QRipWONKgvrSKkjVp/4U/NAAWCHfruB1d9u/qR4utY7sEKHE9AxmbyG+K19mOB2 - FJc7NOsTwN8d6uA5ZfFKmv3VtZzl0+Vq1qFSyIZT9zXYM22YjBAqXk9FVoI0FoQt - zpymQrsajfS+hNX7lSUVKKv3IplpNqSOyTHRF7TWo5NOH+YRWJHLAgZoq2w/yaEi - 5IdjLdb1JXmVUyBgq590WcJZDakwD9SPOHrM9K1vTl9I41q7AgMBAAGjfjB8MEoG - A1UdIwRDMEGhNKQyMDAxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UE - BwwLU2FudGEgQ2xhcmGCCQCr1j968rOV3zAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE - 8DAWBgNVHREEDzANggtleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAUOBn - YdTif6WlRpQOj+3quGrafJSNL8TqHkpmgaInSpMVFwDsmPF/HoAVVpX+H3oMY8p7 - Ll4I1Q7szpGRnKpJuzMZp5+gNpmwAz2MdAr7Ae9wH/+o8c2avbfpaHFWVTJZJ6X1 - Q6m6jmXcU0QSS4zj+lyxDNKnXfwVL8hVp0mXRFfPpb4l5ZCBoj4IA2UgyeU7F/nn - nvR5rmg781zc0lUL6X7HaSfQjtPDTSZYFqwE93vSe42JP7NWM96lZHy2IlfE88Wp - jUvOOJjaFVuluaJ78uCydMGEkJmipxH+1YXicH47RQ30tD5QyXxGBi+8jw5z0RiR - ptWD/oDFCiCjlffyzg== - -----END CERTIFICATE----- - # The key to use for etcd authentication. Make sure to follow the same indentation style as given in the example below - key: |- - -----BEGIN RSA PRIVATE KEY----- - MIIEogIBAAKCAQEAsnJghz619GDZO+XLtx+UkL/w9ajQ9vtqxr79GcdvAPfCkfwX - XIZNUGhPlB2D1no7EVlLRAdENCq3ssacB9QeBBzSqT/o1fWKgqOX1t0EYqVjjSoL - 60ipI1af+FPzQAFgh367gdXfbv6keLrWO7BChxPQMZm8hvitfZjgdhSXOzTrE8Df - HergOWXxSpr91bWc5dPlatahUsiGU/c12DNtmIwQKl5PRVaCNBaELc6cpkK7Go30 - voTV+5UlFSir9yKZaTakjskx0Re01qOTTh/mEViRywIGaKtsP8mhIuSHYy3W9SV5 - lVMgYKufdFnCWQ2pMA/Ujzh6zPStb05fSONauwIDAQABAoIBAGHELIKspv/m993L - Pttrn/fWUWwmO6a1hICzLvQqwfRjyeQ1m48DveQp4j+iFBM0EJymsYfp+0IhjVeT - XPUlD/Ts3bYA384pouOEQbJkkPyC5JH40WLtAk3sLeTeCc2tc3eIxa6SwMGNHgtP - QgSdwzVCc7RZKGNCZ7sCQSgwi9LRdyjHU0z0KW3lHqsMkK+yEg8zuH2DpIgvFej8 - KxjwF9ZEsnYDcERdd4TOu2NTEIl5N7F8E6di/CLP/wkfHazjX+qGcuBXjeGhPgdb - fKCcrFxhbavaJRMGLqnOD99l/zvySnA+LUSZ35KB/2ZfLMv71Z9oABTlyiR+76GW - 0lcQjmECgYEA2Jrq2qe7IUZ8CURWJ6rDKgD83LGRCHAWZ+dYvFmdsyfAGMV4+p4V - zKSidiTWAgl7ppiZdaEPu/2cH8uohDkdx2CTSUKPUM6+PBhE4hwSA42RlnIpGWbf - YEqcZ/qeo1IFb1A1YslwdslCVLc3INEbWairBEGis8aAxUaoEiTiPTMCgYEA0ubQ - 05BijLK6XH6YfASDLxwRg6jxn3mBqh+pAwE4tVVJVI9yXnNzN4/WKJJM+mdSGfpv - UcJy86ZcmHNzanZUPWh80U2pyRoVXvVQpY8hdMQ3neya60mc6+Nneba2LflkBVmd - cdoNGO0zAcGb0FKDCF2H3fizDxcoOyUjeKlLnFkCgYABU0lWlyok9PpzUBC642eY - TTM+4nNBuvXYIuk/FclKPFcHj8XCus7lVqiL0oPgtVAlX8+okZi4DMA0zZk1XegZ - vTSJgTfBRdKSKY/aVlOh4+7dHcu0lRWO0EYOuNDZrPnNiY8aEKN4hpi6TfivYbgq - H0cUmpY1RWSqUFlc6w7bUwKBgEMINctoksohbHZFjnWsgX2RsEdmhRWo6vuFgJSB - 6OJJrzr/NNysWSyJvQm8JldYS5ISNRuJcDvc3oVd/IsT/QZflXx48MQIVE6QLgfR - DFMuonbBYyPxi7y11Ies+Q53u8CvkQlEwvDvQ00Fml6GOzuHbs2wZEkhlRnnXfTV - 6kBRAoGAP9NUZox5ZrwkOx7iH/zEx3X3qzFoN/zSI2iUi2XRWaglGbNAxqX5/ug8 - xJIi1Z9xbsZ/3cPEdPif2VMdvIy9ZSsBwIEuzRf8YNw6ZGphsO95FKrgmoqA44mm - WsqUCBt5+DnOaDyvMkokP+T5tj/2LXemuIi4Q5nrOmw/WwVGGGs= - -----END RSA PRIVATE KEY----- - useExternalKvdb: true -vsphere-cloud-controller-manager: - k8sVersion: '{{.spectro.system.kubernetes.version}}' - -``` - - - - -# Environments - -
- - - - -## vSphere Environment - -For deploying Portworx storage on vSphere environments, make sure to configure the following properties in the pack: - -- vSphere Configuration file - -- Storage Type - -- Kubernetes Version - -### vSphere Manifest - -Additional parameters for the manifest is as follows: - -
- -```yaml -# VSphere cloud configurations -vsphereConfig: - insecure: "true" - host: "" - port: "443" - datastorePrefix: "datastore" - installMode: "shared" - userName: "" - password: "" - # Enter the name of the secret which has vsphere user credentials (Use keys VSPHERE_USER, VSPHERE_PASSWORD) - userCredsSecret: "" -``` - -
- -## Using Secrets for vSphere User Credentials - -Portworx pack values allow you to configure vSphere user credentials in two ways: - -1. Username & password - (`portworx.vsphereConfig.userName` and `portworx.vsphereConfig.password`). - -2. Secret - (`portworx.vsphereConfig.userCredsSecret` is available with v2.6.1 and above). - -If you chose the latter, make sure to create the secret in the target cluster manually or by bringing your own (BYO) -manifest Add-on pack. - -
- -:::warning - -Until the secret is created in the cluster, Portworx deployments might fail to run. When secret is configured, -reconciliation should recover Portworx. - -::: - -Secret can be created using the spec below, - -
- -```yaml -apiVersion: v1 -kind: Secret -metadata: - name: px-vsphere-secret - namespace: kube-system -type: Opaque -data: - VSPHERE_USER: "b64 encoded admin username" - VSPHERE_PASSWORD: "b64 encoded admin password" -``` - -and this secret can be referenced in the Portworx pack values as shown below: - -
- -``` -manifests: - portworx: - vsphereConfig: - userCredsSecret: "px-vsphere-secret" -``` - -Ensure to follow the correct indentation style; otherwise, certificates will not be imported correctly and resulting in -a Portworx deployment failure. - -
- - -## AWS Environment - -Palette provisions Portworx in an AWS environment. The following are the packs supported:
- -### Packs Supported - - - - -**portworx-aws-2.9** - - - - -**portworx-aws-2.10** - - - - -
- -### Prerequisites - -To deploy Portworx in an AWS environment, have the following prerequisites in place. - -- Ensure the Portworx Nodes have the TCP ports open at **9001-9022**. - -- Ensure there is an open UDP port at **9002**. - -- Apply the following policy to the **User** in AWS: - -```yaml -{ - "Version": "2012-10-17", - "Statement": - [ - { - "Sid": "", - "Effect": "Allow", - "Action": - [ - "ec2:AttachVolume", - "ec2:ModifyVolume", - "ec2:DetachVolume", - "ec2:CreateTags", - "ec2:CreateVolume", - "ec2:DeleteTags", - "ec2:DeleteVolume", - "ec2:DescribeTags", - "ec2:DescribeVolumeAttribute", - "ec2:DescribeVolumesModifications", - "ec2:DescribeVolumeStatus", - "ec2:DescribeVolumes", - "ec2:DescribeInstances", - "autoscaling:DescribeAutoScalingGroups", - ], - "Resource": ["*"], - }, - ], -} -``` - -
- -## AWS Manifest - -```yaml -manifests: - portworx: - # The namespace to install Portworx resources - namespace: "portworx" - - # Portworx storage type and size - storageType: "type=gp3,size=150" - - # Max storage nodes per zone - maxStorageNodesPerZone: 3 - - # Node recovery timeout in seconds - nodeRecoveryTimeout: 1500 - - # Portworx storage class config - storageClass: - enabled: true - isDefaultStorageClass: true - allowVolumeExpansion: true - reclaimPolicy: Retain - volumeBindingMode: Immediate - parameters: - repl: "3" - priority_io: "high" - #sharedv4: true - - # Kubernetes version. - k8sVersion: "{{.spectro.system.kubernetes.version}}" - - templateVersion: "v4" - - # List of additional container args to be passed - args: - ociMonitor: - #- "-dedicated_cache" - #- "-a" - storkDeployment: - #- "--app-initializer=true" - storkScheduler: - #- "--scheduler-name=xyz" - autoPilot: - csiProvisioner: - csiSnapshotter: - csiSnapshotController: - csiResizer: - - # The private registry from where images will be pulled from. When left empty, images will be pulled from the public registry - # Example, imageRegistry: "harbor.company.com/portworx" - imageRegistry: "" - - # ECTD selection - useExternalKvdb: false - - # External kvdb related config - externalKvdb: - useCertsForSSL: false -``` - -
- -
- -
- -
- -## References - -- [Portworx Install with Kubernetes](https://docs.portworx.com/portworx-install-with-kubernetes/) - -- [Installation Prerequisites](https://docs.portworx.com/install-portworx/prerequisites/) - -- [Install Portworx on AWS ASG](https://docs.portworx.com/portworx-enterprise/install-portworx/kubernetes/aws/aws-asg) diff --git a/static/packs-data/exclude_packs.json b/static/packs-data/exclude_packs.json index 2d038757e2..e525d90e74 100644 --- a/static/packs-data/exclude_packs.json +++ b/static/packs-data/exclude_packs.json @@ -1 +1,9 @@ -["palette-upgrader", "csi-aws-new"] +[ + "palette-upgrader", + "csi-aws-new", + "csi-portworx-gcp", + "csi-portworx-aws", + "csi-portworx-vsphere", + "csi-rook-ceph-helm", + "csi-rook-ceph-helm-addon" +] diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index aeef4d3a6b..b40439119a 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -215,6 +215,58 @@ "name": "csi-longhorn-addon", "description": "Longhorn is a lightweight distributed block storage system for cloud native storage Kubernetes that allows you to replicate storage to Kubernetes clusters. Once Longhorn is installed, it adds persistent volume support to the Kubernetes cluster using containers and microservices." }, + { + "name": "csi-maas-volume", + "description": "The MAAS Volume CSI driver allows Kubernetes to access MAAS volumes. The driver is implemented as a Container Storage Interface (CSI) plugin." + }, + { + "name": "csi-nfs", + "description": "The NFS Container Storage Interface (CSI) Driver provides a CSI interface used by Kubernetes to manage the lifecycle of NFS volumes." + }, + { + "name": "csi-nfs-subdir-external", + "description": "NFS subdir external provisioner is an automatic provisioner that use your existing and already configured NFS server to support dynamic provisioning of Kubernetes Persistent Volumes via Persistent Volume Claims." + }, + { + "name": "csi-openstack-cinder", + "description": "The Cinder CSI Driver is a CSI Specification compliant driver used by Container Orchestrators to manage the lifecycle of OpenStack Cinder Volumes." + }, + { + "name": "csi-portworx-aws", + "description": "The Portworx CSI Driver provides a standardized way to manage storage resources in containerized environments. This driver supports the full range of Portworx features and most of the CSI specifications, facilitating seamless integration and management of storage across different platforms." + }, + { + "name": "csi-portworx-gcp", + "description": "The Portworx CSI Driver provides a standardized way to manage storage resources in containerized environments. This driver supports the full range of Portworx features and most of the CSI specifications, facilitating seamless integration and management of storage across different platforms." + }, + { + "name": "csi-portworx-generic", + "description": "The Portworx CSI Driver provides a standardized way to manage storage resources in containerized environments. This driver supports the full range of Portworx features and most of the CSI specifications, facilitating seamless integration and management of storage across different platforms." + }, + { + "name": "csi-portworx-vsphere", + "description": "The Portworx CSI Driver provides a standardized way to manage storage resources in containerized environments. This driver supports the full range of Portworx features and most of the CSI specifications, facilitating seamless integration and management of storage across different platforms." + }, + { + "name": "portworx-add-on", + "description": "The Portworx CSI Driver provides a standardized way to manage storage resources in containerized environments. This driver supports the full range of Portworx features and most of the CSI specifications, facilitating seamless integration and management of storage across different platforms." + }, + { + "name": "csi-rook-ceph", + "description": "Rook is an open source cloud-native storage orchestrator, providing the platform, framework, and support for Ceph storage to natively integrate with cloud-native environments." + }, + { + "name": "csi-rook-ceph-addon", + "description": "Rook is an open source cloud-native storage orchestrator, providing the platform, framework, and support for Ceph storage to natively integrate with cloud-native environments." + }, + { + "name": "csi-rook-ceph-helm", + "description": "Rook is an open source cloud-native storage orchestrator, providing the platform, framework, and support for Ceph storage to natively integrate with cloud-native environments." + }, + { + "name": "csi-rook-ceph-helm-addon", + "description": "Rook is an open source cloud-native storage orchestrator, providing the platform, framework, and support for Ceph storage to natively integrate with cloud-native environments." + }, { "name": "csi-rook", "description": "Rook is a cloud-native storage orchestrator for Kubernetes, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments. Rook turns storage" From e19b1870f3dce0c1d734780aad5e76d89a1e3dfb Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Wed, 24 Jul 2024 15:55:48 -0700 Subject: [PATCH 15/22] chore: more updates --- _partials/packs/_trident.mdx | 231 ++++++++++ .../integrations/csi-trident-addon.md | 29 ++ docs/docs-content/integrations/csi-trident.md | 29 ++ docs/docs-content/integrations/dex.md | 3 +- .../integrations/spectro-k8s-dashboard.md | 10 +- .../integrations/{frp.md => spectro-proxy.md} | 139 +----- docs/docs-content/integrations/trident.md | 402 ------------------ docs/docs-content/integrations/vsphere-csi.md | 69 --- static/packs-data/exclude_packs.json | 3 +- static/packs-data/packs_information.json | 52 +++ 10 files changed, 352 insertions(+), 615 deletions(-) create mode 100644 _partials/packs/_trident.mdx create mode 100644 docs/docs-content/integrations/csi-trident-addon.md create mode 100644 docs/docs-content/integrations/csi-trident.md rename docs/docs-content/integrations/{frp.md => spectro-proxy.md} (67%) delete mode 100644 docs/docs-content/integrations/trident.md delete mode 100644 docs/docs-content/integrations/vsphere-csi.md diff --git a/_partials/packs/_trident.mdx b/_partials/packs/_trident.mdx new file mode 100644 index 0000000000..4c0a96e06a --- /dev/null +++ b/_partials/packs/_trident.mdx @@ -0,0 +1,231 @@ +--- +partial_category: packs +partial_name: trident +--- + +## Versions Supported + + + + +After deploying Trident, you will need to create a backend and a storage class before you can start provisioning volumes +and mounting those to any pods. + +### Create a Storage Backend + +Trident supports multiple storage backends. Select a supported backend that fits your needs. You can find example of +different backends by reviewing the driver manifests examples in the official Trident +[repository](https://github.com/NetApp/trident/tree/master/trident-installer/sample-input/backends-samples). If you +decide to use one of the example configurations, make sure you update the configuration with your credentials and +environment configurations. + +The example below creates a backend with the ONTAP-NAS driver. + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: backend-ontap-nas-secret + namespace: trident +type: Opaque +stringData: + username: [USERNAME] + password: [PASSWORD] +--- +apiVersion: trident.netapp.io/v1 +kind: TridentBackendConfig +metadata: + name: backend-ontap-nas + namespace: trident +spec: + version: 1 + storageDriverName: ontap-nas + managementLIF: [ONTAP_MANAGEMENT_LIF_IP] + dataLIF: [DATA_LIF_IP] + backendName: ontap-nas + autoExportCIDRs: + - [x.x.x.x/xx] + autoExportPolicy: true + svm: [SVM] + credentials: + name: backend-ontap-nas-secret +``` + +#### Create a Storage Class + +Kubernetes supports the ability to bind statically or dynamically provisioned volumes to pods. Statically provisioned +volumes are manually created by a user and then referenced in a deployment. Astra Trident allows you to leverage your +NetApp storage. You must create a storage class before you can request dynamically provisioned volumes. + +```yaml +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: trident-csi + namespace: trident +provisioner: csi.trident.netapp.io +parameters: + backendType: "ontap-nas" + csi.storage.k8s.io/fstype: ext4 +``` + +#### Provision Volumes + +An example of provisioning a Persistent Volume Claim (PVC). + +```yaml +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: trident-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: trident-csi +``` + +#### Deploy a Pod and Mount the Volume. + +The following code snippet is an example of a pod deployment. The pod contains an Nginx container, with a claim to the +previously created PVC. Once deployed, the PVC with its bound Persistent Volume (PV), will mount to the pod and provide +persistent storage to this application. + +```yaml +kind: Pod +apiVersion: v1 +metadata: + name: example-pv-pod + namespace: trident +spec: + volumes: + - name: example-pv-vol + persistentVolumeClaim: + claimName: trident-pvc + containers: + - name: example-pv-pod + image: nginx + ports: + - containerPort: 80 + name: "http-server" + volumeMounts: + - mountPath: "/usr/share/nginx/html" + name: example-pv-vol +``` + + + + + +After deploying Trident, you will need to create a backend and a storage class before you can start provisioning volumes +and mounting those to any pods. + +### Create a Storage Backend + +Trident supports multiple storage backends. Select a supported backend that fits your needs. You can find example of +different backends by reviewing the driver manifests examples in the official Trident +[repository](https://github.com/NetApp/trident/tree/master/trident-installer/sample-input/backends-samples). If you +decide to use one of the example configurations, make sure you update the configuration with your credentials and +environment configurations. + +The example below creates a backend with the ONTAP-NAS driver. + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: backend-ontap-nas-secret + namespace: trident +type: Opaque +stringData: + username: [USERNAME] + password: [PASSWORD] +--- +apiVersion: trident.netapp.io/v1 +kind: TridentBackendConfig +metadata: + name: backend-ontap-nas + namespace: trident +spec: + version: 1 + storageDriverName: ontap-nas + managementLIF: [ONTAP_MANAGEMENT_LIF_IP] + dataLIF: [DATA_LIF_IP] + backendName: ontap-nas + autoExportCIDRs: + - [x.x.x.x/xx] + autoExportPolicy: true + svm: [SVM] + credentials: + name: backend-ontap-nas-secret +``` + +#### Create a Storage Class + +Kubernetes supports the ability to bind statically or dynamically provisioned volumes to Pods. Statically provisioned +volumes are manually created by a user and then referenced in a deployment. Astra Trident allows you to leverage your +NetApp storage. You must create a storage class before you can request dynamically provisioned volumes. + +```yaml +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: trident-csi + namespace: trident +provisioner: csi.trident.netapp.io +parameters: + backendType: "ontap-nas" + csi.storage.k8s.io/fstype: ext4 +``` + +#### Provision Volumes + +An example of provisioning a Persistent Volume Claim (PVC). + +```yaml +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: trident-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: trident-csi +``` + +#### Deploy a Pod and Mount the Volume. + +The following code snippet is an example of a pod deployment. The pod contains an Nginx container, with a claim to the +previously created PVC. Once deployed, the PVC with its bound Persistent Volume (PV), will mount to the pod and provide +persistent storage to this application. + +```yaml +kind: Pod +apiVersion: v1 +metadata: + name: example-pv-pod + namespace: trident +spec: + volumes: + - name: example-pv-vol + persistentVolumeClaim: + claimName: trident-pvc + containers: + - name: example-pv-pod + image: nginx + ports: + - containerPort: 80 + name: "http-server" + volumeMounts: + - mountPath: "/usr/share/nginx/html" + name: example-pv-vol +``` + + + + \ No newline at end of file diff --git a/docs/docs-content/integrations/csi-trident-addon.md b/docs/docs-content/integrations/csi-trident-addon.md new file mode 100644 index 0000000000..ddfa98a5a2 --- /dev/null +++ b/docs/docs-content/integrations/csi-trident-addon.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "Astra Trident Addon" +title: "Astra Trident Addon" +description: "Learn abou the Astra Trident pack." +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64", "community"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "trident", "storage"] +--- + + + +## Terraform + +You can retrieve details about the Astra Trident pack by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "astra-trident" { + name = "csi-trident-addon" + version = "23.01.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/csi-trident.md b/docs/docs-content/integrations/csi-trident.md new file mode 100644 index 0000000000..165643574a --- /dev/null +++ b/docs/docs-content/integrations/csi-trident.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "Astra Trident" +title: "Astra Trident" +description: "Learn abou the Astra Trident pack." +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64", "community"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "trident", "storage"] +--- + + + +## Terraform + +You can retrieve details about the Astra Trident pack by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "astra-trident" { + name = "csi-trident" + version = "23.01.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/dex.md b/docs/docs-content/integrations/dex.md index 6b96370670..536149e744 100644 --- a/docs/docs-content/integrations/dex.md +++ b/docs/docs-content/integrations/dex.md @@ -6,7 +6,6 @@ type: "integration" hide_table_of_contents: true category: ["authentication", "amd64"] sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/dex/blobs/sha256:78e381fe12509ed94c7c19cd6f6fc4e896ec66485364644dc1a40229fcf9d90d?type=image.webp" tags: ["packs", "dex", "security"] --- @@ -16,7 +15,7 @@ to the cluster through any identity provider that dex supports. ## Versions Supported - + diff --git a/docs/docs-content/integrations/spectro-k8s-dashboard.md b/docs/docs-content/integrations/spectro-k8s-dashboard.md index 10c0c2081b..891750f7a8 100644 --- a/docs/docs-content/integrations/spectro-k8s-dashboard.md +++ b/docs/docs-content/integrations/spectro-k8s-dashboard.md @@ -12,8 +12,9 @@ logoUrl: "https://registry.spectrocloud.com/v1/k8s-dashboard/blobs/sha256:2de5d8 tags: ["packs", "spectro-k8s-dashboard", "monitoring"] --- + Spectro Kubernetes Dashboard is a web-based UI for Kubernetes clusters that auto-enables the Kubernetes Dashboard using -secure ports and conveniently includes the [Spectro Proxy](frp.md) pack. +secure ports and conveniently includes the pack. ## Versions Supported @@ -23,8 +24,8 @@ secure ports and conveniently includes the [Spectro Proxy](frp.md) pack. ## Prerequisites -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the - [Spectro Proxy](frp.md) reverse proxy. + +- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the reverse proxy. - Users or groups must be mapped to a Kubernetes RBAC role, either a _Role_ or a _ClusterRole_. You can create a custom role through a manifest and use Palette's roleBinding feature to associate users or groups with the role. Refer to the @@ -75,7 +76,8 @@ Spectro Kubernetes Dashboard has the following Access options. - **Proxied**: This option is useful for access to the Kubernetes Dashboard from anywhere and leverages the Spectro Proxy pack, which gets installed automatically. The Service resource for the Kubernetes Dashboard will be configured - as ClusterIP and is only accessible through the proxy. To learn more, check out the [Spectro Proxy](frp.md) guide. + as ClusterIP and is only accessible through the proxy. To learn more, check out the + guide. - **Direct**: This option is meant for a private configuration where a proxy is not implemented or not desired. The Service resource for the Kubernetes Dashboard will be configured as LoadBalancer, which you can access directly. This diff --git a/docs/docs-content/integrations/frp.md b/docs/docs-content/integrations/spectro-proxy.md similarity index 67% rename from docs/docs-content/integrations/frp.md rename to docs/docs-content/integrations/spectro-proxy.md index 17955a4e57..f4f7aa92dd 100644 --- a/docs/docs-content/integrations/frp.md +++ b/docs/docs-content/integrations/spectro-proxy.md @@ -6,7 +6,6 @@ hide_table_of_contents: true type: "integration" category: ["authentication", "amd64", "fips", "network"] sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.dev.spectrocloud.com/v1/spectro-proxy/blobs/sha256:b6081bca439eeb01a8d43b3cb6895df4c088f80af978856ddc0da568e5c09365?type=image.webp" tags: ["packs", "spectro-proxy", "network"] --- @@ -176,47 +175,9 @@ public endpoints. Any user with access to the internet can connect to the cluste ## Versions Supported - + -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the Spectro - Cloud reverse proxy. - -## Parameters - -The Spectro Proxy supports the following parameters. - -| Parameter | Description | Default | -| ---------- | ------------------------------------------------------ | ------------------------------------------- | -| namespace | The Kubernetes namespace to install the Spectro Proxy. | `cluster-{{ .spectro.system.cluster.uid }}` | -| server | The Kubernetes server. | `{{ .spectro.system.reverseproxy.server }}` | -| clusterUid | The Kubernetes cluster identifier. | `{{ .spectro.system.cluster.uid }}` | -| subdomain | The Kubernetes cluster subdomain identifier. | `cluster-{{ .spectro.system.cluster.uid }}` | - -Image Pull Policy configurations. - -| Parameter | Description | Default | -| ------------------------ | ----------------------------------------------------------- | -------------- | -| frpcInit.imagePullPolicy | The image pull policy for the Spectro Proxy init container. | `IfNotPresent` | -| frpc.imagePullSecrets | The image pull secrets for the Spectro Proxy container. | `IfNotPresent` | - -The Kubernetes dashboard integration supports the following parameters. - -| Parameter | Description | Default | -| --------------- | ------------------------------------------- | ------- | -| enabled | Enable the dashboard. | `false` | -| useInsecurePort | Use unsecure port (HTTP) for communication. | `false` | - -The VMware dashboard integration supports the following parameters. - -| Parameter | Description | Default | -| --------- | --------------------- | ------- | -| enabled | Enable the dashboard. | `false` | - -## Usage - To use this pack, you have to add it to your cluster profile. You can also add the Spectro Proxy pack when you create the cluster profile. Check out the [Create Cluster Profile](../profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md) guide to learn @@ -238,37 +199,6 @@ control plane nodes getting repaved. -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the Spectro - Cloud reverse proxy. - -## Parameters - -The Spectro Proxy supports the following parameters. - -| Parameter | Description | Default | -| ---------- | ------------------------------------------------------ | ------------------------------------------- | -| namespace | The Kubernetes namespace to install the Spectro Proxy. | `cluster-{{ .spectro.system.cluster.uid }}` | -| server | The Kubernetes server. | `{{ .spectro.system.reverseproxy.server }}` | -| clusterUid | The Kubernetes cluster identifier. | `{{ .spectro.system.cluster.uid }}` | -| subdomain | The Kubernetes cluster subdomain identifier. | `cluster-{{ .spectro.system.cluster.uid }}` | - -The Kubernetes dashboard integration supports the following parameters. - -| Parameter | Description | Default | -| --------------- | ------------------------------------------- | ------- | -| enabled | Enable the dashboard. | `false` | -| useInsecurePort | Use unsecure port (HTTP) for communication. | `false` | - -The VMware dashboard integration supports the following parameters. - -| Parameter | Description | Default | -| --------- | --------------------- | ------- | -| enabled | Enable the dashboard. | `false` | - -## Usage - To use this pack, you have to add it to your cluster profile. You can also add the Spectro Proxy pack when you create the cluster profile. Check out the [Create Cluster Profile](../profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md) guide to learn @@ -290,37 +220,6 @@ plane nodes getting repaved. -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the Spectro - Cloud reverse proxy. - -## Parameters - -The Spectro Proxy supports the following parameters. - -| Parameter | Description | Default | -| ---------- | ------------------------------------------------------ | ------------------------------------------- | -| namespace | The Kubernetes namespace to install the Spectro Proxy. | `cluster-{{ .spectro.system.cluster.uid }}` | -| server | The Kubernetes server. | `{{ .spectro.system.reverseproxy.server }}` | -| clusterUid | The Kubernetes cluster identifier. | `{{ .spectro.system.cluster.uid }}` | -| subdomain | The Kubernetes cluster subdomain identifier. | `cluster-{{ .spectro.system.cluster.uid }}` | - -The Kubernetes dashboard integration supports the following parameters. - -| Parameter | Description | Default | -| --------------- | ------------------------------------------- | ------- | -| enabled | Enable the dashboard. | `false` | -| useInsecurePort | Use unsecure port (HTTP) for communication. | `false` | - -The VMware dashboard integration supports the following parameters. - -| Parameter | Description | Default | -| --------- | --------------------- | ------- | -| enabled | Enable the dashboard. | `false` | - -## Usage - To use this pack, you have to add it to your cluster profile. You can also add the Spectro Proxy pack when you create the cluster profile. Check out the [Create Cluster Profile](../profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md) guide to learn @@ -342,31 +241,6 @@ plane nodes getting repaved. -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the Spectro - Cloud reverse proxy. - -## Parameters - -The Spectro Proxy supports the following parameters. - -| Parameter | Description | Default | -| ---------- | ------------------------------------------------------ | ------------------------------------------- | -| namespace | The Kubernetes namespace to install the Spectro Proxy. | `cluster-{{ .spectro.system.cluster.uid }}` | -| server | The Kubernetes server. | `{{ .spectro.system.reverseproxy.server }}` | -| clusterUid | The Kubernetes cluster identifier. | `{{ .spectro.system.cluster.uid }}` | -| subdomain | The Kubernetes cluster subdomain identifier. | `cluster-{{ .spectro.system.cluster.uid }}` | - -The Kubernetes dashboard integration supports the following parameters. - -| Parameter | Description | Default | -| --------------- | ------------------------------------------- | ------- | -| enabled | Enable the dashboard. | `false` | -| useInsecurePort | Use unsecure port (HTTP) for communication. | `false` | - -## Usage - To use this pack, you have to add it to your cluster profile. You can also add the Spectro Proxy pack when you create the cluster profile. Check out the [Create Cluster Profile](../profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md) guide to learn @@ -384,15 +258,6 @@ plane nodes getting repaved. ::: - - - -:::warning - -All versions less than v1.1.x are considered deprecated. Upgrade to a newer version to take advantage of new features. - -::: - @@ -425,7 +290,7 @@ data "spectrocloud_registry" "public_registry" { data "spectrocloud_pack_simple" "spectro-proxy" { name = "spectro-proxy" - version = "1.4.1" + version = "1.5.3" type = "operator-instance" registry_uid = data.spectrocloud_registry.public_registry.id } diff --git a/docs/docs-content/integrations/trident.md b/docs/docs-content/integrations/trident.md deleted file mode 100644 index f4f26a5cff..0000000000 --- a/docs/docs-content/integrations/trident.md +++ /dev/null @@ -1,402 +0,0 @@ ---- -sidebar_label: "Astra Trident" -title: "Astra Trident" -description: "Learn abou the Astra Trident pack." -hide_table_of_contents: true -type: "integration" -category: ["storage", "amd64", "community"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/csi-trident/blobs/sha256:d4dd2ecf2e6f67876b8dab57ecfdf17591824c21e8d0d44fab0aaef9ddd3b931?type=image.webp" -tags: ["packs", "trident", "storage"] ---- - -Astra Trident, is an open-source project backed and maintained by [NetApp](https://www.netapp.com/) and is designed to -provide persistence storage to containerized applications using industry-standard interfaces, such as the Container -Storage Interface (CSI). - -Astra Trident deploys in Kubernetes clusters as pods and provides dynamic storage orchestration services for Kubernetes -workloads. Containerized applications are enabled to quickly consume persistent storage from NetApp’s portfolio of -solutions with minimal overhead. - -- ONTAP (AFF/FAS/Select/Cloud/Amazon FSx for NetApp ONTAP) -- Element software (NetApp HCI/SolidFire) -- Azure NetApp Files service -- Cloud Volumes Service on Google Cloud. - -## Versions Supported - - - - -## Prerequisites - -- All worker nodes in the Kubernetes cluster must be able to mount the volumes you have provisioned for your pods. To - prepare the worker nodes, you must install NFS or iSCSI tools based on your driver selection. Check out the - [Selecting the right tools](https://docs.netapp.com/us-en/trident/trident-use/worker-node-prep.html#selecting-the-right-tools) - guide for more information. - -- The following ports must be exposed on the worker nodes. - - | **Port** | **Purpose** | - | -------- | -------------------------------------------------------------------- | - | 8443 | Backchannel HTTPS | - | 8001 | Prometheus metrics endpoint | - | 8000 | Trident REST server | - | 17546 | Supports liveness and readiness probe used by Trident DaemonSet pods | - -
- - :::info - - The liveness and readiness probe port can be changed during installation by using the `--probe-port` flag. Ensure the - probe port is not used by another process on the worker nodes. - - ::: - -## Parameters - -| **Parameter** | **Description** | -| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `imageRegistry` | Identifies the registry for the trident-operator, trident, and other images. Leave empty to accept the default. | -| `imagePullPolicy` | Sets the image pull policy for the trident-operator. Default: `IfNotPresent` | -| `imagePullSecrets` | Sets the image pull secrets for the trident-operator, trident, and other images. | -| `kubeletDir` | Allows overriding the host location of Kubelet's internal state. Default: `/var/lib/kubelet` | -| `operatorDebug` | Allows enabling debug logging in trident-operator. Default: `false` | -| `operatorImage` | Allows the complete override of the image for trident-operator. | -| `operatorImageTag` | Allows overriding the tag of the trident-operator image. | -| `tridentDebug` | Allows enabling debug logging from the Trident deployment. Default: `false` | -| `tridentIPv6` | Allows enabling Trident to work in IPv6 clusters. Default: `false` | -| `tridentK8sTimeout` | Overrides the default 30-second timeout for most Kubernetes API operations (if non-zero, in seconds). Default: `0` | -| `tridentHttpRequestTimeout` | Overrides the default 90-second timeout for the HTTP requests, with 0s being an infinite duration for the timeout. Negative values are not allowed. Default: `90s` | -| `tridentSilenceAutosupport` | Allows disabling Trident's periodic Autosupport reporting. Default: `false` | -| `tridentAutosupportImage` | Allows the complete override of the image for Trident's Autosupport container. | -| `tridentAutosupportImageTag` | Allows overriding the tag of the image for Trident's Autosupport container. Default: `23.01` | -| `tridentAutosupportProxy` | Allows Trident's Autosupport container to phone home via an HTTP proxy. | -| `tridentLogFormat` | Sets the Trident logging format (text or JSON). Default: `text` | -| `tridentDisableAuditLog` | Disables Trident's audit logger. Default: `true` | -| `tridentImage` | Allows the complete override of the image for Trident. | -| `tridentImageTag` | Allows overriding the tag of the image for Trident. | -| `tridentEnableNodePrep` | (Deprecated) Attempts to automatically install required packages on nodes. Default: `false` | -| `tridentSkipK8sVersionCheck` | (Deprecated) Allows overriding the k8s version limit for Trident. Default: `false` | -| `tridentProbePort` | Allows overriding the default port used for k8s liveness/readiness probes. | -| `windows` | Allows Trident to be installed on Windows worker node. Default: `false` | -| `enableForceDetach` | Allows enabling the force detach feature. Default: `false` | -| `excludePodSecurityPolicy` | Excludes the operator pod security policy from creation. Default: `false` | - -## Usage - -After deploying Trident, you will need to create a backend and a storage class before you can start provisioning volumes -and mounting those to any pods. - -### Create a Storage Backend - -Trident supports multiple storage backends. Select a supported backend that fits your needs. You can find example of -different backends by reviewing the driver manifests examples in the official Trident -[repository](https://github.com/NetApp/trident/tree/master/trident-installer/sample-input/backends-samples). If you -decide to use one of the example configurations, make sure you update the configuration with your credentials and -environment configurations. - -The example below creates a backend with the ONTAP-NAS driver. - -```yaml -apiVersion: v1 -kind: Secret -metadata: - name: backend-ontap-nas-secret - namespace: trident -type: Opaque -stringData: - username: [USERNAME] - password: [PASSWORD] ---- -apiVersion: trident.netapp.io/v1 -kind: TridentBackendConfig -metadata: - name: backend-ontap-nas - namespace: trident -spec: - version: 1 - storageDriverName: ontap-nas - managementLIF: [ONTAP_MANAGEMENT_LIF_IP] - dataLIF: [DATA_LIF_IP] - backendName: ontap-nas - autoExportCIDRs: - - [x.x.x.x/xx] - autoExportPolicy: true - svm: [SVM] - credentials: - name: backend-ontap-nas-secret -``` - -#### Create a Storage Class - -Kubernetes supports the ability to bind statically or dynamically provisioned volumes to pods. Statically provisioned -volumes are manually created by a user and then referenced in a deployment. Astra Trident allows you to leverage your -NetApp storage. You must create a storage class before you can request dynamically provisioned volumes. - -```yaml -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: trident-csi - namespace: trident -provisioner: csi.trident.netapp.io -parameters: - backendType: "ontap-nas" - csi.storage.k8s.io/fstype: ext4 -``` - -#### Provision Volumes - -An example of provisioning a Persistent Volume Claim (PVC). - -
- -```yaml -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: trident-pvc -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 1Gi - storageClassName: trident-csi -``` - -
- -#### Deploy a Pod and Mount the Volume. - -The following code snippet is an example of a pod deployment. The pod contains an Nginx container, with a claim to the -previously created PVC. Once deployed, the PVC with its bound Persistent Volume (PV), will mount to the pod and provide -persistent storage to this application. - -
- -```yaml -kind: Pod -apiVersion: v1 -metadata: - name: example-pv-pod - namespace: trident -spec: - volumes: - - name: example-pv-vol - persistentVolumeClaim: - claimName: trident-pvc - containers: - - name: example-pv-pod - image: nginx - ports: - - containerPort: 80 - name: "http-server" - volumeMounts: - - mountPath: "/usr/share/nginx/html" - name: example-pv-vol -``` - -
- - - -## Prerequisites - -- All worker nodes in the Kubernetes cluster must be able to mount the volumes you have provisioned for your pods. To - prepare the worker nodes, you must install NFS or iSCSI tools based on your driver selection. Check out the - [Selecting the right tools](https://docs.netapp.com/us-en/trident/trident-use/worker-node-prep.html#selecting-the-right-tools) - guide for more information. - -- The following ports must be exposed on the worker nodes. - - | **Port** | **Purpose** | - | -------- | -------------------------------------------------------------------- | - | 8443 | Backchannel HTTPS | - | 8001 | Prometheus metrics endpoint | - | 8000 | Trident REST server | - | 17546 | Supports liveness and readiness probe used by Trident DaemonSet pods | - -
- - :::info - - The liveness and readiness probe port can be changed during installation by using the `--probe-port` flag. Ensure the - probe port is not used by another process on the worker nodes. - - ::: - -## Parameters - -| **Parameter** | **Description** | -| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `imageRegistry` | Identifies the registry for the trident-operator, trident, and other images. Leave empty to accept the default. | -| `imagePullPolicy` | Sets the image pull policy for the trident-operator. Default: `IfNotPresent` | -| `imagePullSecrets` | Sets the image pull secrets for the trident-operator, trident, and other images. | -| `kubeletDir` | Allows overriding the host location of Kubelet's internal state. Default: `/var/lib/kubelet` | -| `operatorDebug` | Allows enabling debug logging in trident-operator. Default: `false` | -| `operatorImage` | Allows the complete override of the image for trident-operator. | -| `operatorImageTag` | Allows overriding the tag of the trident-operator image. | -| `tridentDebug` | Allows enabling debug logging from the Trident deployment. Default: `false` | -| `tridentIPv6` | Allows enabling Trident to work in IPv6 clusters. Default: `false` | -| `tridentK8sTimeout` | Overrides the default 30-second timeout for most Kubernetes API operations (if non-zero, in seconds). Default: `0` | -| `tridentHttpRequestTimeout` | Overrides the default 90-second timeout for the HTTP requests, with 0s being an infinite duration for the timeout. Negative values are not allowed. Default: `90s` | -| `tridentSilenceAutosupport` | Allows disabling Trident's periodic Autosupport reporting. Default: `false` | -| `tridentAutosupportImage` | Allows the complete override of the image for Trident's Autosupport container. | -| `tridentAutosupportImageTag` | Allows overriding the tag of the image for Trident's Autosupport container. Default: `23.01` | -| `tridentAutosupportProxy` | Allows Trident's Autosupport container to phone home via an HTTP proxy. | -| `tridentLogFormat` | Sets the Trident logging format (text or JSON). Default: `text` | -| `tridentDisableAuditLog` | Disables Trident's audit logger. Default: `true` | -| `tridentImage` | Allows the complete override of the image for Trident. | -| `tridentImageTag` | Allows overriding the tag of the image for Trident. | -| `tridentEnableNodePrep` | (Deprecated) Attempts to automatically install required packages on nodes. Default: `false` | -| `tridentSkipK8sVersionCheck` | (Deprecated) Allows overriding the k8s version limit for Trident. Default: `false` | -| `tridentProbePort` | Allows overriding the default port used for k8s liveness/readiness probes. | -| `windows` | Allows Trident to be installed on Windows worker node. Default: `false` | -| `enableForceDetach` | Allows enabling the force detach feature. Default: `false` | -| `excludePodSecurityPolicy` | Excludes the operator pod security policy from creation. Default: `false` | - -## Usage - -After deploying Trident, you will need to create a backend and a storage class before you can start provisioning volumes -and mounting those to any pods. - -### Create a Storage Backend - -Trident supports multiple storage backends. Select a supported backend that fits your needs. You can find example of -different backends by reviewing the driver manifests examples in the official Trident -[repository](https://github.com/NetApp/trident/tree/master/trident-installer/sample-input/backends-samples). If you -decide to use one of the example configurations, make sure you update the configuration with your credentials and -environment configurations. - -The example below creates a backend with the ONTAP-NAS driver. - -```yaml -apiVersion: v1 -kind: Secret -metadata: - name: backend-ontap-nas-secret - namespace: trident -type: Opaque -stringData: - username: [USERNAME] - password: [PASSWORD] ---- -apiVersion: trident.netapp.io/v1 -kind: TridentBackendConfig -metadata: - name: backend-ontap-nas - namespace: trident -spec: - version: 1 - storageDriverName: ontap-nas - managementLIF: [ONTAP_MANAGEMENT_LIF_IP] - dataLIF: [DATA_LIF_IP] - backendName: ontap-nas - autoExportCIDRs: - - [x.x.x.x/xx] - autoExportPolicy: true - svm: [SVM] - credentials: - name: backend-ontap-nas-secret -``` - -#### Create a Storage Class - -Kubernetes supports the ability to bind statically or dynamically provisioned volumes to Pods. Statically provisioned -volumes are manually created by a user and then referenced in a deployment. Astra Trident allows you to leverage your -NetApp storage. You must create a storage class before you can request dynamically provisioned volumes. - -```yaml -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: trident-csi - namespace: trident -provisioner: csi.trident.netapp.io -parameters: - backendType: "ontap-nas" - csi.storage.k8s.io/fstype: ext4 -``` - -#### Provision Volumes - -An example of provisioning a Persistent Volume Claim (PVC). - -
- -```yaml -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: trident-pvc -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 1Gi - storageClassName: trident-csi -``` - -
- -#### Deploy a Pod and Mount the Volume. - -The following code snippet is an example of a pod deployment. The pod contains an Nginx container, with a claim to the -previously created PVC. Once deployed, the PVC with its bound Persistent Volume (PV), will mount to the pod and provide -persistent storage to this application. - -
- -```yaml -kind: Pod -apiVersion: v1 -metadata: - name: example-pv-pod - namespace: trident -spec: - volumes: - - name: example-pv-vol - persistentVolumeClaim: - claimName: trident-pvc - containers: - - name: example-pv-pod - image: nginx - ports: - - containerPort: 80 - name: "http-server" - volumeMounts: - - mountPath: "/usr/share/nginx/html" - name: example-pv-vol -``` - -
- -
- -## Terraform - -You can retrieve details about the Astra Trident pack by using the following Terraform code. - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "astra-trident" { - name = "csi-trident" - version = "23.01.0" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - -## References - -- [NetApp Astra Trident Docs](https://docs.netapp.com/us-en/trident/index.html) - -- [Necessary tools](https://docs.netapp.com/us-en/trident/trident-use/worker-node-prep.html#selecting-the-right-tools) - -- [Trident GitHub](https://github.com/NetApp/trident) diff --git a/docs/docs-content/integrations/vsphere-csi.md b/docs/docs-content/integrations/vsphere-csi.md deleted file mode 100644 index 265c4433cb..0000000000 --- a/docs/docs-content/integrations/vsphere-csi.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -sidebar_label: "vSphere-csi" -title: "vSphere Storage Interface (CSI)" -description: "vSphere CSI storage add on into Spectro Cloud" -hide_table_of_contents: true -type: "integration" -category: ["storage", "amd64", "fips"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.dev.spectrocloud.com/v1/csi-vsphere-volume/blobs/sha256:2cd106b353cb492d4647a1562fe59db6a1aeb792333900fe4e15237f899298b5?type=image.webp" -tags: ["packs", "vSphere-csi", "storage"] ---- - -The main goal of vSphere Container Storage Interface (CSI) is to expose vSphere storage and features to Kubernetes -users. It offers an in-tree volume driver that has been actively used on various Kubernetes platforms by service -providers, including on-prem. Cloud Native Storage (CNS) is a result of evolution and productization of vSphere Storage -for Kubernetes and is also enterprise ready. - -## vSphere CSI Driver Components - - - -The vSphere CSI driver includes the following components: - -- vSphere CSI Controller -- vSphere CSI Node -- Syncer - -- Metadata Syncer -- Full Sync - -## vSphere CSI Compatibility Matrix - -| Palette Release | CSI-Driver Version | Kubernetes Versions | -| --------------- | ------------------ | ------------------- | -| 3.0 | 2.6.0 | 1.20.x to 1.24.x | -| 2.2 | 2.3.0 | 1.20.x to 1.23.x | -| 2.8 | 2.5.2 | 1.20.x to 1.23.x | - -## Versions Supported - - - - - - - - - - - - - - -## Troubleshooting - -Storage classes created by Spectro Cloud are named "spectro-storage-class" and can be fetched from kubectl using the -following CLI command: - -```bash -kubectl get storageclass -``` - -## References - -- [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes) - -- [CSI Driver Documentation](https://vsphere-csi-driver.sigs.k8s.io/) - -- [CSI Driver GitHub](https://github.com/kubernetes-sigs/vsphere-csi-driver) diff --git a/static/packs-data/exclude_packs.json b/static/packs-data/exclude_packs.json index e525d90e74..c540357a1e 100644 --- a/static/packs-data/exclude_packs.json +++ b/static/packs-data/exclude_packs.json @@ -5,5 +5,6 @@ "csi-portworx-aws", "csi-portworx-vsphere", "csi-rook-ceph-helm", - "csi-rook-ceph-helm-addon" + "csi-rook-ceph-helm-addon", + "calico-networking" ] diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index b40439119a..3184e5c5d8 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -271,6 +271,54 @@ "name": "csi-rook", "description": "Rook is a cloud-native storage orchestrator for Kubernetes, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments. Rook turns storage" }, + { + "name": "csi-tke", + "description": "The TKE CSI Driver provides support for Kubernetes clusters to use Tencent Cloud Block Storage." + }, + { + "name": "csi-topolvm", + "description": "TopoLVM is a CSI plugin using LVM for Kubernetes. It can be considered as a specific implementation of local persistent volumes using CSI and LVM. TopoLVM supports dynamic volume provisioning from PVC, flexible volume capacity management, and enhances the scheduler to prefer nodes having a larger storage capacity." + }, + { + "name": "csi-topolvm-addon", + "description": "TopoLVM is a CSI plugin using LVM for Kubernetes. It can be considered as a specific implementation of local persistent volumes using CSI and LVM. TopoLVM supports dynamic volume provisioning from PVC, flexible volume capacity management, and enhances the scheduler to prefer nodes having a larger storage capacity." + }, + { + "name": "csi-trident", + "description": "Trident is a fully supported open source project maintained by NetApp. It has been designed from the ground up to help you meet your containerized applications' persistence demands using industry-standard interfaces, such as the Container Storage Interface (CSI)." + }, + { + "name": "csi-trident-addon", + "description": "Trident is a fully supported open source project maintained by NetApp. It has been designed from the ground up to help you meet your containerized applications' persistence demands using industry-standard interfaces, such as the Container Storage Interface (CSI)." + }, + { + "name": "csi-vsphere-csi", + "description": "The vSphere CSI Driver is a Kubernetes plugin that allows persistent storage for containerized workloads running on vSphere infrastructure. It enables dynamic provisioning of storage volumes and provides features like snapshots, cloning, and dynamic expansion of volumes. The vSphere CSI Driver replaces the in-tree vSphere volume plugin and offers integration with vSphere with better scale and performance." + }, + { + "name": "csi-vsphere", + "description": "The vSphere CSI Driver is a Kubernetes plugin that allows persistent storage for containerized workloads running on vSphere infrastructure. It enables dynamic provisioning of storage volumes and provides features like snapshots, cloning, and dynamic expansion of volumes. The vSphere CSI Driver replaces the in-tree vSphere volume plugin and offers integration with vSphere with better scale and performance." + }, + { + "name": "csi-vsphere-volume", + "description": "The Vsphere CSI Volume plugin uses in-tree vSphere volumes to provide persistent storage for containerized workloads deployed on vSphere infrastructure." + }, + { + "name": "csm-operator-addon", + "description": "The Dell Container Storage Modules Operator is a Kubernetes Operator, which can be used to install and manage the CSI Drivers and CSM Modules provided by Dell for various storage platforms." + }, + { + "name": "custom_os", + "description": "This pack supports the deployment of Operating Systems for additional infrastructure platforms, such as Nutanix." + }, + { + "name": "db-postgresql", + "description": "PostgreSQL is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transactions with atomicity, consistency, isolation, durability (ACID) properties, automatically updatable views, materialized views, triggers, foreign keys, and stored procedures. It is supported on all major operating systems and handles a range of workloads from single machines to data warehouses or web services with many concurrent users." + }, + { + "name": "dex", + "description": "Dex is an identity service to drive authentication for Kubernetes API Server through the OpenID Connect plugin. Clients such as kubectl can act on behalf of users who can log in to the cluster through any identity provider that dex supports." + }, { "name": "hello-universe", "description": "Hello Universe is a demo web application used to help users learn more about Palette and its features. It includes a click counter and funny Spectro Cloud-themed images." @@ -330,5 +378,9 @@ { "name": "nutanix-csi", "description": "The Nutanix CSI pack uses Nutanix Volumes and Nutanix Files to provide persistent storage for stateful applications." + }, + { + "name": "spectro-proxy", + "description": "Spectro Proxy is a pack that enables the use of a reverse proxy with a Kubernetes cluster. The reverse proxy allows you to connect to the cluster API of a Palette-managed Kubernetes cluster in private networks or clusters configured with private API endpoints. The reverse proxy managed by Spectro Cloud is also known as the forward reverse proxy (FRP)." } ] From 8e21eb2f28b0b13284edb1de2b544c5a039a2f9c Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Thu, 25 Jul 2024 13:08:02 -0700 Subject: [PATCH 16/22] docs: fixed proxy URLs --- .../clusters/cluster-management/kubeconfig.md | 2 +- .../cluster-management/palette-webctl.md | 2 +- .../edgeforge-workflow/prepare-user-data.md | 7 +- .../edge/site-deployment/model-profile.md | 2 +- .../install-on-kubernetes/palette-helm-ref.md | 7 +- .../system-management/reverse-proxy.md | 8 +- docs/docs-content/integrations/k3s.md | 9 +- .../integrations/kubernetes-dashboard.md | 302 ++---------------- .../integrations/kubernetes-edge.md | 6 +- .../integrations/kubernetes-generic.md | 6 +- docs/docs-content/integrations/kubernetes.md | 6 +- .../release-notes/known-issues.md | 2 +- .../tutorials/profiles/deploy-pack.md | 4 +- .../install-on-kubernetes/vertex-helm-ref.md | 8 +- .../vertex/system-management/reverse-proxy.md | 10 +- .../vm-management/create-vmo-profile.md | 15 +- 16 files changed, 67 insertions(+), 329 deletions(-) diff --git a/docs/docs-content/clusters/cluster-management/kubeconfig.md b/docs/docs-content/clusters/cluster-management/kubeconfig.md index 2dbfbcdb68..f0dfc9f886 100644 --- a/docs/docs-content/clusters/cluster-management/kubeconfig.md +++ b/docs/docs-content/clusters/cluster-management/kubeconfig.md @@ -81,7 +81,7 @@ The access you have as a user to the kubeconfig files for a cluster depends on t ::: -- Is the [Spectro Proxy](../../integrations/frp.md) enabled for the cluster? +- Is the enabled for the cluster? Use the tables below to help you identify which project role you need to access the kubeconfig file for a cluster. diff --git a/docs/docs-content/clusters/cluster-management/palette-webctl.md b/docs/docs-content/clusters/cluster-management/palette-webctl.md index a1722d37c1..11a843ac6d 100644 --- a/docs/docs-content/clusters/cluster-management/palette-webctl.md +++ b/docs/docs-content/clusters/cluster-management/palette-webctl.md @@ -31,7 +31,7 @@ files to and from a virtual machine using Secure Copy Protocol (SCP). guidance. - A host cluster that is either publicly accessible OR a private host cluster that has the - [Spectro Proxy](../../integrations/frp.md) installed. + installed. :::warning diff --git a/docs/docs-content/clusters/edge/edgeforge-workflow/prepare-user-data.md b/docs/docs-content/clusters/edge/edgeforge-workflow/prepare-user-data.md index 5eaeff51c3..c4b21bc425 100644 --- a/docs/docs-content/clusters/edge/edgeforge-workflow/prepare-user-data.md +++ b/docs/docs-content/clusters/edge/edgeforge-workflow/prepare-user-data.md @@ -279,10 +279,9 @@ file named **user-data**, which allows your cluster to use directories or files Kubernetes cluster. This setup is useful for scenarios where your applications are active in the cluster and need direct access to files or directories on the Edge host. -Several packs require you set up bind mounts in order to function. For example, the -[Portworx pack](../../../integrations/portworx.md) requires several folders to be mounted on Edge deployments. You can -use the `install.bind_mounts` parameter to specify folders to be mounted. For example, the following user data mounts -three folders required by Portworx from the Edge host to the cluster. + +Several packs require you set up bind mounts in order to function. For example, the requires several folders to be mounted on Edge deployments. You can use the `install.bind_mounts` parameter to specify folders to be mounted. For +example, the following user data mounts three folders required by Portworx from the Edge host to the cluster. ```yaml #cloud-config diff --git a/docs/docs-content/clusters/edge/site-deployment/model-profile.md b/docs/docs-content/clusters/edge/site-deployment/model-profile.md index 33f029ef49..4704e5ceb1 100644 --- a/docs/docs-content/clusters/edge/site-deployment/model-profile.md +++ b/docs/docs-content/clusters/edge/site-deployment/model-profile.md @@ -164,7 +164,7 @@ You now have a cluster profile you can use for deploying Edge hosts. Consider creating additional profiles with out-of-the-box packs for monitoring, security, authentication, or other capabilities. If you need remote access to the cluster, consider adding the -[Spectro Proxy](../../../integrations/frp.md) pack to one of the add-on profiles. + pack to one of the add-on profiles. Optionally, add additional Helm or OCI registries and include applications hosted in those registries in add-on profiles. Check out the guide for adding a [Helm](../../../registries-and-packs/registries/helm-charts.md) or diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/palette-helm-ref.md b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/palette-helm-ref.md index 3c3bd9a1b6..daf43fbf9e 100644 --- a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/palette-helm-ref.md +++ b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/palette-helm-ref.md @@ -408,9 +408,10 @@ ingress: You can specify a reverse proxy server that clusters deployed through Palette can use to facilitate network connectivity to the cluster's Kubernetes API server. Host clusters deployed in private networks can use the -[Spectro Proxy pack](../../../integrations/frp.md) to expose the cluster's Kubernetes API to downstream clients that are -not in the same network. Check out the [Reverse Proxy](../../system-management/reverse-proxy.md) documentation to learn -more about setting up a reverse proxy server for Palette. + pack to expose the cluster's +Kubernetes API to downstream clients that are not in the same network. Check out the +[Reverse Proxy](../../system-management/reverse-proxy.md) documentation to learn more about setting up a reverse proxy +server for Palette. | **Parameters** | **Description** | **Type** | **Default value** | | ----------------- | -------------------------------------------------------------------------------------------- | -------- | ----------------- | diff --git a/docs/docs-content/enterprise-version/system-management/reverse-proxy.md b/docs/docs-content/enterprise-version/system-management/reverse-proxy.md index d8c6e7c128..69aeb6f5ec 100644 --- a/docs/docs-content/enterprise-version/system-management/reverse-proxy.md +++ b/docs/docs-content/enterprise-version/system-management/reverse-proxy.md @@ -13,9 +13,8 @@ You can configure a reverse proxy for Palette. The reverse proxy can be used by network. Host clusters deployed in a private network are not accessible from the public internet or by users in different networks. You can use a reverse proxy to access the cluster's Kubernetes API server from a different network. -When you configure reverse proxy server for Palette, clusters that use the -[Spectro Proxy pack](../../integrations/frp.md) will use the reverse proxy server address in the kubeconfig file. -Clusters not using the Spectro Proxy pack will use the default cluster address in the kubeconfig file. + +When you configure reverse proxy server for Palette, clusters that use the pack will use the reverse proxy server address in the kubeconfig file. Clusters not using the Spectro Proxy pack will use the default cluster address in the kubeconfig file. Use the following steps to configure a reverse proxy server for Palette. @@ -206,8 +205,9 @@ Output 204 ``` + You now have a Spectro Proxy server that you can use to access Palette clusters deployed in a different network. Make -sure you add the [Spectro Proxy pack](../../integrations/frp.md) to the clusters you want to access using the Spectro +sure you add the pack to the clusters you want to access using the Spectro Proxy server. ## Validate diff --git a/docs/docs-content/integrations/k3s.md b/docs/docs-content/integrations/k3s.md index 6f5fc077e1..6b76eb293b 100644 --- a/docs/docs-content/integrations/k3s.md +++ b/docs/docs-content/integrations/k3s.md @@ -174,7 +174,8 @@ more guidance. You can use a reverse proxy with a K3s Kubernetes cluster. The reverse proxy allows you to connect to the cluster API of a Palette-managed Kubernetes cluster in private networks or clusters configured with private API endpoints. For more -information, refer to the [Spectro Proxy](frp.md) pack guide. +information, refer to the pack +guide.
@@ -319,7 +320,8 @@ more guidance. You can use a reverse proxy with a K3s Kubernetes cluster. The reverse proxy allows you to connect to the cluster API of a Palette-managed Kubernetes cluster in private networks or clusters configured with private API endpoints. For more -information, refer to the [Spectro Proxy](frp.md) pack guide. +information, refer to the pack +guide.
@@ -463,7 +465,8 @@ more guidance. You can use a reverse proxy with a K3s Kubernetes cluster. The reverse proxy allows you to connect to the cluster API of a Palette-managed Kubernetes cluster in private networks or clusters configured with private API endpoints. For more -information, refer to the [Spectro Proxy](frp.md) pack guide. +information, refer to the pack +guide. diff --git a/docs/docs-content/integrations/kubernetes-dashboard.md b/docs/docs-content/integrations/kubernetes-dashboard.md index 50794aa9f0..22fa7ef4b8 100644 --- a/docs/docs-content/integrations/kubernetes-dashboard.md +++ b/docs/docs-content/integrations/kubernetes-dashboard.md @@ -15,44 +15,12 @@ tags: ["packs", "kubernetes-dashboard", "monitoring"] The [Kubernetes Dashboard](https://github.com/kubernetes/dashboard) add-on pack is a general-purpose, web-based UI that allows you to manage clusters and the applications deployed in them. -
- ## Versions Supported - + -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the - [Spectro Proxy](frp.md) reverse proxy. - -- Users or groups must be mapped to a Kubernetes RBAC role, either a Role or a ClusterRole. You can create a custom role - through a manifest and use Palette's roleBinding feature to associate the users or groups with the role. Refer to the - [Create Role Bindings](../clusters/cluster-management/cluster-rbac.md#create-role-bindings) guide to learn more. - -## Parameters - -| Name | Supported Values | Default Values | Description | -| ---------------------------- | ----------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `k8s-dashboard.namespace` | | kubernetes-dashboard | The namespace where you want to run the Kubernetes Dashboard deployment | -| `k8s-dashboard.clusterRole` | Any valid clusterRole from the Kubernetes cluster | `k8s-dashboard-readonly` | The ClusterRole to be attached to the ServiceAccount which defines RBAC to the cluster resources.

By default, a ClusterRole (k8s-dashboard-readonly) with ReadOnly access to most of the resources is deployed. | -| `k8s-dashboard.certDuration` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `8760h` (365 days) | Validity for the Self-signed certificate, specified in hours. | -| `k8s-dashboard.certRenewal` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `720h` (30 days) | Certificate renew before expiration duration | -| `k8s-dashboard.serviceType` | ClusterIP, LoadBalancer | ClusterIP | The ServiceType for dashboard. We recommend using ClusterIP service type to restrict access to the cluster. | -| `k8s-dashboard.skipLogin` | True, False | False | A flag to skip authentications in the Kubernetes Dashboard UI. We recommend using this only for demo purposes, as enabling it could expose a security risk. | - -:::warning - -Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized -experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. - -::: - -## Usage - To use the Kubernetes Dashboard pack, you have to add it to your cluster profile. Use the following information to find the Kubernetes Dashboard pack. @@ -61,16 +29,15 @@ the Kubernetes Dashboard pack. - **Pack Name**: Kubernetes Dashboard - **Pack Version**: 2.0.x or higher -The Kubernetes Dashboard pack requires the [Spectro Proxy](frp.md) pack, which serves as a reverse proxy to expose the -Kubernetes dashboard. You must configure the Spectro Proxy pack. + +The Kubernetes Dashboard pack requires the pack, which serves as a reverse +proxy to expose the Kubernetes dashboard. You must configure the Spectro Proxy pack. ### Access Kubernetes Dashboard When connected to the cluster remotely, issue the following command to establish a connection to deploy the Kubernetes Dashboard on port 8080. -
- ```bash kubectl port-forward -namespace kubernetes-dashboard service/kubernetes-dashboard 8080:443 ``` @@ -79,8 +46,6 @@ To access Kubernetes Dashboard, navigate to `https://localhost:8080` in a browse From the Dashboard login page, run the following command from the terminal window to obtain the bearer token: -
- ```bash kubectl -namespace kubernetes-dashboard describe secret \ $(kubectl -namespace kubernetes-dashboard get secret | grep kubernetes-dashboard-token | awk '{print $1}') @@ -88,8 +53,6 @@ $(kubectl -namespace kubernetes-dashboard get secret | grep kubernetes-dashboard The following example shows the command output with the token value. -
- ```yaml Name: kubernetes-dashboard-token-h4lnf Namespace: kubernetes-dashboard @@ -106,14 +69,10 @@ namespace: 20 bytes token: eyJhbGciOiJSUzI1NiIsImtpZCI6Ilg1bTg3RWM4Y1c3NnhkQ3dXbXNDUXQydVpYQklRUWoxa1BaS0ctVkVTSDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1oNGxuZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjAwZTcyOWYxLTY2MzgtNGU2OC04ZGY1LWFmYTJlMmUzODA5NSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.JU4GOJNjGpkHabUyxBt_2rvtXNjpR3w238BF2oMCQUNf_ZkUGSMeAAgIKxbAuk62dtJNDaRh5yAZ9J5KthMcU6k4qVmodUOJdlvigBVNjTDEhPM-sqJus62HMtwjpvm0CX-aP_A_BqHs2yJ3OgXSX0uHmkUO1FMoZSVaRpOvx7f5bPswxd87L3npuZt4p-NJIX32-DGjBnxdANAHcWil3YHIUbDgQIdjDfN6stGU_JByvzfCJpNCWWDinr772W7iZ3uA28F8uGS0ZMd1E5e1moEFBY8BM015Qxg2Y_k7lmv9S8GMkBJyTiJNiqnwLwfsiE1ycE4Tgq_vuQfFToIMNw ``` -
- ### Configure Ingress Use the following steps to configure ingress for the Kubernetes Dashboard pack. -
- 1. Ensure the `service.type` parameter is set to "ClusterIP". 2. To enable ingress, set the `ingress.enabled` parameter to "true". @@ -126,8 +85,6 @@ controller exposes. Typically you would point a DNS CNAME record to the ingress controller IP. Talk to your system administrator to learn more about which hostname to use. -
- ### Configure LoadBalancer Use the `service.loadBalancerIP` and `service.externalPort` parameters to connect to the Kubernetes Dashboard. @@ -136,36 +93,6 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the - [Spectro Proxy](frp.md) reverse proxy. - -- Users or groups must be mapped to a Kubernetes RBAC role, either a Role or a ClusterRole. You can create a custom role - through a manifest and use Palette's roleBinding feature to associate the users or groups with the role. Refer to the - [Create Role Bindings](../clusters/cluster-management/cluster-rbac.md#create-role-bindings) guide to learn more. - -## Parameters - -| Name | Supported Values | Default Values | Description | -| ---------------------------- | ----------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `k8s-dashboard.namespace` | | kubernetes-dashboard | The namespace where you want to run the Kubernetes Dashboard deployment | -| `k8s-dashboard.clusterRole` | Any valid clusterRole from the Kubernetes cluster | `k8s-dashboard-readonly` | The ClusterRole to be attached to the ServiceAccount which defines RBAC to the cluster resources.

By default, a ClusterRole (k8s-dashboard-readonly) with ReadOnly access to most of the resources is deployed. | -| `k8s-dashboard.certDuration` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `8760h` (365 days) | Validity for the Self-signed certificate, specified in hours. | -| `k8s-dashboard.certRenewal` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `720h` (30 days) | Certificate renew before expiration duration | -| `k8s-dashboard.serviceType` | ClusterIP, LoadBalancer | ClusterIP | The ServiceType for dashboard. We recommend using ClusterIP service type to restrict access to the cluster. | -| `k8s-dashboard.skipLogin` | True, False | False | A flag to skip authentications in the Kubernetes Dashboard UI. We recommend using this only for demo purposes, as enabling it could expose a security risk. | - -:::warning - -Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized -experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. - -::: - -## Usage - To use the Kubernetes Dashboard pack, you have to add it to your cluster profile. Use the following information to find the Kubernetes Dashboard pack. @@ -174,18 +101,15 @@ the Kubernetes Dashboard pack. - **Pack Name**: Kubernetes Dashboard - **Pack Version**: 2.0.x or higher -The Kubernetes Dashboard pack requires the [Spectro Proxy](frp.md) pack, which serves as a reverse proxy to expose the -Kubernetes dashboard. You must configure the Spectro Proxy pack. - -
+ +The Kubernetes Dashboard pack requires the pack, which serves as a reverse +proxy to expose the Kubernetes dashboard. You must configure the Spectro Proxy pack. ### Access Kubernetes Dashboard When connected to the cluster remotely, run the following command to establish a connection to deploy the Kubernetes Dashboard on port 8080. -
- ```bash kubectl port-forward -namespace kubernetes-dashboard service/kubernetes-dashboard 8080:443 ``` @@ -194,16 +118,12 @@ To access Kubernetes Dashboard, navigate to `https://localhost:8080` in a browse From the Dashboard login page, run the following command from the terminal window to obtain the bearer token: -
- ```bash kubectl -namespace kubernetes-dashboard describe secret $(kubectl -namespace kubernetes-dashboard get secret | grep kubernetes-dashboard-token | awk '{print $1}') ``` The following example shows the command output with the token value. -
- ```yaml Name: kubernetes-dashboard-token-h4lnf Namespace: kubernetes-dashboard @@ -220,14 +140,10 @@ namespace: 20 bytes token: eyJhbGciOiJSUzI1NiIsImtpZCI6Ilg1bTg3RWM4Y1c3NnhkQ3dXbXNDUXQydVpYQklRUWoxa1BaS0ctVkVTSDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1oNGxuZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjAwZTcyOWYxLTY2MzgtNGU2OC04ZGY1LWFmYTJlMmUzODA5NSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.JU4GOJNjGpkHabUyxBt_2rvtXNjpR3w238BF2oMCQUNf_ZkUGSMeAAgIKxbAuk62dtJNDaRh5yAZ9J5KthMcU6k4qVmodUOJdlvigBVNjTDEhPM-sqJus62HMtwjpvm0CX-aP_A_BqHs2yJ3OgXSX0uHmkUO1FMoZSVaRpOvx7f5bPswxd87L3npuZt4p-NJIX32-DGjBnxdANAHcWil3YHIUbDgQIdjDfN6stGU_JByvzfCJpNCWWDinr772W7iZ3uA28F8uGS0ZMd1E5e1moEFBY8BM015Qxg2Y_k7lmv9S8GMkBJyTiJNiqnwLwfsiE1ycE4Tgq_vuQfFToIMNw ``` -
- ### Configure Ingress Use the following steps to configure ingress for the Kubernetes Dashboard pack. -
- 1. Ensure the `service.type` parameter is set to "ClusterIP". 2. To enable ingress, set the `ingress.enabled` parameter to "true". @@ -240,8 +156,6 @@ controller exposes. Typically you would point a DNS CNAME record to the ingress controller IP. Talk to your system administrator to learn more about which hostname to use. -
- ### Configure LoadBalancer Use the `service.loadBalancerIP` and `service.externalPort` parameters to connect to the Kubernetes Dashboard. @@ -250,36 +164,6 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the - [Spectro Proxy](frp.md) reverse proxy. - -- Users or groups must be mapped to a Kubernetes RBAC role, either a Role or a ClusterRole. You can create a custom role - through a manifest and use Palette's roleBinding feature to associate the users or groups with the role. Refer to the - [Create Role Bindings](../clusters/cluster-management/cluster-rbac.md#create-role-bindings) guide to learn more. - -## Parameters - -| Name | Supported Values | Default Values | Description | -| ---------------------------- | ----------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `k8s-dashboard.namespace` | | kubernetes-dashboard | The namespace where you want to run the Kubernetes Dashboard deployment | -| `k8s-dashboard.clusterRole` | Any valid clusterRole from the Kubernetes cluster | `k8s-dashboard-readonly` | The ClusterRole to be attached to the ServiceAccount which defines RBAC to the cluster resources.

By default, a ClusterRole (k8s-dashboard-readonly) with ReadOnly access to most of the resources is deployed. | -| `k8s-dashboard.certDuration` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `8760h` (365 days) | Validity for the Self-signed certificate, specified in hours. | -| `k8s-dashboard.certRenewal` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `720h` (30 days) | Certificate renew before expiration duration | -| `k8s-dashboard.serviceType` | ClusterIP, LoadBalancer | ClusterIP | The ServiceType for dashboard. We recommend using ClusterIP service type to restrict access to the cluster. | -| `k8s-dashboard.skipLogin` | True, False | False | A flag to skip authentications in the Kubernetes Dashboard UI. We recommend using this only for demo purposes, as enabling it could expose a security risk. | - -:::warning - -Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized -experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. - -::: - -## Usage - To use the Kubernetes Dashboard pack, you have to add it to your cluster profile. Use the following information to find the Kubernetes Dashboard pack. @@ -288,18 +172,15 @@ the Kubernetes Dashboard pack. - **Pack Name**: Kubernetes Dashboard - **Pack Version**: 2.0.x or higher -The Kubernetes Dashboard pack requires the [Spectro Proxy](frp.md) pack, which serves as a reverse proxy to expose the -Kubernetes dashboard. You must configure the Spectro Proxy pack. - -
+ +The Kubernetes Dashboard pack requires the pack, which serves as a reverse +proxy to expose the Kubernetes dashboard. You must configure the Spectro Proxy pack. ### Access Kubernetes Dashboard When connected to the cluster remotely, run the following command to establish a connection to to deploy the Kubernetes Dashboard on port 8080. -
- ```bash kubectl port-forward -namespace kubernetes-dashboard service/kubernetes-dashboard 8080:443 ``` @@ -308,16 +189,12 @@ To access Kubernetes Dashboard, navigate to `https://localhost:8080` in a browse From the Dashboard login page, run the following command from the terminal window to obtain the bearer token: -
- ```bash kubectl -namespace kubernetes-dashboard describe secret $(kubectl -namespace kubernetes-dashboard get secret | grep kubernetes-dashboard-token | awk '{print $1}') ``` The following example shows the command output with the token value. -
- ```yaml Name: kubernetes-dashboard-token-h4lnf Namespace: kubernetes-dashboard @@ -334,14 +211,10 @@ namespace: 20 bytes token: eyJhbGciOiJSUzI1NiIsImtpZCI6Ilg1bTg3RWM4Y1c3NnhkQ3dXbXNDUXQydVpYQklRUWoxa1BaS0ctVkVTSDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1oNGxuZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjAwZTcyOWYxLTY2MzgtNGU2OC04ZGY1LWFmYTJlMmUzODA5NSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.JU4GOJNjGpkHabUyxBt_2rvtXNjpR3w238BF2oMCQUNf_ZkUGSMeAAgIKxbAuk62dtJNDaRh5yAZ9J5KthMcU6k4qVmodUOJdlvigBVNjTDEhPM-sqJus62HMtwjpvm0CX-aP_A_BqHs2yJ3OgXSX0uHmkUO1FMoZSVaRpOvx7f5bPswxd87L3npuZt4p-NJIX32-DGjBnxdANAHcWil3YHIUbDgQIdjDfN6stGU_JByvzfCJpNCWWDinr772W7iZ3uA28F8uGS0ZMd1E5e1moEFBY8BM015Qxg2Y_k7lmv9S8GMkBJyTiJNiqnwLwfsiE1ycE4Tgq_vuQfFToIMNw ``` -
- ### Configure Ingress Use the following steps to configure ingress for the Kubernetes Dashboard pack. -
- 1. Ensure the `service.type` parameter is set to "ClusterIP". 2. To enable ingress, set the `ingress.enabled` parameter to "true". @@ -354,8 +227,6 @@ controller exposes. Typically you would point a DNS CNAME record to the ingress controller IP. Talk to your system administrator to learn more about which hostname to use. -
- ### Configure LoadBalancer Use the `service.loadBalancerIP` and `service.externalPort` parameters to connect to the Kubernetes Dashboard. @@ -364,36 +235,6 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the - [Spectro Proxy](frp.md) reverse proxy. - -- Users or groups must be mapped to a Kubernetes RBAC role, either a Role or a ClusterRole. You can create a custom role - through a manifest and use Palette's roleBinding feature to associate the users or groups with the role. Refer to the - [Create Role Bindings](../clusters/cluster-management/cluster-rbac.md#create-role-bindings) guide to learn more. - -## Parameters - -| Name | Supported Values | Default Values | Description | -| ---------------------------- | ----------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `k8s-dashboard.namespace` | | kubernetes-dashboard | The namespace where you want to run the Kubernetes Dashboard deployment | -| `k8s-dashboard.clusterRole` | Any valid clusterRole from the Kubernetes cluster | `k8s-dashboard-readonly` | The ClusterRole to be attached to the ServiceAccount which defines RBAC to the cluster resources.

By default, a ClusterRole (k8s-dashboard-readonly) with ReadOnly access to most of the resources is deployed. | -| `k8s-dashboard.certDuration` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `8760h` (365 days) | Validity for the Self-signed certificate, specified in hours. | -| `k8s-dashboard.certRenewal` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `720h` (30 days) | Certificate renew before expiration duration | -| `k8s-dashboard.serviceType` | ClusterIP, LoadBalancer | ClusterIP | The ServiceType for dashboard. We recommend using ClusterIP service type to restrict access to the cluster. | -| `k8s-dashboard.skipLogin` | True, False | False | A flag to skip authentications in the Kubernetes Dashboard UI. We recommend using this only for demo purposes, as enabling it could expose a security risk. | - -:::warning - -Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized -experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. - -::: - -## Usage - To use the Kubernetes Dashboard pack, you have to add it to your cluster profile. Use the following information to find the Kubernetes Dashboard pack. @@ -402,18 +243,15 @@ the Kubernetes Dashboard pack. - **Pack Name**: Kubernetes Dashboard - **Pack Version**: 2.0.x or higher -The Kubernetes Dashboard pack requires the [Spectro Proxy](frp.md) pack, which serves as a reverse proxy to expose the -Kubernetes dashboard. You must configure the Spectro Proxy pack. - -
+ +The Kubernetes Dashboard pack requires the pack, which serves as a reverse +proxy to expose the Kubernetes dashboard. You must configure the Spectro Proxy pack. ### Access Kubernetes Dashboard When connected to the cluster remotely, run the following command to establish a connection to to deploy the Kubernetes Dashboard on port 80. -
- ```bash kubectl port-forward -namespace kubernetes-dashboard service/kubernetes-dashboard 8080:443 ``` @@ -422,16 +260,12 @@ To access Kubernetes Dashboard, navigate to `https://localhost:8080` in a browse From the Dashboard login page, run the following command from the terminal window to obtain the bearer token: -
- ```bash kubectl -namespace kubernetes-dashboard describe secret $(kubectl -namespace kubernetes-dashboard get secret | grep kubernetes-dashboard-token | awk '{print $1}') ``` The following example shows the command output with the token value. -
- ```yaml Name: kubernetes-dashboard-token-h4lnf Namespace: kubernetes-dashboard @@ -448,14 +282,10 @@ namespace: 20 bytes token: eyJhbGciOiJSUzI1NiIsImtpZCI6Ilg1bTg3RWM4Y1c3NnhkQ3dXbXNDUXQydVpYQklRUWoxa1BaS0ctVkVTSDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1oNGxuZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjAwZTcyOWYxLTY2MzgtNGU2OC04ZGY1LWFmYTJlMmUzODA5NSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.JU4GOJNjGpkHabUyxBt_2rvtXNjpR3w238BF2oMCQUNf_ZkUGSMeAAgIKxbAuk62dtJNDaRh5yAZ9J5KthMcU6k4qVmodUOJdlvigBVNjTDEhPM-sqJus62HMtwjpvm0CX-aP_A_BqHs2yJ3OgXSX0uHmkUO1FMoZSVaRpOvx7f5bPswxd87L3npuZt4p-NJIX32-DGjBnxdANAHcWil3YHIUbDgQIdjDfN6stGU_JByvzfCJpNCWWDinr772W7iZ3uA28F8uGS0ZMd1E5e1moEFBY8BM015Qxg2Y_k7lmv9S8GMkBJyTiJNiqnwLwfsiE1ycE4Tgq_vuQfFToIMNw ``` -
- ### Configure Ingress Use the following steps to configure ingress for the Kubernetes Dashboard pack. -
- 1. Ensure the `service.type` parameter is set to "ClusterIP". 2. To enable ingress, set the `ingress.enabled` parameter to "true". @@ -468,8 +298,6 @@ controller exposes. Typically you would point a DNS CNAME record to the ingress controller IP. Talk to your system administrator to learn more about which hostname to use. -
- ### Configure LoadBalancer Use the `service.loadBalancerIP` and `service.externalPort` parameters to connect to the Kubernetes Dashboard. @@ -478,36 +306,6 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the - [Spectro Proxy](frp.md) reverse proxy. - -- Users or groups must be mapped to a Kubernetes RBAC role, either a Role or a ClusterRole. You can create a custom role - through a manifest and use Palette's roleBinding feature to associate the users or groups with the role. Refer to the - [Create Role Bindings](../clusters/cluster-management/cluster-rbac.md#create-role-bindings) guide to learn more. - -## Parameters - -| Name | Supported Values | Default Values | Description | -| ---------------------------- | ----------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `k8s-dashboard.namespace` | | kubernetes-dashboard | The namespace where you want to run the Kubernetes Dashboard deployment | -| `k8s-dashboard.clusterRole` | Any valid clusterRole from the Kubernetes cluster | `k8s-dashboard-readonly` | The ClusterRole to be attached to the ServiceAccount which defines RBAC to the cluster resources.

By default, a ClusterRole (k8s-dashboard-readonly) with ReadOnly access to most of the resources is deployed. | -| `k8s-dashboard.certDuration` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `8760h` (365 days) | Validity for the Self-signed certificate, specified in hours. | -| `k8s-dashboard.certRenewal` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `720h` (30 days) | Certificate renew before expiration duration | -| `k8s-dashboard.serviceType` | ClusterIP, LoadBalancer | ClusterIP | The ServiceType for dashboard. We recommend using ClusterIP service type to restrict access to the cluster. | -| `k8s-dashboard.skipLogin` | True, False | False | A flag to skip authentications in the Kubernetes Dashboard UI. We recommend using this only for demo purposes, as enabling it could expose a security risk. | - -:::warning - -Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized -experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. - -::: - -## Usage - To use the Kubernetes Dashboard pack, you have to add it to your cluster profile. Use the following information to find the Kubernetes Dashboard pack. @@ -516,18 +314,15 @@ the Kubernetes Dashboard pack. - **Pack Name**: Kubernetes Dashboard - **Pack Version**: 2.0.x or higher -The Kubernetes Dashboard pack requires the [Spectro Proxy](frp.md) pack, which serves as a reverse proxy to expose the -Kubernetes dashboard. You must configure the Spectro Proxy pack. - -
+ +The Kubernetes Dashboard pack requires the pack, which serves as a reverse +proxy to expose the Kubernetes dashboard. You must configure the Spectro Proxy pack. ### Access Kubernetes Dashboard When connected to the cluster remotely, run the following command to establish a connection to to deploy the Kubernetes Dashboard on port 80. -
- ```bash kubectl port-forward -namespace kubernetes-dashboard service/kubernetes-dashboard 8080:443 ``` @@ -536,16 +331,12 @@ To access Kubernetes Dashboard, navigate to `https://localhost:8080` in a browse From the Dashboard login page, run the following command from the terminal window to obtain the bearer token: -
- ```bash kubectl -namespace kubernetes-dashboard describe secret $(kubectl -namespace kubernetes-dashboard get secret | grep kubernetes-dashboard-token | awk '{print $1}') ``` The following example shows the command output with the token value. -
- ```yaml Name: kubernetes-dashboard-token-h4lnf Namespace: kubernetes-dashboard @@ -562,14 +353,10 @@ namespace: 20 bytes token: eyJhbGciOiJSUzI1NiIsImtpZCI6Ilg1bTg3RWM4Y1c3NnhkQ3dXbXNDUXQydVpYQklRUWoxa1BaS0ctVkVTSDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1oNGxuZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjAwZTcyOWYxLTY2MzgtNGU2OC04ZGY1LWFmYTJlMmUzODA5NSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.JU4GOJNjGpkHabUyxBt_2rvtXNjpR3w238BF2oMCQUNf_ZkUGSMeAAgIKxbAuk62dtJNDaRh5yAZ9J5KthMcU6k4qVmodUOJdlvigBVNjTDEhPM-sqJus62HMtwjpvm0CX-aP_A_BqHs2yJ3OgXSX0uHmkUO1FMoZSVaRpOvx7f5bPswxd87L3npuZt4p-NJIX32-DGjBnxdANAHcWil3YHIUbDgQIdjDfN6stGU_JByvzfCJpNCWWDinr772W7iZ3uA28F8uGS0ZMd1E5e1moEFBY8BM015Qxg2Y_k7lmv9S8GMkBJyTiJNiqnwLwfsiE1ycE4Tgq_vuQfFToIMNw ``` -
- ### Configure Ingress Use the following steps to configure ingress for the Kubernetes Dashboard pack. -
- 1. Ensure the `service.type` parameter is set to "ClusterIP". 2. To enable ingress, set the `ingress.enabled` parameter to "true". @@ -582,8 +369,6 @@ controller exposes. Typically you would point a DNS CNAME record to the ingress controller IP. Talk to your system administrator to learn more about which hostname to use. -
- ### Configure LoadBalancer Use the `service.loadBalancerIP` and `service.externalPort` parameters to connect to the Kubernetes Dashboard. @@ -592,34 +377,6 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec -## Prerequisites - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the - [Spectro Proxy](frp.md) reverse proxy. - -- Users or groups must be mapped to a Kubernetes RBAC role, either a Role or a ClusterRole. You can create a custom role - through a manifest and use Palette's roleBinding feature to associate the users or groups with the role. Refer to the - [Create Role Bindings](../clusters/cluster-management/cluster-rbac.md#create-role-bindings) guide to learn more. - -## Parameters - -| Name | Supported Values | Default Values | Description | -| ---------------------------- | ----------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `k8s-dashboard.namespace` | | kubernetes-dashboard | The namespace where you want to run the Kubernetes Dashboard deployment | -| `k8s-dashboard.clusterRole` | Any valid clusterRole from the Kubernetes cluster | `k8s-dashboard-readonly` | The ClusterRole to be attached to the ServiceAccount which defines RBAC to the cluster resources.

By default, a ClusterRole (k8s-dashboard-readonly) with ReadOnly access to most of the resources is deployed. | -| `k8s-dashboard.certDuration` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `8760h` (365 days) | Validity for the Self-signed certificate, specified in hours. | -| `k8s-dashboard.certRenewal` | A Go time.Duration string format in s (seconds), m (minutes), and h (hour) suffixes | `720h` (30 days) | Certificate renew before expiration duration | -| `k8s-dashboard.serviceType` | ClusterIP, LoadBalancer | ClusterIP | The ServiceType for dashboard. We recommend using ClusterIP service type to restrict access to the cluster. | -| `k8s-dashboard.skipLogin` | True, False | False | A flag to skip authentications in the Kubernetes Dashboard UI. We recommend using this only for demo purposes, as enabling it could expose a security risk. | - -:::warning - -Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized -experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. - -::: - ## Usage To use the Kubernetes Dashboard pack, you have to add it to your cluster profile. Use the following information to find @@ -630,18 +387,15 @@ the Kubernetes Dashboard pack. - **Pack Name**: Kubernetes Dashboard - **Pack Version**: 2.0.x or higher -The Kubernetes Dashboard pack requires the [Spectro Proxy](frp.md) pack, which serves as a reverse proxy to expose the -Kubernetes dashboard. You must configure the Spectro Proxy pack. - -
+ +The Kubernetes Dashboard pack requires the pack, which serves as a reverse +proxy to expose the Kubernetes dashboard. You must configure the Spectro Proxy pack. ### Access Kubernetes Dashboard When connected to the cluster remotely, run the following command to establish a connection to to deploy the Kubernetes Dashboard on port 80. -
- ```bash kubectl port-forward -namespace kubernetes-dashboard service/kubernetes-dashboard 8080:443 ``` @@ -650,16 +404,12 @@ To access Kubernetes Dashboard, navigate to `https://localhost:8080` in a browse From the Dashboard login page, run the following command from the terminal window to obtain the bearer token: -
- ```bash kubectl -namespace kubernetes-dashboard describe secret $(kubectl -namespace kubernetes-dashboard get secret | grep kubernetes-dashboard-token | awk '{print $1}') ``` The following example shows the command output with the token value. -
- ```yaml Name: kubernetes-dashboard-token-h4lnf Namespace: kubernetes-dashboard @@ -676,14 +426,10 @@ namespace: 20 bytes token: eyJhbGciOiJSUzI1NiIsImtpZCI6Ilg1bTg3RWM4Y1c3NnhkQ3dXbXNDUXQydVpYQklRUWoxa1BaS0ctVkVTSDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1oNGxuZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjAwZTcyOWYxLTY2MzgtNGU2OC04ZGY1LWFmYTJlMmUzODA5NSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.JU4GOJNjGpkHabUyxBt_2rvtXNjpR3w238BF2oMCQUNf_ZkUGSMeAAgIKxbAuk62dtJNDaRh5yAZ9J5KthMcU6k4qVmodUOJdlvigBVNjTDEhPM-sqJus62HMtwjpvm0CX-aP_A_BqHs2yJ3OgXSX0uHmkUO1FMoZSVaRpOvx7f5bPswxd87L3npuZt4p-NJIX32-DGjBnxdANAHcWil3YHIUbDgQIdjDfN6stGU_JByvzfCJpNCWWDinr772W7iZ3uA28F8uGS0ZMd1E5e1moEFBY8BM015Qxg2Y_k7lmv9S8GMkBJyTiJNiqnwLwfsiE1ycE4Tgq_vuQfFToIMNw ``` -
- ### Configure Ingress Use the following steps to configure ingress for the Kubernetes Dashboard pack. -
- 1. Ensure the `service.type` parameter is set to "ClusterIP". 2. To enable ingress, set the `ingress.enabled` parameter to "true". @@ -696,8 +442,6 @@ controller exposes. Typically you would point a DNS CNAME record to the ingress controller IP. Talk to your system administrator to learn more about which hostname to use. -
- ### Configure LoadBalancer Use the `service.loadBalancerIP` and `service.externalPort` parameters to connect to the Kubernetes Dashboard. @@ -718,8 +462,6 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec You can reference the Kubernetes Dashboard pack in Terraform with a data resource. -
- ```hcl data "spectrocloud_registry" "public_registry" { name = "Public Repo" @@ -732,9 +474,3 @@ data "spectrocloud_pack_simple" "spectro-proxy" { registry_uid = data.spectrocloud_registry.public_registry.id } ``` - -# References - -- [Kubernetes Dashboard](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/) - -- [Open Source Kubernetes Dashboard Documentation](https://github.com/kubernetes/dashboard/tree/master/docs) diff --git a/docs/docs-content/integrations/kubernetes-edge.md b/docs/docs-content/integrations/kubernetes-edge.md index 83d3a5452f..b740f6f683 100644 --- a/docs/docs-content/integrations/kubernetes-edge.md +++ b/docs/docs-content/integrations/kubernetes-edge.md @@ -121,7 +121,7 @@ The Kubernetes configuration file is where you can do the following: [Configure Custom OIDC](kubernetes-edge.md#configure-custom-oidc). - Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the [Spectro Proxy](frp.md) guide. + information, refer to the guide. #### Configuration Changes @@ -506,7 +506,7 @@ The Kubernetes configuration file is where you can do the following: [Configure Custom OIDC](kubernetes-edge.md#configure-custom-oidc). - Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the [Spectro Proxy](frp.md) guide. + information, refer to the guide. #### Configuration Changes @@ -891,7 +891,7 @@ The Kubeadm configuration file is where you can do the following: [Configure Custom OIDC](kubernetes-edge.md#configure-custom-oidc). - Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the [Spectro Proxy](frp.md) guide. + information, refer to the guide. #### Configuration Changes diff --git a/docs/docs-content/integrations/kubernetes-generic.md b/docs/docs-content/integrations/kubernetes-generic.md index 12b3a9d8ed..7c8ff14973 100644 --- a/docs/docs-content/integrations/kubernetes-generic.md +++ b/docs/docs-content/integrations/kubernetes-generic.md @@ -88,7 +88,7 @@ The Kubeadm configuration file is where you can do the following: [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain). - Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the [Spectro Proxy](frp.md) guide. + information, refer to the guide. ### Change Cluster DNS Service Domain @@ -319,7 +319,7 @@ The Kubeadm configuration file is where you can do the following: [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain). - Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the [Spectro Proxy](frp.md) guide. + information, refer to the guide. ### Change Cluster DNS Service Domain @@ -550,7 +550,7 @@ The Kubeadm configuration file is where you can do the following: [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain). - Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the [Spectro Proxy](frp.md) guide. + information, refer to the guide. ### Change Cluster DNS Service Domain diff --git a/docs/docs-content/integrations/kubernetes.md b/docs/docs-content/integrations/kubernetes.md index 905870e905..86bd118e3d 100644 --- a/docs/docs-content/integrations/kubernetes.md +++ b/docs/docs-content/integrations/kubernetes.md @@ -134,7 +134,7 @@ The Kubeadm configuration file is where you can do the following: [Configure Custom OIDC](#configure-custom-oidc). - Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the [Spectro Proxy](frp.md) guide. + information, refer to the guide. ### Change Cluster DNS Service Domain @@ -501,7 +501,7 @@ The Kubeadm configuration file is where you can do the following: [Configure Custom OIDC](#configure-custom-oidc). - Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the [Spectro Proxy](frp.md) guide. + information, refer to the guide. ### Change Cluster DNS Service Domain @@ -866,7 +866,7 @@ The Kubeadm configuration file is where you can do the following: [Configure Custom OIDC](#configure-custom-oidc). - Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the [Spectro Proxy](frp.md) guide. + information, refer to the guide. ### Change Cluster DNS Service Domain diff --git a/docs/docs-content/release-notes/known-issues.md b/docs/docs-content/release-notes/known-issues.md index e6db11eda4..e6b57d002a 100644 --- a/docs/docs-content/release-notes/known-issues.md +++ b/docs/docs-content/release-notes/known-issues.md @@ -44,7 +44,7 @@ The following table lists all known issues that are currently active and affecti | If a Kubernetes cluster deployed onto VMware is deleted, and later re-created with the same name, the cluster creation process fails. The issue is caused by existing resources remaining inside the PCG, or the System PCG, that are not cleaned up during the cluster deletion process. | Refer to the [VMware Resources Remain After Cluster Deletion](../troubleshooting/pcg.md#scenario---vmware-resources-remain-after-cluster-deletion) troubleshooting guide for resolution steps. | April 14, 2024 | Clusters | | In a VMware environment, self-hosted Palette instances do not receive a unique cluster ID when deployed, which can cause issues during a node repave event, such as a Kubernetes version upgrade. Specifically, Persistent Volumes (PVs) and Persistent Volume Claims (PVCs) will experience start problems due to the lack of a unique cluster ID. | To resolve this issue, refer to the [Volume Attachment Errors Volume in VMware Environment](../troubleshooting/palette-upgrade.md#volume-attachment-errors-volume-in-vmware-environment) troubleshooting guide. | April 14, 2024 | Self-Hosted | | Day-2 operations related to infrastructure changes, such as modifying the node size and count, when using MicroK8s are not taking effect. | No workaround is available. | April 14, 2024 | Packs, Clusters | -| If a cluster that uses the Rook-Ceph pack experiences network issues, it's possible for the file mount to become and remain unavailable even after the network is restored. | This a known issue disclosed in the [Rook GitHub repository](https://github.com/rook/rook/issues/13818). To resolve this issue, refer to [Rook-Ceph](../integrations/rook-ceph.md#file-mount-becomes-unavailable-after-cluster-experiences-network-issues) pack documentation. | April 14, 2024 | Packs, Edge | +| If a cluster that uses the Rook-Ceph pack experiences network issues, it's possible for the file mount to become and remain unavailable even after the network is restored. | This a known issue disclosed in the [Rook GitHub repository](https://github.com/rook/rook/issues/13818). To resolve this issue, refer to pack documentation. | April 14, 2024 | Packs, Edge | | Edge clusters on Edge hosts with ARM64 processors may experience instability issues that cause cluster failures. | ARM64 support is limited to a specific set of Edge devices. Currently, Nvidia Jetson devices are supported. | April 14, 2024 | Edge | | During the cluster provisioning process of new edge clusters, the Palette webhook pods may not always deploy successfully, causing the cluster to be stuck in the provisioning phase. This issue does not impact deployed clusters. | Review the [Palette Webhook Pods Fail to Start](../troubleshooting/edge.md#scenario---palette-webhook-pods-fail-to-start) troubleshooting guide for resolution steps. | April 14, 2024 | Edge | diff --git a/docs/docs-content/tutorials/profiles/deploy-pack.md b/docs/docs-content/tutorials/profiles/deploy-pack.md index ceeb14b2be..dbb5acd0f9 100644 --- a/docs/docs-content/tutorials/profiles/deploy-pack.md +++ b/docs/docs-content/tutorials/profiles/deploy-pack.md @@ -816,9 +816,9 @@ diagram. You can select any layer to make further edits or change the version if Next, proceed to include the add-on layers. Click on the **Add New Pack** button. + Add the Spectro Proxy pack to enable a reverse proxy to connect to the cluster's API. Adding this pack is _optional_, -but it will help connect your local machine to the cluster's API for debugging. Refer to the -[Spectro Proxy](../../integrations/frp.md) guide for more details. +but it will help connect your local machine to the cluster's API for debugging. Refer to the guide for more details. | **Pack Type** | **Registry** | **Pack Name** | **Pack Version** | | -------------- | ------------ | ------------- | ---------------- | diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/vertex-helm-ref.md b/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/vertex-helm-ref.md index bb30447c36..9a88c9edf1 100644 --- a/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/vertex-helm-ref.md +++ b/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/vertex-helm-ref.md @@ -399,11 +399,11 @@ ingress: ## Spectro Proxy + You can specify a reverse proxy server that clusters deployed through Palette VerteX can use to facilitate network -connectivity to the cluster's Kubernetes API server. Host clusters deployed in private networks can use the -[Spectro Proxy pack](../../../integrations/frp.md) to expose the cluster's Kubernetes API to downstream clients that are -not in the same network. Check out the [Reverse Proxy](../../system-management/reverse-proxy.md) documentation to learn -more about setting up a reverse proxy server for Palette VerteX. +connectivity to the cluster's Kubernetes API server. Host clusters deployed in private networks can use the pack to expose the cluster's Kubernetes API to downstream clients that are not in the same network. Check out the [Reverse +Proxy](../../system-management/reverse-proxy.md) documentation to learn more about setting up a reverse proxy server for +Palette VerteX. | **Parameters** | **Description** | **Type** | **Default value** | | ----------------- | -------------------------------------------------------------------------------------------- | -------- | ----------------- | diff --git a/docs/docs-content/vertex/system-management/reverse-proxy.md b/docs/docs-content/vertex/system-management/reverse-proxy.md index 19cf7f95bb..e4007a8a72 100644 --- a/docs/docs-content/vertex/system-management/reverse-proxy.md +++ b/docs/docs-content/vertex/system-management/reverse-proxy.md @@ -13,9 +13,9 @@ You can configure a reverse proxy for Palette VerteX. The reverse proxy can be u private network. Host clusters deployed in a private network are not accessible from the public internet or by users in different networks. You can use a reverse proxy to access the cluster's Kubernetes API server from a different network. -When you configure reverse proxy server for Palette VerteX, clusters that use the -[Spectro Proxy pack](../../integrations/frp.md) will use the reverse proxy server address in the kubeconfig file. -Clusters not using the Spectro Proxy pack will use the default cluster address in the kubeconfig file. + +When you configure reverse proxy server for Palette VerteX, clusters that use the will use the reverse proxy server address in the kubeconfig file. Clusters not using the Spectro Proxy pack will use the default cluster address in the +kubeconfig file. Use the following steps to configure a reverse proxy server for Palette VerteX. @@ -208,8 +208,8 @@ Output ``` You now have a Spectro Proxy server that you can use to access Palette VerteX clusters deployed in a different network. -Make sure you add the [Spectro Proxy pack](../../integrations/frp.md) to the clusters you want to access using the -Spectro Proxy server. +Make sure you add the to the +clusters you want to access using the Spectro Proxy server. ## Validate diff --git a/docs/docs-content/vm-management/create-vmo-profile.md b/docs/docs-content/vm-management/create-vmo-profile.md index bd40b27114..0086d158f3 100644 --- a/docs/docs-content/vm-management/create-vmo-profile.md +++ b/docs/docs-content/vm-management/create-vmo-profile.md @@ -8,9 +8,9 @@ sidebar_position: 10 tags: ["vmo"] --- -The **Virtual Machine Orchestrator** pack conveniently includes several components and automatically installs the -[Spectro Proxy](../integrations/frp.md) pack when you use the default profile configuration. To learn about pack -components, refer to [Palette VMO](./vm-management.md). + +The **Virtual Machine Orchestrator** pack conveniently includes several components and automatically installs the pack when you use the default +profile configuration. To learn about pack components, refer to [Palette VMO](./vm-management.md). ## Limitations @@ -49,8 +49,8 @@ components, refer to [Palette VMO](./vm-management.md). 7. Review the **Access** configuration panel at right. The default setting is **Proxied**, which automatically adds the **Spectro Proxy** pack when you create the cluster, allowing access to the Spectro VM Dashboard from anywhere. Check - out the [Spectro Proxy](../integrations/frp.md) guide to learn more. Changing the default may require some additional - configuration. + out the guide to learn more. + Changing the default may require some additional configuration. The **Direct** option is intended for a private configuration where a proxy is not implemented or not desired. @@ -86,12 +86,11 @@ components, refer to [Palette VMO](./vm-management.md). 6. Locate the **Virtual Machine Orchestrator** pack and add it to your profile. + 7. Review the **Access** configuration panel at right. The default setting is **Proxied**, which automatically adds the **Spectro Proxy** pack when you create the cluster, allowing access to the Spectro VM Dashboard from anywhere. Changing the default may require some additional configuration. Check out the - [Spectro Proxy](../integrations/frp.md) guide to learn more - - The **Direct** option is intended for a private configuration where a proxy is not implemented or not desired. + guide to learn more. The **Direct** option is intended for a private configuration where a proxy is not implemented or not desired. 8. If you are using PKX-E, no change is required and you can skip this step. From 266b77285607c238036084c5543ccac733f8def9 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Fri, 26 Jul 2024 09:30:22 -0700 Subject: [PATCH 17/22] chore: prep redirect --- _partials/packs/_rook-ceph.mdx | 10 +- _partials/packs/_ubuntu.mdx | 293 +++++++ .../integrations/edge-native-ubuntu.md | 30 + docs/docs-content/integrations/kubernetes.md | 123 +-- docs/docs-content/integrations/rke2.md | 3 +- .../integrations/spectro-proxy.md | 3 +- docs/docs-content/integrations/ubuntu-aks.md | 30 + docs/docs-content/integrations/ubuntu-aws.md | 30 + .../docs-content/integrations/ubuntu-azure.md | 30 + docs/docs-content/integrations/ubuntu-edge.md | 30 + docs/docs-content/integrations/ubuntu-gcp.md | 30 + .../integrations/ubuntu-libvirt.md | 30 + docs/docs-content/integrations/ubuntu-maas.md | 30 + .../integrations/ubuntu-openstack.md | 30 + .../integrations/ubuntu-vsphere.md | 30 + docs/docs-content/integrations/ubuntu.md | 790 ------------------ docs/docs-content/integrations/vault.md | 115 +-- docusaurus.config.js | 1 + redirects.js | 16 - static/packs-data/exclude_packs.json | 4 +- static/packs-data/packs_information.json | 67 ++ 21 files changed, 732 insertions(+), 993 deletions(-) create mode 100644 _partials/packs/_ubuntu.mdx create mode 100644 docs/docs-content/integrations/edge-native-ubuntu.md create mode 100644 docs/docs-content/integrations/ubuntu-aks.md create mode 100644 docs/docs-content/integrations/ubuntu-aws.md create mode 100644 docs/docs-content/integrations/ubuntu-azure.md create mode 100644 docs/docs-content/integrations/ubuntu-edge.md create mode 100644 docs/docs-content/integrations/ubuntu-gcp.md create mode 100644 docs/docs-content/integrations/ubuntu-libvirt.md create mode 100644 docs/docs-content/integrations/ubuntu-maas.md create mode 100644 docs/docs-content/integrations/ubuntu-openstack.md create mode 100644 docs/docs-content/integrations/ubuntu-vsphere.md delete mode 100644 docs/docs-content/integrations/ubuntu.md diff --git a/_partials/packs/_rook-ceph.mdx b/_partials/packs/_rook-ceph.mdx index 9231569f56..eaee474887 100644 --- a/_partials/packs/_rook-ceph.mdx +++ b/_partials/packs/_rook-ceph.mdx @@ -352,12 +352,6 @@ clusters.
- - -The older versions of this pack are deprecated. Please use the later versions to take advantage of new features and -improvements. - -
@@ -373,8 +367,8 @@ issues are resolved. 1. One way to debug is to reboot the node that is experiencing the issues. If you are unable to reboot the node, or if rebooting the node does not fix the issue, continue to the following steps. -2. Connect to your cluster via the command-line. For more information, refer to - [Access Cluster with CLI](/docs/docs-content/clusters/cluster-management/palette-webctl.md). + +2. Connect to your cluster via the command-line. For more information, refer to 3. Issue the following command to identify Persistent Volume Claims (PVC) from Ceph File System (FS). diff --git a/_partials/packs/_ubuntu.mdx b/_partials/packs/_ubuntu.mdx new file mode 100644 index 0000000000..6272186311 --- /dev/null +++ b/_partials/packs/_ubuntu.mdx @@ -0,0 +1,293 @@ +--- +partial_category: packs +partial_name: ubuntu +--- + +:::info + + + +Review the page to learn about our pack update and deprecation schedules. + + +::: + +## Version Supported + + + + + + +To use the Ubuntu OS pack, add the pack to your cluster profile when you select the OS layer. Refer to the +guide to learn more. + + +#### Add Custom Files + +You can create custom files that you define in the `files` section that precedes the `preKubeadmCommands` and +`postKubeadmCommands` sections. The files are invoked during runtime. + +```yaml +kubeadmconfig: + files: + - targetPath: /usr/local/share/ca-certificates/mycom.crt + targetOwner: "root:root" + targetPermissions: "0644" + content: | + -----BEGIN CERTIFICATE----- + MIICyzCCAbOgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl + cm5ldGVzMB4XDTIwMDkyMjIzNDMyM1oXDTMwMDkyMDIzNDgyM1owFTETMBEGA1UE + AxMKa3ViZXJuZXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdA + nZYs1el/6f9PgV/aO9mzy7MvqaZoFnqO7Qi4LZfYzixLYmMUzi+h8/RLPFIoYLiz + qiDn+P8c9I1uxB6UqGrBt7dkXfjrUZPs0JXEOX9U/6GFXL5C+n3AUlAxNCS5jobN + fbLt7DH3WoT6tLcQefTta2K+9S7zJKcIgLmBlPNDijwcQsbenSwDSlSLkGz8v6N2 + 7SEYNCV542lbYwn42kbcEq2pzzAaCqa5uEPsR9y+uzUiJpv5tDHUdjbFT8tme3vL + 9EdCPODkqtMJtCvz0hqd5SxkfeC2L+ypaiHIxbwbWe7GtliROvz9bClIeGY7gFBK + jZqpLdbBVjo0NZBTJFUCAwEAAaMmMCQwDgYDVR0PAQH/BAQDAgKkMBIGA1UdEwEB + /wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBADIKoE0P+aVJGV9LWGLiOhki + HFv/vPPAQ2MPk02rLjWzCaNrXD7aPPgT/1uDMYMHD36u8rYyf4qPtB8S5REWBM/Y + g8uhnpa/tGsaqO8LOFj6zsInKrsXSbE6YMY6+A8qvv5lPWpJfrcCVEo2zOj7WGoJ + ixi4B3fFNI+wih8/+p4xW+n3fvgqVYHJ3zo8aRLXbXwztp00lXurXUyR8EZxyR+6 + b+IDLmHPEGsY9KOZ9VLLPcPhx5FR9njFyXvDKmjUMJJgUpRkmsuU1mCFC+OHhj56 + IkLaSJf6z/p2a3YjTxvHNCqFMLbJ2FvJwYCRzsoT2wm2oulnUAMWPI10vdVM+Nc= + -----END CERTIFICATE----- + preKubeadmCommands: + - echo "Executing pre kube admin config commands" + - update-ca-certificates + - "systemctl restart containerd; sleep 3" + - 'while [ ! -S /var/run/containerd/containerd.sock ]; do echo "Waiting for containerd..."; sleep 1; done' + postKubeadmCommands: + - echo "Executing post kube admin config commands" +``` + +In the next example, a configuration file is added to a folder. + +```yaml +kubeadmconfig: + files: + - targetPath: /etc/containerd/config.toml + targetOwner: "root:root" + targetPermissions: "0644" + content: | + version = 2 + imports = ["/etc/containerd/conf.d/*.toml"] + [plugins] + [plugins."io.containerd.grpc.v1.cri"] + sandbox_image = "registry.k8s.io/pause:3.9" + device_ownership_from_security_context = true + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] + runtime_type = "io.containerd.runc.v2" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] + SystemdCgroup = true + preKubeadmCommands: + - 'echo "====> Applying pre Kubeadm commands"' + postKubeadmCommands: + - 'echo "====> Applying post Kubeadm commands"' +``` + +### Ubuntu Pro + +Ubuntu Pro is a security and maintenance subscription offering from Canonical that offers long-term security support and +many other security hardening features. Ubuntu Pro offers several more benefits than the free Ubuntu offering: + +- Extended Security Maintenance + +- Kernel Livepatch service to avoid reboots + +- FIPS 140-2 Level 1 certified crypto modules + +- Common Criteria EAL2 + +For more information, refer to the [Ubuntu Pro](https://ubuntu.com/pro) documentation from Canonical. + +You can enable Ubuntu Pro when deploying clusters with Palette. To enable Ubuntu Pro, select Ubuntu as the OS layer for +a cluster profile and expand the **Preset Menu** to reveal the Ubuntu Pro parameters. + +| Parameter | Description | Default Value | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | +| **token** | The Canonical subscription token for Ubuntu Pro. Refer to the Ubuntu Pro [subscribe page](https://ubuntu.com/pro/subscribe) to aquire a subscription token. | `""` | +| **esm-apps** | Expanded Security Maintenance (ESM) for Applications. Refer to the Ubuntu [ESM documentation](https://ubuntu.com/security/esm) to learn more. | Disabled | +| **livepatch** | Canonical Livepatch service. Refer to the Ubuntu [Livepatch](https://ubuntu.com/security/livepatch) documenation for more details. | Disabled | +| **fips** | Federal Information Processing Standards (FIPS) 140 validated cryptography for Linux workloads on Ubuntu. This installs NIST-certified core packages. Refer to the Ubuntu [FIPS](https://ubuntu.com/security/certifications/docs/2204) documentation to learn more. | Disabled | +| **fips-updates** | Install NIST-certified core packages with priority security updates. Refer to the Ubuntu [FIPS Updates](https://ubuntu.com/security/certifications/docs/fips-updates) documentation to learn more. | Disabled | +| **cis** | Gain access to OpenSCAP-based tooling that automates both hardening and auditing with certified content based on published CIS benchmarks. Refer to the Ubuntu [CIS](https://ubuntu.com/security/certifications/docs/2204/usg/cis) documentation to learn more. | Disabled | + +Use the following steps to enable Ubuntu Pro. + +1. Log in to [Palette](https://console.spectrocloud.com). + +2. Navigate to the left **Main Menu** and select **Profiles**. + +3. Click on **Add Cluster Profile**. + +4. Fill out the input fields for **Name**, **Version**, **Description**, **Type** and **Tags**. Click on **Next** to + continue. + +5. Select the infrastructure provider and click on **Next**. + +6. Select the OS layer and use the following information to find the Ubuntu pack: + +- **Pack Type** - OS + +- **Registry** - Public Repo + +- **Pack Name** -Ubuntu + +- **Pack Version** - 20.04 or 22.04 + +7. Modify the Ubuntu **Pack values** to activate the **Presets** options for the Ubuntu YAML file. Click on the + **\** button to reveal the YAML editor and expand the **Preset Drawer**. + +![A view of the cluster profile creation wizard for Ubuntu Pro](/integrations_ubuntu_ubuntu-pro-preset-drawer.webp) + +8. Click the **Ubuntu Advantage/Pro** checkbox to include the Ubuntu Pro parameters in the pack configuration file. + +9. Toggle options on or off to enable or disable the various Ubuntu Pro services. + +10. Click the **Next layer** button to continue to the next layer. + +11. Complete the remainder of the cluster profile creation wizard by selecting the next cluster profile layers. + + + + + + +To use the Ubuntu OS pack, add the pack to your cluster profile when you select the OS layer. Refer to the +guide to learn more. + +#### Add Custom Files + +You can create custom files that you define in the `files` section that precedes the `preKubeadmCommands` and +`postKubeadmCommands` sections. The files are invoked during runtime. + +```yaml +kubeadmconfig: + files: + - targetPath: /usr/local/share/ca-certificates/mycom.crt + targetOwner: "root:root" + targetPermissions: "0644" + content: | + -----BEGIN CERTIFICATE----- + MIICyzCCAbOgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl + cm5ldGVzMB4XDTIwMDkyMjIzNDMyM1oXDTMwMDkyMDIzNDgyM1owFTETMBEGA1UE + AxMKa3ViZXJuZXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdA + nZYs1el/6f9PgV/aO9mzy7MvqaZoFnqO7Qi4LZfYzixLYmMUzi+h8/RLPFIoYLiz + qiDn+P8c9I1uxB6UqGrBt7dkXfjrUZPs0JXEOX9U/6GFXL5C+n3AUlAxNCS5jobN + fbLt7DH3WoT6tLcQefTta2K+9S7zJKcIgLmBlPNDijwcQsbenSwDSlSLkGz8v6N2 + 7SEYNCV542lbYwn42kbcEq2pzzAaCqa5uEPsR9y+uzUiJpv5tDHUdjbFT8tme3vL + 9EdCPODkqtMJtCvz0hqd5SxkfeC2L+ypaiHIxbwbWe7GtliROvz9bClIeGY7gFBK + jZqpLdbBVjo0NZBTJFUCAwEAAaMmMCQwDgYDVR0PAQH/BAQDAgKkMBIGA1UdEwEB + /wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBADIKoE0P+aVJGV9LWGLiOhki + HFv/vPPAQ2MPk02rLjWzCaNrXD7aPPgT/1uDMYMHD36u8rYyf4qPtB8S5REWBM/Y + g8uhnpa/tGsaqO8LOFj6zsInKrsXSbE6YMY6+A8qvv5lPWpJfrcCVEo2zOj7WGoJ + ixi4B3fFNI+wih8/+p4xW+n3fvgqVYHJ3zo8aRLXbXwztp00lXurXUyR8EZxyR+6 + b+IDLmHPEGsY9KOZ9VLLPcPhx5FR9njFyXvDKmjUMJJgUpRkmsuU1mCFC+OHhj56 + IkLaSJf6z/p2a3YjTxvHNCqFMLbJ2FvJwYCRzsoT2wm2oulnUAMWPI10vdVM+Nc= + -----END CERTIFICATE----- + preKubeadmCommands: + - echo "Executing pre kube admin config commands" + - update-ca-certificates + - "systemctl restart containerd; sleep 3" + - 'while [ ! -S /var/run/containerd/containerd.sock ]; do echo "Waiting for containerd..."; sleep 1; done' + postKubeadmCommands: + - echo "Executing post kube admin config commands" +``` + +In the next example, a configuration file is added to a folder. + +```yaml +kubeadmconfig: + files: + - targetPath: /etc/containerd/config.toml + targetOwner: "root:root" + targetPermissions: "0644" + content: | + ## template: jinja + + # Use config version 2 to enable new configuration fields. + # Config file is parsed as version 1 by default. + version = 2 + + imports = ["/etc/containerd/conf.d/*.toml"] + + [plugins] + [plugins."io.containerd.grpc.v1.cri"] + sandbox_image = "registry.k8s.io/pause:3.9" + device_ownership_from_security_context = true + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] + runtime_type = "io.containerd.runc.v2" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] + SystemdCgroup = true + preKubeadmCommands: + - 'echo "====> Applying pre Kubeadm commands"' + postKubeadmCommands: + - 'echo "====> Applying post Kubeadm commands"' +``` + +### Ubuntu Pro + +Ubuntu Pro is a security and maintenance subscription offering from Canonical that offers long-term security support and +many other security hardening features. Ubuntu Pro offers several more benefits than the free Ubuntu offering: + +- Extended Security Maintenance + +- Kernel Livepatch service to avoid reboots + +- FIPS 140-2 Level 1 certified crypto modules + +- Common Criteria EAL2 + +For more information, refer to the [Ubuntu Pro](https://ubuntu.com/pro) documentation from Canonical. + +You can enable Ubuntu Pro when deploying clusters with Palette. To enable Ubuntu Pro, select Ubuntu as the OS for a +cluster profile and expand the **Preset Menu** to reveal the Ubuntu Pro parameters. + +| Parameter | Description | Default Value | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | +| **token** | The Canonical subscription token for Ubuntu Pro. Refer to the Ubuntu Pro [subscribe page](https://ubuntu.com/pro/subscribe) to aquire a subscription token. | `""` | +| **esm-apps** | Expanded Security Maintenance (ESM) for Applications. Refer to the Ubuntu [ESM documentation](https://ubuntu.com/security/esm) to learn more. | Disabled | +| **livepatch** | Canonical Livepatch service. Refer to the Ubuntu [Livepatch](https://ubuntu.com/security/livepatch) documenation for more details. | Disabled | +| **fips** | Federal Information Processing Standards (FIPS) 140 validated cryptography for Linux workloads on Ubuntu. This installs NIST-certified core packages. Refer to the Ubuntu [FIPS](https://ubuntu.com/security/certifications/docs/2204) documentation to learn more. | Disabled | +| **fips-updates** | Install NIST-certified core packages with priority security updates. Refer to the Ubuntu [FIPS Updates](https://ubuntu.com/security/certifications/docs/fips-updates) documentation to learn more. | Disabled | +| **cis** | Gain access to OpenSCAP-based tooling that automates both hardening and auditing with certified content based on published CIS benchmarks. Refer to the Ubuntu [CIS](https://ubuntu.com/security/certifications/docs/2204/usg/cis) documentation to learn more. | Disabled | + +Use the following steps to enable Ubuntu Pro. + +1. Log in to [Palette](https://console.spectrocloud.com). + +2. Navigate to the left **Main Menu** and select **Profiles**. + +3. Click on **Add Cluster Profile**. + +4. Fill out the input fields for **Name**, **Version**, **Description**, **Type** and **Tags**. Click on **Next** to + continue. + +5. Select the infrastructure provider and click on **Next**. + +6. Select the OS layer and use the following information to find the Ubuntu pack: + +- **Pack Type** - OS + +- **Registry** - Public Repo + +- **Pack Name** -Ubuntu + +- **Pack Version** - 20.04 or 22.04 + +7. Modify the Ubuntu **Pack values** to activate the **Presets** options for the Ubuntu YAML file. Click on the + **\** button to reveal the YAML editor and expand the **Preset Drawer**. + +![A view of the cluster profile creation wizard for Ubuntu Pro](/integrations_ubuntu_ubuntu-pro-preset-drawer.webp) + +8. Click the **Ubuntu Advantage/Pro** checkbox to include the Ubuntu Pro parameters in the pack configuration file. + +9. Toggle options on or off to enable or disable the various Ubuntu Pro services. + +10. Click the **Next layer** button to continue to the next layer. + +11. Complete the remainder of the cluster profile creation wizard by selecting the next cluster profile layers. + + + diff --git a/docs/docs-content/integrations/edge-native-ubuntu.md b/docs/docs-content/integrations/edge-native-ubuntu.md new file mode 100644 index 0000000000..074f930093 --- /dev/null +++ b/docs/docs-content/integrations/edge-native-ubuntu.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "edge-native-ubuntu" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/kubernetes.md b/docs/docs-content/integrations/kubernetes.md index 86bd118e3d..5d50c35843 100644 --- a/docs/docs-content/integrations/kubernetes.md +++ b/docs/docs-content/integrations/kubernetes.md @@ -77,45 +77,10 @@ four months. Once we stop supporting the minor version, we initiate the deprecat ## Versions Supported - + -## Prerequisites - -- A minimum of 4 CPU and 4 GB Memory. - -- Operating System (OS) dependencies as listed in the table. - - | OS Distribution | OS Version | Supports Kubernetes 1.29.x | - | --------------- | ---------- | -------------------------- | - | CentOS | 7.7 | ✅ | - | Ubuntu | 22.04 | ✅ | - | Ubuntu | 20.04 | ❌ | - | Ubuntu | 18.04 | ❌ | - -## Parameters - -| Parameter | Description | -| ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `pack.podCIDR` | The CIDR range for Pods in the cluster. This should match the networking layer property. Default: `192.168.0.0/16` | -| `pack.serviceClusterIpRange` | The CIDR range for services in the cluster. This should not overlap with any IP ranges assigned to nodes or pods. Default: `10.96.0.0/12` | -| `pack.serviceDomain` | The cluster DNS service domain. Default: `cluster.local`. To change the default, you must add this parameter to the Kubernetes YAML file at cluster creation and specify the cluster DNS service domain to use. This value cannot be changed after cluster creation is complete. Refer to the [Change Cluster DNS Service Domain](kubernetes.md?versions=k8s_v1.27#change-cluster-dns-service-domain) section. | -| `pack.palette.config.dashboard.identityProvider` | Dynamically enabled OpenID Connect (OIDC) Identity Provider (IDP) setting based on your UI selection when you add the PXK pack to your profile. This parameter appears in the YAML file after you make a selection. Refer to [Configure OIDC Identity Provider](kubernetes.md#configure-oidc-identity-provider). | -| `kubeadmconfig.apiServer.extraArgs` | A list of additional apiServer flags you can set. | -| `kubeadmconfig.apiServer.extraVolumes` | A list of additional volumes to mount on the apiServer. | -| `kubeadmconfig.controllerManager.extraArgs` | A list of additional ControllerManager flags to set. | -| `kubeadmconfig.scheduler.extraArgs` | A list of additional Kube scheduler flags to set. | -| `kubeadmconfig.kubeletExtraArgs` | A list of kubelet arguments to set and copy to the nodes. | -| `kubeadmconfig.files` | A list of additional files to copy to the nodes. | -| `kubeadmconfig.preKubeadmCommands` | A list of additional commands to invoke **before** running kubeadm commands. | -| `kubeadmconfig.postKubeadmCommands` | A list of additional commands to invoke **after** running kubeadm commands. | -| `kubeadmconfig.clientConfig` | Settings to manually configure OIDC-based authentication when you choose a third-party (Custom) IDP. Refer to [Configure Custom OIDC](#configure-custom-oidc). | -| `cloud.maas.customEndpoint` | The custom MAAS API or DNS endpoint URL to use for the PXK cluster. This parameter is only available for MAAS. | -| `cloud.maas.customEndpointPort` | The custom MAAS API or DNS endpoint port to use for the PXK cluster. This parameter is only available for MAAS. Default value is `6443`. | - -## Usage - The Kubeadm configuration file is where you can do the following: - Change the default `podCIDR` and `serviceClusterIpRange` values. CIDR IPs specified in the configuration file take @@ -449,40 +414,6 @@ cloud: -## Prerequisites - -- A minimum of 4 CPU and 4 GB Memory. - -- Operating System (OS) dependencies as listed in the table. - - | OS Distribution | OS Version | Supports Kubernetes 1.28.x | - | --------------- | ---------- | -------------------------- | - | CentOS | 7.7 | ✅ | - | Ubuntu | 22.04 | ✅ | - | Ubuntu | 20.04 | ❌ | - -## Parameters - -| Parameter | Description | -| ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `pack.podCIDR` | The CIDR range for Pods in the cluster. This should match the networking layer property. Default: `192.168.0.0/16` | -| `pack.serviceClusterIpRange` | The CIDR range for services in the cluster. This should not overlap with any IP ranges assigned to nodes or pods. Default: `10.96.0.0/12` | -| `pack.serviceDomain` | The cluster DNS service domain. Default: `cluster.local`. To change the default, you must add this parameter to the Kubernetes YAML file at cluster creation and specify the cluster DNS service domain to use. This value cannot be changed after cluster creation is complete. Refer to the [Change Cluster DNS Service Domain](kubernetes.md?versions=k8s_v1.27#change-cluster-dns-service-domain) section. | -| `pack.palette.config.dashboard.identityProvider` | Dynamically enabled OpenID Connect (OIDC) Identity Provider (IDP) setting based on your UI selection when you add the PXK pack to your profile. This parameter appears in the YAML file after you make a selection. Refer to [Configure OIDC Identity Provider](kubernetes.md#configure-oidc-identity-provider). | -| `kubeadmconfig.apiServer.extraArgs` | A list of additional apiServer flags you can set. | -| `kubeadmconfig.apiServer.extraVolumes` | A list of additional volumes to mount on the apiServer. | -| `kubeadmconfig.controllerManager.extraArgs` | A list of additional ControllerManager flags to set. | -| `kubeadmconfig.scheduler.extraArgs` | A list of additional Kube scheduler flags to set. | -| `kubeadmconfig.kubeletExtraArgs` | A list of kubelet arguments to set and copy to the nodes. | -| `kubeadmconfig.files` | A list of additional files to copy to the nodes. | -| `kubeadmconfig.preKubeadmCommands` | A list of additional commands to invoke **before** running kubeadm commands. | -| `kubeadmconfig.postKubeadmCommands` | A list of additional commands to invoke **after** running kubeadm commands. | -| `kubeadmconfig.clientConfig` | Settings to manually configure OIDC-based authentication when you choose a third-party (Custom) IDP. Refer to [Configure Custom OIDC](#configure-custom-oidc). | -| `cloud.maas.customEndpoint` | The custom MAAS API or DNS endpoint URL to use for the PXK cluster. This parameter is only available for MAAS. | -| `cloud.maas.customEndpointPort` | The custom MAAS API or DNS endpoint port to use for the PXK cluster. This parameter is only available for MAAS. Default value is `6443`. | - -## Usage - The Kubeadm configuration file is where you can do the following: - Change the default `podCIDR` and `serviceClusterIpRange` values. CIDR IPs specified in the configuration file take @@ -816,38 +747,6 @@ cloud: -## Prerequisites - -- A minimum of 4 CPU and 4 GB Memory. - -- Operating System (OS) dependencies as listed in the table. - - | OS Distribution | OS Version | Supports Kubernetes 1.27.x | - | --------------- | ---------- | -------------------------- | - | CentOS | 7.7 | ✅ | - | Ubuntu | 22.04 | ✅ | - | Ubuntu | 20.04 | ❌ | - -## Parameters - -| Parameter | Description | -| ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `pack.podCIDR` | The CIDR range for Pods in the cluster. This should match the networking layer property. Default: `192.168.0.0/16` | -| `pack.serviceClusterIpRange` | The CIDR range for services in the cluster. This should not overlap with any IP ranges assigned to nodes or pods. Default: `10.96.0.0/12` | -| `pack.serviceDomain` | The cluster DNS service domain. Default: `cluster.local`. To change the default, you must add this parameter to the Kubernetes YAML file at cluster creation and specify the cluster DNS service domain to use. This value cannot be changed after cluster creation is complete. Refer to the [Change Cluster DNS Service Domain](kubernetes.md?versions=k8s_v1.27#change-cluster-dns-service-domain) section. | -| `pack.palette.config.dashboard.identityProvider` | Dynamically enabled OpenID Connect (OIDC) Identity Provider (IDP) setting based on your UI selection when you add the PXK pack to your profile. This parameter appears in the YAML file after you make a selection. Refer to [Configure OIDC Identity Provider](kubernetes.md#configure-oidc-identity-provider). | -| `kubeadmconfig.apiServer.extraArgs` | A list of additional apiServer flags you can set. | -| `kubeadmconfig.apiServer.extraVolumes` | A list of additional volumes to mount on the apiServer. | -| `kubeadmconfig.controllerManager.extraArgs` | A list of additional ControllerManager flags to set. | -| `kubeadmconfig.scheduler.extraArgs` | A list of additional Kube scheduler flags to set. | -| `kubeadmconfig.kubeletExtraArgs` | A list of kubelet arguments to set and copy to the nodes. | -| `kubeadmconfig.files` | A list of additional files to copy to the nodes. | -| `kubeadmconfig.preKubeadmCommands` | A list of additional commands to invoke **before** running kubeadm commands. | -| `kubeadmconfig.postKubeadmCommands` | A list of additional commands to invoke **after** running kubeadm commands. | -| `kubeadmconfig.clientConfig` | Settings to manually configure OIDC-based authentication when you choose a third-party (Custom) IDP. Refer to [Configure Custom OIDC](#configure-custom-oidc). | - -## Usage - The Kubeadm configuration file is where you can do the following: - Change the default `podCIDR` and `serviceClusterIpRange` values. CIDR IPs specified in the configuration file take @@ -1151,16 +1050,6 @@ In this example, Palette is used as the IDP, and all users in the `dev-east-2` w ![A subject of the type group is assigned as the subject in a RoleBinding](/clusters_cluster-management_cluster-rbac_cluster-subject-group.webp) - - - - -:::warning - -All versions less than v1.27.x are considered deprecated. Upgrade to a newer version to take advantage of new features. - -::: - @@ -1180,13 +1069,3 @@ data "spectrocloud_pack_simple" "k8s" { registry_uid = data.spectrocloud_registry.public_registry.id } ``` - -## Resources - -- [Kubernetes](https://kubernetes.io/) - -- [Kubernetes Documentation](https://kubernetes.io/docs/concepts/overview/) - -- [Image Swap with Palette](../clusters/cluster-management/image-swap.md) - -- [RHEL and PXK for Vmware](../byoos/usecases/vmware/rhel-pxk.md) diff --git a/docs/docs-content/integrations/rke2.md b/docs/docs-content/integrations/rke2.md index 2fe9338321..e4a533c5ae 100644 --- a/docs/docs-content/integrations/rke2.md +++ b/docs/docs-content/integrations/rke2.md @@ -178,8 +178,9 @@ data "spectrocloud_pack_simple" "k8s" { ## Troubleshooting + - When using Vault with the RKE2 distribution of Kubernetes in Palette Edge, you must explicitly specify a storage class - for the Vault server. Refer to [the Vault pack page](./vault.md#parameters) for details. + for the Vault server. Refer to the page for details. ## Resources diff --git a/docs/docs-content/integrations/spectro-proxy.md b/docs/docs-content/integrations/spectro-proxy.md index f4f7aa92dd..182d6f98ed 100644 --- a/docs/docs-content/integrations/spectro-proxy.md +++ b/docs/docs-content/integrations/spectro-proxy.md @@ -129,8 +129,7 @@ endpoints. The user is in a different network than the cluster. ![Private cluster in a different network.](/integrations_frp_conection_private-different-network.webp) Depending on what type of infrastructure provider you are deploying the host cluster in, you may have to specify the -Spectro Proxy server's SSL certificate in the Kubernetes cluster's configuration. Refer to the [Usage](#usage) section -below for more information. +Spectro Proxy server's SSL certificate in the Kubernetes cluster's configuration.
diff --git a/docs/docs-content/integrations/ubuntu-aks.md b/docs/docs-content/integrations/ubuntu-aks.md new file mode 100644 index 0000000000..96d64d6f67 --- /dev/null +++ b/docs/docs-content/integrations/ubuntu-aks.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "ubuntu-aks" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/ubuntu-aws.md b/docs/docs-content/integrations/ubuntu-aws.md new file mode 100644 index 0000000000..cd41fcdac6 --- /dev/null +++ b/docs/docs-content/integrations/ubuntu-aws.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "ubuntu-aws" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/ubuntu-azure.md b/docs/docs-content/integrations/ubuntu-azure.md new file mode 100644 index 0000000000..755d393670 --- /dev/null +++ b/docs/docs-content/integrations/ubuntu-azure.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "ubuntu-azure" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/ubuntu-edge.md b/docs/docs-content/integrations/ubuntu-edge.md new file mode 100644 index 0000000000..4593d857b6 --- /dev/null +++ b/docs/docs-content/integrations/ubuntu-edge.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "ubuntu-edge" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/ubuntu-gcp.md b/docs/docs-content/integrations/ubuntu-gcp.md new file mode 100644 index 0000000000..bd814978f4 --- /dev/null +++ b/docs/docs-content/integrations/ubuntu-gcp.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "ubuntu-gcp" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/ubuntu-libvirt.md b/docs/docs-content/integrations/ubuntu-libvirt.md new file mode 100644 index 0000000000..6a71090c54 --- /dev/null +++ b/docs/docs-content/integrations/ubuntu-libvirt.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "ubuntu-libvirt" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/ubuntu-maas.md b/docs/docs-content/integrations/ubuntu-maas.md new file mode 100644 index 0000000000..8228f87911 --- /dev/null +++ b/docs/docs-content/integrations/ubuntu-maas.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "ubuntu-maas" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/ubuntu-openstack.md b/docs/docs-content/integrations/ubuntu-openstack.md new file mode 100644 index 0000000000..c4d26b25e6 --- /dev/null +++ b/docs/docs-content/integrations/ubuntu-openstack.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "ubuntu-openstack" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/ubuntu-vsphere.md b/docs/docs-content/integrations/ubuntu-vsphere.md new file mode 100644 index 0000000000..4a5fdd0158 --- /dev/null +++ b/docs/docs-content/integrations/ubuntu-vsphere.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Ubuntu" +title: "Ubuntu" +description: "Choose Ubuntu Operating System pack in Palette." +hide_table_of_contents: true +type: "integration" +category: ["operating system", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" +tags: ["packs", "ubuntu", "operating system"] +--- + + + +## Terraform + +You can reference Ubuntu in Terraform with the following code snippet. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "ubuntu" { + name = "ubuntu-vsphere" + version = "22.04" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/ubuntu.md b/docs/docs-content/integrations/ubuntu.md deleted file mode 100644 index 4b2e2905b6..0000000000 --- a/docs/docs-content/integrations/ubuntu.md +++ /dev/null @@ -1,790 +0,0 @@ ---- -sidebar_label: "Ubuntu" -title: "Ubuntu" -description: "Choose Ubuntu Operating System pack in Palette." -hide_table_of_contents: true -type: "integration" -category: ["operating system", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/ubuntu-vsphere/blobs/sha256:09a727f9005b79c69d8e60e12ce130880c63131315b49e7fb4cc44e53d34dc7a?type=image.webp" -tags: ["packs", "ubuntu", "operating system"] ---- - -[Ubuntu](https://ubuntu.com) is an open-source operating system based on the Linux kernel. Developed by Canonical Ltd., -Ubuntu is a popular choice for desktops, servers, and cloud environments due to its ease of use, robustness, and -versatility. - -Boasting a comprehensive package system, Ubuntu provides a wealth of pre-compiled software directly accessible for -installation. With its regular release cycle, Ubuntu ensures updated software and security patches, making it a secure -and reliable choice for various use cases. - -In addition to its stability, Ubuntu's community support, extensive documentation, and commitment to free software -principles make it a widely favored choice among Linux distributions. - -You can use Ubuntu as the base Operating System (OS) when deploying a host cluster by using the Ubuntu pack when you -create a cluster profile. For guidance, review -[Create an Infrastructure Profile](../profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md). - -
- -:::info - -Review [Maintenance Policy](maintenance-policy.md#os-packs) to learn about pack update and deprecation schedules. - -::: - -## Version Supported - -
- - - - -### Prerequisites - -- A minimum of 4 CPU and 4GB Memory - -- You can use Ubuntu with a supported Kubernetes version. The table lists Kubernetes dependencies. - -| Kubernetes Version | Supports Kubernetes | -| ------------------ | ------------------- | -| 1.29 | ✅ | -| 1.28 | ✅ | -| 1.27 | ✅ | -| 1.26 | ✅ | -| 1.25 | ✅ | -| 1.24 | ❌ | - -### Parameters - -The Ubuntu OS pack has no required parameters. - -You can customize the Ubuntu OS pack. The following configuration blocks are available for use within the -`kubeadmconfig` configuration block in the YAML file. - -
- -:::info - -Palette applies a default set of configuration options when deploying Ubuntu. You can override the defaults -configurations by using the following parameters but it's not required. - -::: - -| Field | Description | YAML Type | Required | -| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | -------- | -| `apiServer` | Extra settings for the Kube API server control plane component. Refer to [Kube API server](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/) documentation for available options. | object | No | -| `controllerManager` | Extra settings for the Kubernetes controller manager control plane component. Review the [Kubernetes controller manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/) documentation for more information. | object | No | -| `scheduler` | Extra settings for the Kubernetes scheduler control plane component. Refer to the [Kube scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler) documenation for more details. | object | No | -| `kubeletExtraArgs` | Extra arguments for kubelet. Refer to the [Kubeadm init](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init) documentation for more details. | map | No | -| `files` | Create or specify additional files for the `kubeadmconfig`. Refer to the [Customize Pack](#customize-pack) section to learn more. | list | No | -| `preKubeadmCommands` | Extra commands to issue before kubeadm starts. | list | No | -| `postKubeadmCommands` | Extra commands to issue after kubeadm starts. | list | No | -| `imageRepository` | The container registry to pull images from. If empty, `k8s.gcr.io` will be used by default. | string | No | -| `etcd` | Configuration for etcd. This value defaults to a Local (stacked) etcd. You can specify configurations using [local etcd configuration files](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/), or you can reference [external etcd configurations](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability) or Certificate Authorities (CA). | object | No | -| `dns` | Options for the DNS add-on installed in the cluster. Refer to the [Customizing DNS Service](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) to learn more. | object | No | - -The following code snippet is an example YAML using all the `kubeadmconfig` parameters listed in the table. The example -YAML is only for learning purposes. - -
- -```yaml -kubeadmconfig: - apiServer: - extraArgs: - secure-port: "6443" - anonymous-auth: "true" - insecure-port: "0" - profiling: "false" - disable-admission-plugins: "AlwaysAdmit" - enable-admission-plugins: "AlwaysPullImages,NamespaceLifecycle,ServiceAccount,NodeRestriction,PodSecurityPolicy" - audit-log-path: /var/log/apiserver/audit.log - audit-policy-file: /etc/kubernetes/audit-policy.yaml - audit-log-maxage: "30" - audit-log-maxbackup: "10" - audit-log-maxsize: "100" - authorization-mode: RBAC,Node - tls-cipher-suites: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256" - extraVolumes: - - name: audit-log - hostPath: /var/log/apiserver - mountPath: /var/log/apiserver - pathType: DirectoryOrCreate - - name: audit-policy - hostPath: /etc/kubernetes/audit-policy.yaml - mountPath: /etc/kubernetes/audit-policy.yaml - readOnly: true - pathType: File - controllerManager: - extraArgs: - profiling: "false" - terminated-pod-gc-threshold: "25" - use-service-account-credentials: "true" - feature-gates: "RotateKubeletServerCertificate=true" - scheduler: - extraArgs: - profiling: "false" - dns: - type: CoreDNS - imageRepository: public.ecr.aws/eks-distro/coredns - imageTag: v1.7.0-eks-1-18-1 - etcd: - local: - dataDir: /var/lib/etcd - imageRepository: public.ecr.aws/eks-distro/etcd-io - imageTag: v3.4.14-eks-1-18-1 - external: - endpoints: - - example.org - caFile: myCa.file - certFile: myCert.file - keyFile: myKey.file - imageRepository: public.ecr.aws/eks-distro/kubernetes - kubeletExtraArgs: - read-only-port: "0" - event-qps: "0" - feature-gates: "RotateKubeletServerCertificate=true" - protect-kernel-defaults: "true" - tls-cipher-suites: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256" - files: - - path: hardening/audit-policy.yaml - targetPath: /etc/kubernetes/audit-policy.yaml - targetOwner: "root:root" - targetPermissions: "0600" - - path: hardening/privileged-psp.yaml - targetPath: /etc/kubernetes/hardening/privileged-psp.yaml - targetOwner: "root:root" - targetPermissions: "0600" - - path: hardening/90-kubelet.conf - targetPath: /etc/sysctl.d/90-kubelet.conf - targetOwner: "root:root" - targetPermissions: "0600" - - preKubeadmCommands: - # For enabling 'protect-kernel-defaults' flag to kubelet, kernel parameters changes are required - - 'echo "====> Applying kernel parameters for Kubelet"' - - "sysctl -p /etc/sysctl.d/90-kubelet.conf" - postKubeadmCommands: - # Apply the privileged PodSecurityPolicy on the first control plane node ; Otherwise, CNI (and other) pods won't come up - - "export KUBECONFIG=/etc/kubernetes/admin.conf" - # Sometimes api server takes a little longer to respond. Retry if applying the pod-security-policy manifest fails - - '[ -f "$KUBECONFIG" ] && { echo " ====> Applying PodSecurityPolicy" ; until $(kubectl apply -f - /etc/kubernetes/hardening/privileged-psp.yaml > /dev/null ); do echo "Failed to apply PodSecurityPolicies, will - retry in 5s" ; sleep 5 ; done ; } || echo "Skipping PodSecurityPolicy for worker nodes"' -``` - -
- -:::warning - -Review the parameter documentation before you make changes to the kubeadm configuration. Improper configurations can -cause deployment failures. - -::: - -Palette also supports Ubuntu Pro. Refer to the [Ubuntu Pro](#ubuntu-pro) section below for more details. - -
- -### Usage - -To use the Ubuntu OS pack, add the pack to your cluster profile when you select the OS layer. Refer to the -[Create an Infrastructure Profile](../profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md) -guide to learn more. - -
- -#### Customize Pack - -You can customize the Ubuntu OS pack using the available configuration parameters in the YAML file. Use the parameters -to customize the Kubernetes install process. - -
- -##### Add Custom Files - -You can create custom files that you define in the `files` section that precedes the `preKubeadmCommands` and -`postKubeadmCommands` sections. The files are invoked during runtime. - -
- -```yaml -kubeadmconfig: - files: - - targetPath: /usr/local/share/ca-certificates/mycom.crt - targetOwner: "root:root" - targetPermissions: "0644" - content: | - -----BEGIN CERTIFICATE----- - MIICyzCCAbOgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl - cm5ldGVzMB4XDTIwMDkyMjIzNDMyM1oXDTMwMDkyMDIzNDgyM1owFTETMBEGA1UE - AxMKa3ViZXJuZXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdA - nZYs1el/6f9PgV/aO9mzy7MvqaZoFnqO7Qi4LZfYzixLYmMUzi+h8/RLPFIoYLiz - qiDn+P8c9I1uxB6UqGrBt7dkXfjrUZPs0JXEOX9U/6GFXL5C+n3AUlAxNCS5jobN - fbLt7DH3WoT6tLcQefTta2K+9S7zJKcIgLmBlPNDijwcQsbenSwDSlSLkGz8v6N2 - 7SEYNCV542lbYwn42kbcEq2pzzAaCqa5uEPsR9y+uzUiJpv5tDHUdjbFT8tme3vL - 9EdCPODkqtMJtCvz0hqd5SxkfeC2L+ypaiHIxbwbWe7GtliROvz9bClIeGY7gFBK - jZqpLdbBVjo0NZBTJFUCAwEAAaMmMCQwDgYDVR0PAQH/BAQDAgKkMBIGA1UdEwEB - /wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBADIKoE0P+aVJGV9LWGLiOhki - HFv/vPPAQ2MPk02rLjWzCaNrXD7aPPgT/1uDMYMHD36u8rYyf4qPtB8S5REWBM/Y - g8uhnpa/tGsaqO8LOFj6zsInKrsXSbE6YMY6+A8qvv5lPWpJfrcCVEo2zOj7WGoJ - ixi4B3fFNI+wih8/+p4xW+n3fvgqVYHJ3zo8aRLXbXwztp00lXurXUyR8EZxyR+6 - b+IDLmHPEGsY9KOZ9VLLPcPhx5FR9njFyXvDKmjUMJJgUpRkmsuU1mCFC+OHhj56 - IkLaSJf6z/p2a3YjTxvHNCqFMLbJ2FvJwYCRzsoT2wm2oulnUAMWPI10vdVM+Nc= - -----END CERTIFICATE----- - preKubeadmCommands: - - echo "Executing pre kube admin config commands" - - update-ca-certificates - - "systemctl restart containerd; sleep 3" - - 'while [ ! -S /var/run/containerd/containerd.sock ]; do echo "Waiting for containerd..."; sleep 1; done' - postKubeadmCommands: - - echo "Executing post kube admin config commands" -``` - -In the next example, a configuration file is added to a folder. - -
- -```yaml -kubeadmconfig: - files: - - targetPath: /etc/containerd/config.toml - targetOwner: "root:root" - targetPermissions: "0644" - content: | - version = 2 - imports = ["/etc/containerd/conf.d/*.toml"] - [plugins] - [plugins."io.containerd.grpc.v1.cri"] - sandbox_image = "registry.k8s.io/pause:3.9" - device_ownership_from_security_context = true - [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] - runtime_type = "io.containerd.runc.v2" - [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] - SystemdCgroup = true - preKubeadmCommands: - - 'echo "====> Applying pre Kubeadm commands"' - postKubeadmCommands: - - 'echo "====> Applying post Kubeadm commands"' -``` - -#### Ubuntu Pro - -Ubuntu Pro is a security and maintenance subscription offering from Canonical that offers long-term security support and -many other security hardening features. Ubuntu Pro offers several more benefits than the free Ubuntu offering: - -
- -- Extended Security Maintenance - -- Kernel Livepatch service to avoid reboots - -- FIPS 140-2 Level 1 certified crypto modules - -- Common Criteria EAL2 - -For more information, refer to the [Ubuntu Pro](https://ubuntu.com/pro) documentation from Canonical. - -You can enable Ubuntu Pro when deploying clusters with Palette. To enable Ubuntu Pro, select Ubuntu as the OS layer for -a cluster profile and expand the **Preset Menu** to reveal the Ubuntu Pro parameters. - -| Parameter | Description | Default Value | -| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -| **token** | The Canonical subscription token for Ubuntu Pro. Refer to the Ubuntu Pro [subscribe page](https://ubuntu.com/pro/subscribe) to aquire a subscription token. | `""` | -| **esm-apps** | Expanded Security Maintenance (ESM) for Applications. Refer to the Ubuntu [ESM documentation](https://ubuntu.com/security/esm) to learn more. | Disabled | -| **livepatch** | Canonical Livepatch service. Refer to the Ubuntu [Livepatch](https://ubuntu.com/security/livepatch) documenation for more details. | Disabled | -| **fips** | Federal Information Processing Standards (FIPS) 140 validated cryptography for Linux workloads on Ubuntu. This installs NIST-certified core packages. Refer to the Ubuntu [FIPS](https://ubuntu.com/security/certifications/docs/2204) documentation to learn more. | Disabled | -| **fips-updates** | Install NIST-certified core packages with priority security updates. Refer to the Ubuntu [FIPS Updates](https://ubuntu.com/security/certifications/docs/fips-updates) documentation to learn more. | Disabled | -| **cis** | Gain access to OpenSCAP-based tooling that automates both hardening and auditing with certified content based on published CIS benchmarks. Refer to the Ubuntu [CIS](https://ubuntu.com/security/certifications/docs/2204/usg/cis) documentation to learn more. | Disabled | - -Use the following steps to enable Ubuntu Pro. - -
- -1. Log in to [Palette](https://console.spectrocloud.com). - -2. Navigate to the left **Main Menu** and select **Profiles**. - -3. Click on **Add Cluster Profile**. - -4. Fill out the input fields for **Name**, **Version**, **Description**, **Type** and **Tags**. Click on **Next** to - continue. - -5. Select the infrastructure provider and click on **Next**. - -6. Select the OS layer and use the following information to find the Ubuntu pack: - -- **Pack Type** - OS - -- **Registry** - Public Repo - -- **Pack Name** -Ubuntu - -- **Pack Version** - 20.04 or 22.04 - -7. Modify the Ubuntu **Pack values** to activate the **Presets** options for the Ubuntu YAML file. Click on the - **\** button to reveal the YAML editor and expand the **Preset Drawer**. - -
- -![A view of the cluster profile creation wizard for Ubuntu Pro](/integrations_ubuntu_ubuntu-pro-preset-drawer.webp) - -8. Click the **Ubuntu Advantage/Pro** checkbox to include the Ubuntu Pro parameters in the pack configuration file. - -9. Toggle options on or off to enable or disable the various Ubuntu Pro services. - -10. Click the **Next layer** button to continue to the next layer. - -11. Complete the remainder of the cluster profile creation wizard by selecting the next cluster profile layers. - -
- -
- - -## Prerequisites - -- A minimum of 4 CPU and 4GB Memory - -- You can use Ubuntu with a supported Kubernetes version. The table lists Kubernetes dependencies. - -| Kubernetes Version | Supports Kubernetes | -| ------------------ | ------------------- | -| 1.26 | ❌ | -| 1.25 | ❌ | -| 1.24 | ✅ | -| 1.23 | ✅ | - -
- -## Parameters - -The Ubuntu OS pack has no required parameters. - -You can customize the Ubuntu OS pack. The following configuration blocks are available for use within the -`kubeadmconfig` configuration block in the YAML file. - -
- -:::info - -Palette applies a default set of configuration options when deploying Ubuntu. You can override the defaults -configurations by using the following parameters but it's not required. - -::: - -| Field | Description | YAML Type | Required | -| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | -------------------- | -| `apiServer` | Extra settings for the Kube API server control plane component. Refer to [Kube API server](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/) documentation for available options. | object | No | -| `controllerManager` | Extra settings for the Kubernetes controller manager control plane component. Review the [Kubernetes controller manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/) documentation for more information. | object | No | -| `scheduler` | Extra settings for the Kubernetes scheduler control plane component. Refer to the [Kube scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler) documenation for more details. | object | No | -| `kubeletExtraArgs` | Extra arguments for kubelet. Refer to the [Kubeadm init](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init) documentation for more details. | map | No | -| `files` | Additional files to pass to kubeadmconfig. Refer to the [Customize Pack](#add-custom-files-1) section to learn more. | list | No | -| `preKubeadmCommands` | Extra commands to issue before kubeadm starts. | list | Yes - Auto generated | -| `postKubeadmCommands` | Extra commands to issue after kubeadm starts. | list | Yes - Auto generated | -| `imageRepository` | The container registry to pull images from. If empty, `k8s.gcr.io` will be used by default. | string | No | -| `etcd` | Configuration for etcd. This value defaults to a Local (stacked) etcd. You can specify configurations using [local etcd configuration files](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/), or you can reference [external etcd configurations](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability) or Certificate Authorities (CA). | object | No | -| `dns` | Options for the DNS add-on installed in the cluster. Refer to the [Customizing DNS Service](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) to learn more. | object | No | - -The following code snippet is an example YAML using all the `kubeadmconfig` parameters listed in the table. The example -YAML is only for learning purposes. - -
- -```yaml -kubeadmconfig: - apiServer: - extraArgs: - secure-port: "6443" - anonymous-auth: "true" - insecure-port: "0" - profiling: "false" - disable-admission-plugins: "AlwaysAdmit" - enable-admission-plugins: "AlwaysPullImages,NamespaceLifecycle,ServiceAccount,NodeRestriction,PodSecurityPolicy" - audit-log-path: /var/log/apiserver/audit.log - audit-policy-file: /etc/kubernetes/audit-policy.yaml - audit-log-maxage: "30" - audit-log-maxbackup: "10" - audit-log-maxsize: "100" - authorization-mode: RBAC,Node - tls-cipher-suites: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256" - extraVolumes: - - name: audit-log - hostPath: /var/log/apiserver - mountPath: /var/log/apiserver - pathType: DirectoryOrCreate - - name: audit-policy - hostPath: /etc/kubernetes/audit-policy.yaml - mountPath: /etc/kubernetes/audit-policy.yaml - readOnly: true - pathType: File - controllerManager: - extraArgs: - profiling: "false" - terminated-pod-gc-threshold: "25" - use-service-account-credentials: "true" - feature-gates: "RotateKubeletServerCertificate=true" - scheduler: - extraArgs: - profiling: "false" - dns: - type: CoreDNS - imageRepository: public.ecr.aws/eks-distro/coredns - imageTag: v1.7.0-eks-1-18-1 - etcd: - local: - dataDir: /var/lib/etcd - imageRepository: public.ecr.aws/eks-distro/etcd-io - imageTag: v3.4.14-eks-1-18-1 - external: - endpoints: - - example.org - caFile: myCa.file - certFile: myCert.file - keyFile: myKey.file - imageRepository: public.ecr.aws/eks-distro/kubernetes - kubeletExtraArgs: - read-only-port: "0" - event-qps: "0" - feature-gates: "RotateKubeletServerCertificate=true" - protect-kernel-defaults: "true" - tls-cipher-suites: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256" - files: - - path: hardening/audit-policy.yaml - targetPath: /etc/kubernetes/audit-policy.yaml - targetOwner: "root:root" - targetPermissions: "0600" - - path: hardening/privileged-psp.yaml - targetPath: /etc/kubernetes/hardening/privileged-psp.yaml - targetOwner: "root:root" - targetPermissions: "0600" - - path: hardening/90-kubelet.conf - targetPath: /etc/sysctl.d/90-kubelet.conf - targetOwner: "root:root" - targetPermissions: "0600" - - preKubeadmCommands: - # For enabling 'protect-kernel-defaults' flag to kubelet, kernel parameters changes are required - - 'echo "====> Applying kernel parameters for Kubelet"' - - "sysctl -p /etc/sysctl.d/90-kubelet.conf" - postKubeadmCommands: - # Apply the privileged PodSecurityPolicy on the first control plane node ; Otherwise, CNI (and other) pods won't come up - - "export KUBECONFIG=/etc/kubernetes/admin.conf" - # Sometimes api server takes a little longer to respond. Retry if applying the pod-security-policy manifest fails - - '[ -f "$KUBECONFIG" ] && { echo " ====> Applying PodSecurityPolicy" ; until $(kubectl apply -f - /etc/kubernetes/hardening/privileged-psp.yaml > /dev/null ); do echo "Failed to apply PodSecurityPolicies, will - retry in 5s" ; sleep 5 ; done ; } || echo "Skipping PodSecurityPolicy for worker nodes"' -``` - -
- -:::warning - -Review the parameter documentation before you make changes to the kubeadm configuration. Improper configurations can -cause deployment failures. - -::: - -Palette also supports Ubuntu Pro. Refer to the [Ubuntu Pro](#ubuntu-pro-1) section below for more details. - -
- -## Usage - -To use the Ubuntu OS pack, add the pack to your cluster profile when you select the OS layer. Refer to the -[Create Cluster Profile](../profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md) guide to learn -more about creating cluster profiles. - -
- -### Customize Pack - -You can customize the Ubuntu OS pack using the available configuration parameters in the YAML file. Use the parameters -to customize the Kubernetes install process. - -
- -#### Add Custom Files - -You can create custom files that you define in the `files` section that precedes the `preKubeadmCommands` and -`postKubeadmCommands` sections. The files are invoked during runtime. - -
- -```yaml -kubeadmconfig: - files: - - targetPath: /usr/local/share/ca-certificates/mycom.crt - targetOwner: "root:root" - targetPermissions: "0644" - content: | - -----BEGIN CERTIFICATE----- - MIICyzCCAbOgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl - cm5ldGVzMB4XDTIwMDkyMjIzNDMyM1oXDTMwMDkyMDIzNDgyM1owFTETMBEGA1UE - AxMKa3ViZXJuZXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdA - nZYs1el/6f9PgV/aO9mzy7MvqaZoFnqO7Qi4LZfYzixLYmMUzi+h8/RLPFIoYLiz - qiDn+P8c9I1uxB6UqGrBt7dkXfjrUZPs0JXEOX9U/6GFXL5C+n3AUlAxNCS5jobN - fbLt7DH3WoT6tLcQefTta2K+9S7zJKcIgLmBlPNDijwcQsbenSwDSlSLkGz8v6N2 - 7SEYNCV542lbYwn42kbcEq2pzzAaCqa5uEPsR9y+uzUiJpv5tDHUdjbFT8tme3vL - 9EdCPODkqtMJtCvz0hqd5SxkfeC2L+ypaiHIxbwbWe7GtliROvz9bClIeGY7gFBK - jZqpLdbBVjo0NZBTJFUCAwEAAaMmMCQwDgYDVR0PAQH/BAQDAgKkMBIGA1UdEwEB - /wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBADIKoE0P+aVJGV9LWGLiOhki - HFv/vPPAQ2MPk02rLjWzCaNrXD7aPPgT/1uDMYMHD36u8rYyf4qPtB8S5REWBM/Y - g8uhnpa/tGsaqO8LOFj6zsInKrsXSbE6YMY6+A8qvv5lPWpJfrcCVEo2zOj7WGoJ - ixi4B3fFNI+wih8/+p4xW+n3fvgqVYHJ3zo8aRLXbXwztp00lXurXUyR8EZxyR+6 - b+IDLmHPEGsY9KOZ9VLLPcPhx5FR9njFyXvDKmjUMJJgUpRkmsuU1mCFC+OHhj56 - IkLaSJf6z/p2a3YjTxvHNCqFMLbJ2FvJwYCRzsoT2wm2oulnUAMWPI10vdVM+Nc= - -----END CERTIFICATE----- - preKubeadmCommands: - - echo "Executing pre kube admin config commands" - - update-ca-certificates - - "systemctl restart containerd; sleep 3" - - 'while [ ! -S /var/run/containerd/containerd.sock ]; do echo "Waiting for containerd..."; sleep 1; done' - postKubeadmCommands: - - echo "Executing post kube admin config commands" -``` - -In the next example, a configuration file is added to a folder. - -
- -```yaml -kubeadmconfig: - files: - - targetPath: /etc/containerd/config.toml - targetOwner: "root:root" - targetPermissions: "0644" - content: | - ## template: jinja - - # Use config version 2 to enable new configuration fields. - # Config file is parsed as version 1 by default. - version = 2 - - imports = ["/etc/containerd/conf.d/*.toml"] - - [plugins] - [plugins."io.containerd.grpc.v1.cri"] - sandbox_image = "registry.k8s.io/pause:3.9" - device_ownership_from_security_context = true - [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] - runtime_type = "io.containerd.runc.v2" - [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] - SystemdCgroup = true - preKubeadmCommands: - - 'echo "====> Applying pre Kubeadm commands"' - postKubeadmCommands: - - 'echo "====> Applying post Kubeadm commands"' -``` - -### Ubuntu Pro - -Ubuntu Pro is a security and maintenance subscription offering from Canonical that offers long-term security support and -many other security hardening features. Ubuntu Pro offers several more benefits than the free Ubuntu offering: - -
- -- Extended Security Maintenance - -- Kernel Livepatch service to avoid reboots - -- FIPS 140-2 Level 1 certified crypto modules - -- Common Criteria EAL2 - -For more information, refer to the [Ubuntu Pro](https://ubuntu.com/pro) documentation from Canonical. - -You can enable Ubuntu Pro when deploying clusters with Palette. To enable Ubuntu Pro, select Ubuntu as the OS for a -cluster profile and expand the **Preset Menu** to reveal the Ubuntu Pro parameters. - -| Parameter | Description | Default Value | -| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -| **token** | The Canonical subscription token for Ubuntu Pro. Refer to the Ubuntu Pro [subscribe page](https://ubuntu.com/pro/subscribe) to aquire a subscription token. | `""` | -| **esm-apps** | Expanded Security Maintenance (ESM) for Applications. Refer to the Ubuntu [ESM documentation](https://ubuntu.com/security/esm) to learn more. | Disabled | -| **livepatch** | Canonical Livepatch service. Refer to the Ubuntu [Livepatch](https://ubuntu.com/security/livepatch) documenation for more details. | Disabled | -| **fips** | Federal Information Processing Standards (FIPS) 140 validated cryptography for Linux workloads on Ubuntu. This installs NIST-certified core packages. Refer to the Ubuntu [FIPS](https://ubuntu.com/security/certifications/docs/2204) documentation to learn more. | Disabled | -| **fips-updates** | Install NIST-certified core packages with priority security updates. Refer to the Ubuntu [FIPS Updates](https://ubuntu.com/security/certifications/docs/fips-updates) documentation to learn more. | Disabled | -| **cis** | Gain access to OpenSCAP-based tooling that automates both hardening and auditing with certified content based on published CIS benchmarks. Refer to the Ubuntu [CIS](https://ubuntu.com/security/certifications/docs/2204/usg/cis) documentation to learn more. | Disabled | - -Use the following steps to enable Ubuntu Pro. - -
- -1. Log in to [Palette](https://console.spectrocloud.com). - -2. Navigate to the left **Main Menu** and select **Profiles**. - -3. Click on **Add Cluster Profile**. - -4. Fill out the input fields for **Name**, **Version**, **Description**, **Type** and **Tags**. Click on **Next** to - continue. - -5. Select the infrastructure provider and click on **Next**. - -6. Select the OS layer and use the following information to find the Ubuntu pack: - -- **Pack Type** - OS - -- **Registry** - Public Repo - -- **Pack Name** -Ubuntu - -- **Pack Version** - 20.04 or 22.04 - -7. Modify the Ubuntu **Pack values** to activate the **Presets** options for the Ubuntu YAML file. Click on the - **\** button to reveal the YAML editor and expand the **Preset Drawer**. - -
- -![A view of the cluster profile creation wizard for Ubuntu Pro](/integrations_ubuntu_ubuntu-pro-preset-drawer.webp) - -8. Click the **Ubuntu Advantage/Pro** checkbox to include the Ubuntu Pro parameters in the pack configuration file. - -9. Toggle options on or off to enable or disable the various Ubuntu Pro services. - -10. Click the **Next layer** button to continue to the next layer. - -11. Complete the remainder of the cluster profile creation wizard by selecting the next cluster profile layers. - -
- -
- - -All Ubuntu versions less than v20.04.x are considered deprecated. Upgrade to a newer version to take advantage of new -features. - - -
- -## Terraform - -You can reference Ubuntu in Terraform with the following code snippet. - -
- - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "ubuntu" { - name = "edge-native-ubuntu" - version = "22.04" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "ubuntu" { - name = "ubuntu-maas" - version = "22.04" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "ubuntu" { - name = "ubuntu-vsphere" - version = "22.04" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "ubuntu" { - name = "ubuntu-openstack" - version = "22.04" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "ubuntu" { - name = "ubuntu-aws" - version = "22.04" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "ubuntu" { - name = "ubuntu-azure" - version = "22.04" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "ubuntu" { - name = "ubuntu-gcp" - version = "22.04" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - -## References - -- [Create a Cluster Profile](../profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md) - -- [Ubuntu Documentation](https://docs.ubuntu.com) - -- [Ubuntu Pro Documentation](https://ubuntu.com/server/docs) - -- [Kubernetes API Server Configuration](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver) diff --git a/docs/docs-content/integrations/vault.md b/docs/docs-content/integrations/vault.md index 2bad5981a8..45eb5788a0 100644 --- a/docs/docs-content/integrations/vault.md +++ b/docs/docs-content/integrations/vault.md @@ -10,48 +10,78 @@ logoUrl: "https://registry.spectrocloud.com/v1/vault/blobs/sha256:1abda0173be1fd tags: ["packs", "vault", "security"] --- -[Vault](https://www.vaultproject.io/) helps secure, store, and tightly control access to tokens, passwords, -certificates, encryption keys for protecting secrets, and other sensitive data using a UI, CLI, or HTTP API. +## Versions Supported -Vault integration has the following components: + + -- Vault server -- UI (optional). -- [Agent injector](https://www.vaultproject.io/docs/platform/k8s/injector/) (optional). +HashiCorp provides documentation for many uses cases for Vault. For examples, refer to +[HashiCorp Vault documentation](https://developer.hashicorp.com/vault/docs/use-cases). -## Versions Supported +#### Initialize and Unseal Vault - +If you enabled dev server mode, you do not need to initialize Vault and it is already unsealed. Use the root token you +configured in the `values.yaml` file to sign in to Vault directly. - +Before any operation can be performed on Vault, you need to initialize the first root token and keys that can be used to +unseal Vault. You can do so by following these steps: -### Prerequisites +1. Log in to [Palette](https://console.spectrocloud.com). -- A Kubernetes cluster with Kubernetes version 1.22 or later. +2. Navigate to the left **Main Menu** and select **Clusters**. -### Parameters +3. Select the cluster that has Vault installed to view its details page. -The table lists commonly used parameters you can configure when adding this pack. +4. Download the cluster **kubeconfig** file. -| Parameters | Description | Default | -| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -| `charts.vault.server.ingress` | Enable ingress traffic to the Vault server. If you want to enable ingress traffic, make sure that `charts.server.serviceType` is set to `"ClusterIP"` or is left empty. | `False` | -| `charts.vault.global.tlsDisable` | Disable TLS for end-to-end encrypted transport. | `True` | -| `charts.vault.agent.enabled` | Enable vault agent injection to inject secrets into the pods. | `-` | -| `charts.vault.server.ha` | Enable high-availability mode to protect against outages by running multiple Vault servers. For more information, refer to [Vault documentation](https://developer.hashicorp.com/vault/docs/internals/high-availability). | `false` | -| `charts.vault.server.dataStorage` | Controls the size, location, storage class of the persistent storage used by the Vault. | | -| `charts.vault.server.dev` | Enable dev server mode. The dev server mode skips most setup required before you can begin to use a Vault server, including initialization and unseal, and stores all data in-memory. For more details about dev server mode, refer to [Vault documentation](https://developer.hashicorp.com/vault/docs/concepts/dev-server). | `False` | -| `charts.vault.server.dev.devRootToken` | If you enabled dev server mode, this parameter specifies the root token for your Vault server. Root token has unlimited privileges and can do anything in Vault. | `"root"` | +5. Set up your local kubectl environment to use the **kubeconfig** file you downloaded. Review the + [Access Cluster with CLI](../clusters/cluster-management/palette-webctl.md) guide for additional guidance. -:::warning +6. You need to get the Vault namespace and application name. Issue the following command to get the unique values. + +
-Never operate a dev mode server in production. It is insecure and loses data on every restart. + ```shell + VAULT_NAMESPACE=$(kubectl get pods --selector app.kubernetes.io/name=vault --all-namespaces --output jsonpath='{.items[0].metadata.namespace}') && \ + APP_NAME=$(echo "$VAULT_NAMESPACE" | sed 's/-ns$//') + ``` + +7. Set up port forwarding by issuing the following command so you can access the Vault UI: + + ``` + kubectl port-forward $APP_NAME 8200:8200 --namespace $VAULT_NAMESPACE + ``` + +8. Open your browser and access the Vault UI at `https://localhost:8200/ui`. You will receive a warning due to using a + self-signed certificate, but you can ignore this warning. Follow the prompts on the UI to initialize your root token. + +:::tip + +If you do not want to use the Vault UI, you can also initialize and unseal Vault using the Vault CLI or API. For more +information, refer to +[Vault documentation](https://developer.hashicorp.com/vault/docs/platform/k8s/helm/run#initialize-and-unseal-vault). ::: -### Usage +#### Storage + +In a production Vault server, backend storage is on a data persistent layer, is untrusted and only stores encrypted +data. In a dev mode Vault server, all data is stored in-memory and will be erased when Vault restarts. + +##### RKE2 -HashiCorp provides many uses cases for Vault. For examples, refer to +When using Vault with the RKE2 distribution of Kubernetes in Palette Edge, you must explicitly specify a storage class +for the Vault server. To specify a storage class, change the value of the field +`charts.vault.server.dataStorage.storageClass` in `values.yaml` for the Vault pack in your cluster profile from `null` +to a storage class that meets your needs. Refer to +[Kubernetes documentation on storage classes](https://kubernetes.io/docs/concepts/storage/storage-classes/) for more +details. + +
+ + + +HashiCorp provides documentation for many uses cases for Vault. For examples, refer to [HashiCorp Vault documentation](https://developer.hashicorp.com/vault/docs/use-cases). #### Initialize and Unseal Vault @@ -113,9 +143,13 @@ to a storage class that meets your needs. Refer to [Kubernetes documentation on storage classes](https://kubernetes.io/docs/concepts/storage/storage-classes/) for more details. + + +
+ ### Terraform -You can reference the Vault pack in Terraform with a data resource: +Use the following Terraform code snippet to reference the Vault pack. ```hcl data "spectrocloud_registry" "public_registry" { @@ -124,33 +158,8 @@ data "spectrocloud_registry" "public_registry" { data "spectrocloud_pack_simple" "pack-info" { name = "vault" - version = "0.22.0" + version = "0.27.0" type = "helm" registry_uid = data.spectrocloud_registry.public_registry.id } ``` - -
- - - -:::warning - -All versions of the manifest-based pack less than v0.22.x are considered deprecated. Upgrade to a newer version to take -advantage of new features. - -::: - - - -
- -## References - -- [Vault Agent injector](https://www.vaultproject.io/docs/platform/k8s/injector/) - -- [Injecting Vault Secrets Into Kubernetes Pods via a Sidecar - Blog](https://www.hashicorp.com/blog/injecting-vault-secrets-into-kubernetes-pods-via-a-sidecar/) - -- [Vault Agent Injector Examples](https://www.vaultproject.io/docs/platform/k8s/injector/examples/) - -- [Vault on Kubernetes Guide](https://www.vaultproject.io/docs/platform/k8s/helm/run) diff --git a/docusaurus.config.js b/docusaurus.config.js index 6b93e826df..cd7542d284 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -10,6 +10,7 @@ const { pluginPacksAndIntegrationsData } = require("./plugins/packs-integrations const { pluginImportFontAwesomeIcons } = require("./plugins/font-awesome"); import path from "path"; +import { Logger } from "sass"; /** @type {import('@docusaurus/types').Config} */ const config = { diff --git a/redirects.js b/redirects.js index 55a938d721..f10311dd4c 100644 --- a/redirects.js +++ b/redirects.js @@ -83,10 +83,6 @@ const redirects = [ from: `/clusters/public-cloud/aks/`, to: `/clusters/public-cloud/azure/aks/`, }, - { - from: `/integrations/minio-operator/`, - to: `/integrations/`, - }, { from: `/knowledgebase/how-to/reverse-proxy-dashboard/`, to: `/clusters/cluster-management/kubernetes-dashboard/`, @@ -163,18 +159,10 @@ const redirects = [ from: `/clusters/edge/edgeforge-workflow/build-images/`, to: `/clusters/edge/edgeforge-workflow/palette-canvos/`, }, - { - from: `/integrations/ubuntu-k3s/`, - to: `/integrations/ubuntu/`, - }, { from: `/clusters/brownfield-clusters/`, to: `/clusters/imported-clusters/`, }, - { - from: `/integrations/oidc-eks/`, - to: `/integrations/kubernetes/`, - }, { from: `/clusters/palette-virtual-clusters/add-virtual-cluster-to-host-cluster/`, to: `/clusters/palette-virtual-clusters/deploy-virtual-cluster/`, @@ -299,10 +287,6 @@ const redirects = [ from: `/devx/app-profile/services/service-listings/cockroach-db/`, to: `/devx/services/service-listings/cockroach-db/`, }, - { - from: `/integrations/EKS-D/`, - to: `/integrations/`, - }, { from: `/enterprise-version/on-prem-system-requirements/`, to: `/enterprise-version/install-palette/`, diff --git a/static/packs-data/exclude_packs.json b/static/packs-data/exclude_packs.json index c540357a1e..76d490c068 100644 --- a/static/packs-data/exclude_packs.json +++ b/static/packs-data/exclude_packs.json @@ -6,5 +6,7 @@ "csi-portworx-vsphere", "csi-rook-ceph-helm", "csi-rook-ceph-helm-addon", - "calico-networking" + "calico-networking", + "ubuntu-k3s", + "ubuntu-coxedge" ] diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 3184e5c5d8..4f3ec58b35 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -247,6 +247,18 @@ "name": "csi-portworx-vsphere", "description": "The Portworx CSI Driver provides a standardized way to manage storage resources in containerized environments. This driver supports the full range of Portworx features and most of the CSI specifications, facilitating seamless integration and management of storage across different platforms." }, + { + "name": "kubernetes", + "description": "Palette eXtended Kubernetes (PXK) is a customized version of the open-source Cloud Native Computing Foundation (CNCF) distribution of Kubernetes. This Kubernetes version can be deployed through Palette to all major infrastructure providers, public cloud providers, and private data center providers. This is the default distribution when deploying a Kubernetes cluster through Palette." + }, + { + "name": "edge-k8s", + "description": "Palette eXtended Kubernetes (PXK-E) is a customized version of the open-source Cloud Native Computing Foundation (CNCF) distribution of Kubernetes for Edge devices. This Kubernetes version can be deployed Edge hosts. This is the default distribution when deploying Edge Kubernetes cluster through Palette." + }, + { + "name": "edge-native-opensuse", + "description": "openSUSE is a free and open-source Linux distribution developed by the openSUSE project." + }, { "name": "portworx-add-on", "description": "The Portworx CSI Driver provides a standardized way to manage storage resources in containerized environments. This driver supports the full range of Portworx features and most of the CSI specifications, facilitating seamless integration and management of storage across different platforms." @@ -382,5 +394,60 @@ { "name": "spectro-proxy", "description": "Spectro Proxy is a pack that enables the use of a reverse proxy with a Kubernetes cluster. The reverse proxy allows you to connect to the cluster API of a Palette-managed Kubernetes cluster in private networks or clusters configured with private API endpoints. The reverse proxy managed by Spectro Cloud is also known as the forward reverse proxy (FRP)." + }, + { + "name": "ubuntu-aws", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-azure", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-gcp", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-aks", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-eks", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-gke", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-maas", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-edge", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-libvirt", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-openstack", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "ubuntu-vsphere", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "name": "edge-native-ubuntu", + "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." + }, + { + "vault": "Vault is a tool developed by HashiCorp that helps organizations manage and protect sensitive data and secrets. It uses identity-based security to authenticate and authorize access to secrets, such as passwords, API keys, and encryption keys, using authentication and authorization methods. Vault also protects data in-transit and at rest, and can help prevent credential exposure and unauthorized users." + }, + { + "name": "wordpress-chart", + "description": "WordPress is an open-source web content management system. It was originally created as a tool to publish blogs but has evolved to support publishing other web content, including more traditional websites, mailing lists and Internet forum, media galleries, membership sites, learning management systems, and online stores. " } ] From c7bc80ba17b6476f13077b58e61e40dde794f2ca Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Fri, 26 Jul 2024 14:02:54 -0700 Subject: [PATCH 18/22] chore: more updates --- .../integrations/kubernetes-dashboard.md | 15 ++- .../integrations/spectro-k8s-dashboard.md | 81 +------------ plugins/packs-integrations.js | 4 +- src/components/IconMapper/IconMapper.tsx | 2 + src/constants/packs.ts | 6 +- static/packs-data/exclude_packs.json | 5 +- static/packs-data/packs_information.json | 111 +++++++++++++++++- 7 files changed, 137 insertions(+), 87 deletions(-) diff --git a/docs/deprecated/integrations/kubernetes-dashboard.md b/docs/deprecated/integrations/kubernetes-dashboard.md index 50794aa9f0..a98717e390 100644 --- a/docs/deprecated/integrations/kubernetes-dashboard.md +++ b/docs/deprecated/integrations/kubernetes-dashboard.md @@ -45,9 +45,10 @@ allows you to manage clusters and the applications deployed in them. :::warning + Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. +To learn more about it and start using it, check out the pack. ::: @@ -272,9 +273,10 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec :::warning + Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. +To learn more about it and start using it, check out the pack. ::: @@ -386,9 +388,10 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec :::warning + Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. +To learn more about it and start using it, check out the pack. ::: @@ -500,9 +503,10 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec :::warning + Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. +To learn more about it and start using it, check out the pack. ::: @@ -614,9 +618,10 @@ Use the `service.loadBalancerIP` and `service.externalPort` parameters to connec :::warning + Starting with Kubernetes Dashboard version 2.7.0, the **Connect** button is no longer available. For an optimized experience, we recommend you use the pre-configured version of this dashboard, called Spectro Kubernetes Dashboard pack. -To learn more about it and start using it, check out the [Spectro Kubernetes Dashboard](spectro-k8s-dashboard.md) guide. +To learn more about it and start using it, check out the pack. ::: diff --git a/docs/docs-content/integrations/spectro-k8s-dashboard.md b/docs/docs-content/integrations/spectro-k8s-dashboard.md index 891750f7a8..45cd55d604 100644 --- a/docs/docs-content/integrations/spectro-k8s-dashboard.md +++ b/docs/docs-content/integrations/spectro-k8s-dashboard.md @@ -12,83 +12,18 @@ logoUrl: "https://registry.spectrocloud.com/v1/k8s-dashboard/blobs/sha256:2de5d8 tags: ["packs", "spectro-k8s-dashboard", "monitoring"] --- - -Spectro Kubernetes Dashboard is a web-based UI for Kubernetes clusters that auto-enables the Kubernetes Dashboard using -secure ports and conveniently includes the pack. - ## Versions Supported -**2.7.x** - -
- -## Prerequisites - - -- Outbound internet connectivity for port 443 is allowed so that you and your applications can connect with the reverse proxy. - -- Users or groups must be mapped to a Kubernetes RBAC role, either a _Role_ or a _ClusterRole_. You can create a custom - role through a manifest and use Palette's roleBinding feature to associate users or groups with the role. Refer to the - [Create a Role Binding](../clusters/cluster-management/cluster-rbac.md#create-role-bindings) guide to learn more. - -## Parameters - - - -| Parameter | Description | Default | -| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | -| `namespace` | The Kubernetes namespace to install the dashboard. | `kubernetes-dashboard` | -| `ClusterRole` | The ClusterRole to assign to the Spectro Kubernetes Dashboard. | `read-only` | -| `certDuration` | Self-signed certificate duration in hours. | 8760h (365d) | -| `certRenewal` | Self-signed certificate renewal in hours | 720h (30d) | -| `enableInsecureLogin` | RBAC ensures secure login. | `false` | -| `serviceType` | The service type for the dashboard. Supported values are `ClusterIP`, `LoadBalancer`, and `NodePort`. | `ClusterIP` | -| `skipLogin` | Enables or disables the skip login option on the Spectro Kubernetes Dashboard. | `false` | -| `enableInsecureLogin` | Enables non-Secure Sockets Layer (SSL) login. Dashboard login is always restricted to HTTP(S) + localhost or HTTPS and external domain. | `false` | -| `ingress.enabled` | Ingress configuration to access the `ClusterIP`, `LoadBalancer`, or `NodePort`. | `false` | + + -## Usage - -To use the Spectro Kubernetes Dashboard pack, you have to add it to your cluster profile. Spectro Kubernetes Dashboard -supports several public cloud and data center cloud environments. To learn more, refer to [Clusters](/clusters). - -Use the following information to find the Kubernetes Dashboard pack. - -- **Pack Type**: Monitoring -- **Registry**: Public Repo -- **Pack Name**: Spectro Kubernetes Dashboard -- **Pack Version**: 2.7.0 or higher - -Spectro Kubernetes Dashboard has the following Access options. - -
- -- **Proxied**: This option is useful for access to the Kubernetes Dashboard from anywhere and leverages the Spectro - Proxy pack, which gets installed automatically. The Service resource for the Kubernetes Dashboard will be configured - as ClusterIP and is only accessible through the proxy. To learn more, check out the - guide. - -- **Direct**: This option is meant for a private configuration where a proxy is not implemented or not desired. The - Service resource for the Kubernetes Dashboard will be configured as LoadBalancer, which you can access directly. This - option requires you to be on a network that can reach the IP address given to the LoadBalancer service. +
+
## Terraform You can reference the Spectro Proxy pack in Terraform with a data resource. -
- ```hcl data "spectrocloud_registry" "public_registry" { name = "Public Repo" @@ -96,14 +31,8 @@ data "spectrocloud_registry" "public_registry" { data "spectrocloud_pack_simple" "k8s-dashboard" { name = "spectro-k8s-dashboard" - version = "2.7.0" + version = "2.7.1" type = "helm" registry_uid = data.spectrocloud_registry.public_registry.id } ``` - -## References - -- [Microsoft Access Control Using Kubernetes RBAC](https://learn.microsoft.com/en-us/azure/aks/azure-ad-rbac?toc=https%3A%2F%2Fdocs.micro[…]icrosoft.com%2Fen-us%2Fazure%2Fbread%2Ftoc.json&tabs=portal) - -- [Terraform Data Resource](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/pack) diff --git a/plugins/packs-integrations.js b/plugins/packs-integrations.js index b5b584111e..de017136d6 100644 --- a/plugins/packs-integrations.js +++ b/plugins/packs-integrations.js @@ -11,7 +11,7 @@ const excludeList = require("../static/packs-data/exclude_packs.json"); const { existsSync, promises, open, mkdirSync, writeFile, close, createWriteStream } = require("node:fs"); import logger from "@docusaurus/logger"; -const filterLimit = 50; //Limit for fetching the packs from the Palette API +const filterLimit = 100; //Limit for fetching the packs from the Palette API const dirname = ".docusaurus/packs-integrations/"; const logoDirname = "static/img/packs/"; const filename = "api_pack_response.json"; @@ -387,7 +387,7 @@ async function pluginPacksAndIntegrationsData(context, options) { if (!existsSync(dirname)) { mkdirSync(dirname, { recursive: true }); } - let packDataArr = await fetchPackListItems("?limit=50", [], 0); + let packDataArr = await fetchPackListItems(`?limit=${filterLimit}`, [], 0); // Filter out the packs from the exclude list. packDataArr = packDataArr.filter((pack) => { diff --git a/src/components/IconMapper/IconMapper.tsx b/src/components/IconMapper/IconMapper.tsx index de9ac731f5..fdcdfe2e7e 100644 --- a/src/components/IconMapper/IconMapper.tsx +++ b/src/components/IconMapper/IconMapper.tsx @@ -24,6 +24,7 @@ import OsIcon from "@site/static/assets/packs/os_layer.svg"; import ServiceMeshIcon from "@site/static/assets/packs/service_mesh_layer.svg"; import MonitoringIcon from "@site/static/assets/packs/monitoring_layer.svg"; import CsiIcon from "@site/static/assets/packs/csi_layer.svg"; +import IntegrationIcon from "@site/static/assets/packs/integration_layer.svg"; import LoggingIcon from "@site/static/assets/packs/logging_layer.svg"; import LoadBalancerIcon from "@site/static/assets/packs/load_balancer_layer.svg"; import IngressIcon from "@site/static/assets/packs/ingress_layer.svg"; @@ -59,6 +60,7 @@ export const icons: IconsMap = { teams: , workspaces: , terraform: , + integration: , k8s: , cni: , os: , diff --git a/src/constants/packs.ts b/src/constants/packs.ts index 57884d639c..64ab196ebc 100644 --- a/src/constants/packs.ts +++ b/src/constants/packs.ts @@ -13,10 +13,9 @@ export const packTypes = [ "servicemesh", "csi", "system app", + "integration", ] as const; -// type packType = (typeof packTypes)[number]; - export const packTypeNames: Record = { "app services": "App Services", authentication: "Authentication", @@ -32,6 +31,7 @@ export const packTypeNames: Record = { servicemesh: "Service Mesh", csi: "Storage", "system app": "System App", + integration: "Integration", } as const; export const cloudProviderTypes = [ @@ -62,6 +62,8 @@ export const addOnTypes = [ "security", "servicemesh", "system app", + "integreation", + "integration", ] as const; export const cloudDisplayNames = { diff --git a/static/packs-data/exclude_packs.json b/static/packs-data/exclude_packs.json index 76d490c068..87deb017f8 100644 --- a/static/packs-data/exclude_packs.json +++ b/static/packs-data/exclude_packs.json @@ -8,5 +8,8 @@ "csi-rook-ceph-helm-addon", "calico-networking", "ubuntu-k3s", - "ubuntu-coxedge" + "ubuntu-coxedge", + "edge-os", + "spectro-zen-of-k8s", + "spectro-mgmt" ] diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 4f3ec58b35..20302b346a 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -395,6 +395,98 @@ "name": "spectro-proxy", "description": "Spectro Proxy is a pack that enables the use of a reverse proxy with a Kubernetes cluster. The reverse proxy allows you to connect to the cluster API of a Palette-managed Kubernetes cluster in private networks or clusters configured with private API endpoints. The reverse proxy managed by Spectro Cloud is also known as the forward reverse proxy (FRP)." }, + { + "name": "spectro-k8s-dashboard", + "description": "This pack deployes the Kubernetes Dashboard, and the Spectro Proxy if needed. The pack reduces the complexity of deploying the Kubernetes Dashboard by creating required resources and roles." + }, + { + "name": "spectro-rbac", + "description": "The Spectro RBAC pack is a helper pack to create roleBindings and clusterRoleBindings for a user or service account in a Kubernetes cluster." + }, + { + "name": "spectro-namespace-labeler", + "description": "The Spectro Namespace Labeler pack is a helper pack to add labels to a namespace in a Kubernetes cluster." + }, + { + "name": "spectro-nodes-task-handler", + "description": "The Spectro Nodes Task Handler pack is tool you can use to perform tasks on nodes in a Kubernetes cluster post-initailization. For example, you can use it to install software, or modify default settings, and more." + }, + { + "name": "spectro-pack-status-check", + "description": "This pack invokes a script that reads a timeout from the YAML file provided, calculates the number of attempts, and repeatedly checks the status of specified Kubernetes resources against expected conditions. If a resource meets the condition within the attempts, it exits successfully; otherwise, it fa" + }, + { + "name": "spegel", + "description": "Spegel is a local OCI registry mirror for Kubernets clusters. You can use it to locally cache images from external registries with no explicit configuration, and more." + }, + { + "name": "splunk", + "description": "This pack deploys Splunk Connect for Kubernetes. Splunk Connect for Kubernetes provides a way to import and search your Kubernetes logging, object, and metrics data in your Splunk platform deployment." + }, + { + "name": "spotinst-kubernetes-cluster-controller", + "description": "Ocean automates cloud infrastructure for containers. It continuously analyzes how your containers are using infrastructure, automatically scaling compute resources to maximize utilization and availability and utilizing the optimal blend of spot, reserved, and on-demand compute instances. Ocean eliminates the need to manage and operate cloud infrastructure." + }, + { + "name": "sr-iov", + "description": "SR-IOV is a CNI plugin that enables the configuration and usage of SR-IOV VF networks in containers and orchestrators like Kubernetes." + }, + { + "name": "strimzi-kafka", + "description": "Strimzi provides a way to deploy an Apache Kafka® cluster on Kubernetes in various deployment configurations. " + }, + { + "name": "suc", + "description": "System Upgrade Controller, is a general-purpose, Kubernetes-native upgrade controller for Kubernetes nodes developed by Rancher. It introduces a new CRD, the Plan, for defining any and all of your upgrade policie and requirements. A Plan is an outstanding intent to mutate nodes in your cluster." + }, + { + "name": "sumologic", + "description": "The Sumo Logic Kubernetes app provides visibility into the worker nodes that comprise a cluster, as well as application logs of the worker nodes. The app is a single-pane-of-glass through which you can monitor and troubleshoot container health, replication, load balancing, pod state and hardware resource allocation." + }, + { + "name": "sysdig", + "description": "Sysdig is a monitoring, security, and troubleshooting platform for cloud-native applications. Sysdig provides deep visibility into containerized applications, allowing you to monitor, secure, and troubleshoot your Kubernetes environment." + }, + { + "name": "stormforge-optimize-live", + "description": "StormForge Optimize Live is a Kubernetes-native performance optimization platform that uses machine learning to automatically tune your applications for performance, cost, and resource efficiency." + }, + { + "name": "tekton-chains", + "descriptions": "Tekton Chains is a Kubernetes Custom Resource Definition (CRD) controller that allows you to manage your supply chain security in Tekton. In its default mode of operation, Chains works by observing all TaskRuns executions in your cluster. When TaskRuns complete, Chains takes a snapshot of them. Chains then converts this snapshot to one or more standard payload formats, signs them and stores where specified." + }, + { + "name": "tekton-operator", + "description": "Tekton Operator is a Kubernetes extension that can install, upgrade and manage TektonCD Pipelines, Dashboard, Triggers and other components, on any Kubernetes Cluster." + }, + { + "name": "tetragon", + "description": "Tetragon is a flexible Kubernetes-aware security observability and runtime enforcement tool that applies policy and filtering directly with eBPF, allowing for reduced observation overhead, tracking of any process, and real-time enforcement of policies." + }, + { + "name": "tke-managed-os", + "description": "TKE Managed OS is a pack that provides a managed operating system for Tencent Kubernetes Engine (TKE) clusters. The pack includes the operating system and the necessary configurations to deploy the TKE cluster." + }, + { + "name": "thanos", + "description": "Thanos is a set of components that can be composed into a highly available metric system with unlimited storage capacity, which can be added seamlessly on top of existing Prometheus deployments. Thanos leverages the Prometheus 2.0 storage format to cost-efficiently store historical metric data in any object storage while retaining fast query latencies." + }, + { + "name": "triliovault", + "description": "Trilio for Kubernetes is a data protection and backup solution specifically designed for Kubernetes environments. Trilio provides backup and recovery capabilities tailored for these dynamic, container-based infrastructures." + }, + { + "name": "trivy", + "description": "Trivy is a simple and comprehensive vulnerability, misconfiguration, secret scanner for containers and other artifacts. Trivy detects vulnerabilities of OS packages and language-specific packages. In addition, Trivy scans Infrastructure as Code (IaC) files such as Terraform and Kubernetes, to detect potential configuration issues that expose your deployments to the risk of attack." + }, + { + "name": "trow", + "description": "Trow is an image management service for Kubernetes that allows you to store, manage, and distribute container images in your cluster. Trow provides a secure, private registry for your Kubernetes cluster, allowing you to store images locally and distribute them across your cluster." + }, + { + "name": "Twistlock", + "description": "Twistlock is a comprehensive container security solution designed specifically for Kubernetes and other container environments. Twistlock provides end-to-end security for containerized applications running on Kubernetes, covering the entire container lifecycle from development to production." + }, { "name": "ubuntu-aws", "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." @@ -444,7 +536,24 @@ "description": "Ubuntu is a free, open-source operating system (OS) based on Linux that can be used on desktops, servers, in the cloud, and for IoT devices. Ubuntu is a Linux distribution derived from Debian." }, { - "vault": "Vault is a tool developed by HashiCorp that helps organizations manage and protect sensitive data and secrets. It uses identity-based security to authenticate and authorize access to secrets, such as passwords, API keys, and encryption keys, using authentication and authorization methods. Vault also protects data in-transit and at rest, and can help prevent credential exposure and unauthorized users." + "name": "unctl", + "description": "unctl is a versatile command-line tool designed to perform a wide range of checks and inspections on various components of your infrastructure. It provides a unified interface to assess the health and performance of different services and platforms, and goes beyond mere diagnosis." + }, + { + "name": "vault", + "description": "Vault is a tool developed by HashiCorp that helps organizations manage and protect sensitive data and secrets. It uses identity-based security to authenticate and authorize access to secrets, such as passwords, API keys, and encryption keys, using authentication and authorization methods. Vault also protects data in-transit and at rest, and can help prevent credential exposure and unauthorized users." + }, + { + "name": "velero", + "description": "Velero is an open source tool to safely backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes." + }, + { + "name": "virtual-machine-orchestrator", + "description": "The Palette Virtual Machine Orchestrator (VMO) pack consolidates all components that you need to deploy and manage Virtual Machines (VMs) alongside containers in a Kubernetes host cluster. You can deploy VMO as an add-on cluster profile on top of an existing data center or edge cluster." + }, + { + "name": "volume-snapshot-controller", + "description": "The Volume Snapshot Controller is a Kubernetes controller that can take snapshots of a persistent volume. A snapshot can be used either to rehydrate a new volume, pre-populated with the snapshot data, or to restore an existing volume to a previous state (represented by the snapshot)." }, { "name": "wordpress-chart", From 2ffdf69ec79b32e00b0fd89a5cb5f540162fb503 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 29 Jul 2024 09:37:26 -0700 Subject: [PATCH 19/22] chore: more packs --- _partials/packs/_kubernetes-genercic.mdx | 638 ++++++++++++++ _partials/packs/_rke2.mdx | 72 ++ .../byoos/usecases/vmware/konvoy.md | 13 +- .../cluster-management/cluster-rbac.md | 3 +- .../clusters/public-cloud/aws/eks.md | 4 +- docs/docs-content/integrations/edge-rke2.md | 47 + docs/docs-content/integrations/konvoy.md | 118 --- .../integrations/kubernetes-aks.md | 29 + .../integrations/kubernetes-custom.md | 29 + .../integrations/kubernetes-eks.md | 29 + .../integrations/kubernetes-generic.md | 830 ------------------ .../integrations/kubernetes-gke.md | 29 + .../integrations/kubernetes-konvoy.md | 45 + .../integrations/kubernetes-rke2.md | 47 + .../integrations/kubernetes-tke.md | 29 + docs/docs-content/integrations/rke2.md | 189 ---- plugins/packs-integrations.js | 3 +- .../IconMapper/dynamicFontAwesomeImports.ts | 2 +- static/packs-data/packs_information.json | 32 + 19 files changed, 1042 insertions(+), 1146 deletions(-) create mode 100644 _partials/packs/_kubernetes-genercic.mdx create mode 100644 _partials/packs/_rke2.mdx create mode 100644 docs/docs-content/integrations/edge-rke2.md delete mode 100644 docs/docs-content/integrations/konvoy.md create mode 100644 docs/docs-content/integrations/kubernetes-aks.md create mode 100644 docs/docs-content/integrations/kubernetes-custom.md create mode 100644 docs/docs-content/integrations/kubernetes-eks.md delete mode 100644 docs/docs-content/integrations/kubernetes-generic.md create mode 100644 docs/docs-content/integrations/kubernetes-gke.md create mode 100644 docs/docs-content/integrations/kubernetes-konvoy.md create mode 100644 docs/docs-content/integrations/kubernetes-rke2.md create mode 100644 docs/docs-content/integrations/kubernetes-tke.md delete mode 100644 docs/docs-content/integrations/rke2.md diff --git a/_partials/packs/_kubernetes-genercic.mdx b/_partials/packs/_kubernetes-genercic.mdx new file mode 100644 index 0000000000..c7e6416443 --- /dev/null +++ b/_partials/packs/_kubernetes-genercic.mdx @@ -0,0 +1,638 @@ +--- +partial_category: packs +partial_name: kubernetes-generic +--- + + +### Support Lifecycle + + +We support CNCF Kubernetes for N-3 Kubernetes minor versions for a duration of 14 months. The duration exceeds the +official EOL by four months. Once we stop supporting the minor version, we initiate the deprecation process. Refer to +the guide to learn more. + + + +:::warning + + +Once you upgrade your cluster to a new Kubernetes version, you will not be able to downgrade. We recommend that, before +upgrading, you review the information provided in the +section. + +Review the to learn about pack update and deprecation schedules. + +::: + +## Versions Supported + + + + + +The Kubeadm configuration file is where you can do the following: + +- Change the default `podCIDR` and `serviceClusterIpRange` values. CIDR IPs specified in the configuration file take + precedence over other defined CIDR IPs in your environment. + + As you build your cluster, check that the `podCIDR` value does not overlap with any hosts or with the service network + and the `serviceClusterIpRange` value does not overlap with any IP ranges assigned to nodes or pods. + + +- Change the default cluster DNS service domain from `cluster.local` to a DNS domain that you specify. You can only + change the DNS domain during cluster creation. For more information, refer to + . + + +- Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more + information, refer to the guide. + +### Change Cluster DNS Service Domain + +The `pack.serviceDomain` parameter with default value `cluster.local` is not visible in the Kubernetes YAML file, and +its value can only be changed at cluster creation. To change the value, you must add `serviceDomain: "cluster.local"` to +the Kubernetes YAML file when you create a cluster, and specify the service domain you want to use. + +```yaml hideClipboard +pack: + k8sHardening: True + podCIDR: "172.16.0.0/16" + serviceClusterIPRange: "10.96.0.0/12" + serviceDomain: "" +``` + +:::warning + +You can specify the service domain only at cluster creation. After the cluster creation completes, you cannot update the +value. Attempting to update it results in the error `serviceDomain update is forbidden for existing cluster`. + +::: + +For more information about networking configuration with DNS domains, refer to the Kubernetes +[Networking](https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta3/#kubeadm-k8s-io-v1beta3-Networking) +API documentation. + +### Configuration Changes + +The Kubeadm config is updated with hardening improvements that do the following: + +- Meet CIS standards for Operating Systems (OS). + + +- Enable a Kubernetes audit policy in the pack. The audit policy is hidden, and you cannot customize the default audit + policy. If you want to apply your custom audit policy, refer to the + guide to learn how to create your custom audit policy + by adjusting the API server flags. + +- Replace a deprecated PodSecurityPolicy (PSP) with one that offers three built-in policy profiles for broad security + coverage: + + - **Privileged**: An unrestricted policy that provides wide permission levels and allows for known privilege + escalations. + + - **Baseline**: A policy that offers minimal restrictions and prevents known privilege escalations. As shown in the + example below, you can override the default cluster-wide policy to set baseline enforcement by enabling the + `PodSecurity` Admission plugin in the `enable-admission-plugins` section of the YAML file. You can then add a custom + Admission configuration and set the `admission-control-config-file` flag to the custom Admission. + + ```yaml + kubeadmconfig: + apiServer: + extraArgs: + secure-port: "6443" + anonymous-auth: "true" + profiling: "false" + disable-admission-plugins: "AlwaysAdmit" + default-not-ready-toleration-seconds: "60" + default-unreachable-toleration-seconds: "60" + enable-admission-plugins: "AlwaysPullImages,NamespaceLifecycle,ServiceAccount,NodeRestriction,PodSecurity" + admission-control-config-file: "/etc/kubernetes/pod-security-standard.yaml" + audit-log-path: /var/log/apiserver/audit.log + audit-policy-file: /etc/kubernetes/audit-policy.yaml + ``` + + - **Restricted**: A heavily restricted policy that follows the best practices of Pod hardening. This policy is set to + warn and audit and identifies Pods that require privileged access. + + You can enforce these policies at the Cluster or Namespace level. For workloads that require privileged access, you + can relax `PodSecurity` enforcement by adding these labels in the Namespace: + + ```yaml + pod-security.kubernetes.io/enforce: privileged + pod-security.kubernetes.io/enforce-version: v1.26 + ``` + +### Kubeadm Configuration File + +The default pack YAML contains minimal configurations offered by the managed provider. + +### Configure OIDC Identity Provider + +You can configure an OpenID Connect (OIDC) identity provider to authenticate users and groups in your cluster. OIDC is +an authentication layer on top of OAuth 2.0, an authorization framework that allows users to authenticate to a cluster +without using a password. + +OIDC requires a _Role Binding_ for the users or groups you want to provide cluster access. You must create a Role +Binding to a Kubernetes role that is available in the cluster. The Kubernetes role can be a custom role you created or a +[default Kubernetes role](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles), such as the +`cluster-admin` role. To learn how to create a Role Binding through Palette, refer to +. + +#### Configure Custom OIDC + +The custom method to configure OIDC and apply RBAC for an OIDC provider can be used for all cloud services except Amazon +Elastic Kubernetes Service (EKS) and Azure AKS. + + + + + + +Follow these steps to configure a third-party OIDC IDP. You can apply these steps to all the public cloud providers +except Azure AKS and Amazon EKS clusters. Azure AKS and Amazon EKS require different configurations. AKS requires you to +use Azure Active Directory (AAD) to enable OIDC integration. Refer to +to learn more. Click the **Amazon EKS** tab for steps to configure OIDC for EKS clusters. + +1. Add the following parameters to your Kubernetes YAML file when creating a cluster profile. Replace the + `identityProvider` value with your OIDC provider name. + + ```yaml + pack: + palette: + config: + oidc: + identityProvider: yourIdentityProviderNameHere + ``` + +2. Add the following `kubeadmconfig` parameters. Replace the values with your OIDC provider values. + + ```yaml + kubeadmconfig: + apiServer: + extraArgs: + oidc-issuer-url: "provider URL" + oidc-client-id: "client-id" + oidc-groups-claim: "groups" + oidc-username-claim: "email" + ``` + +3. Under the `clientConfig` parameter section of Kubernetes YAML file, uncomment the `oidc-` configuration lines. + + ```yaml + kubeadmconfig: + clientConfig: + oidc-issuer-url: "" + oidc-client-id: "" + oidc-client-secret: "" + oidc-extra-scope: profile,email,openid + ``` + + + + + +Follow these steps to configure OIDC for managed EKS clusters. + +1. In the Kubernetes pack, uncomment the lines in the `oidcIdentityProvider` parameter section of the Kubernetes pack, + and enter your third-party provider details. + + ```yaml + oidcIdentityProvider: + identityProviderConfigName: "Spectro-docs" + issuerUrl: "issuer-url" + clientId: "user-client-id-from-Palette" + usernameClaim: "email" + usernamePrefix: "-" + groupsClaim: "groups" + groupsPrefix: "" + requiredClaims: + ``` + +2. Under the `clientConfig` parameter section of Kubernetes pack, uncomment the `oidc-` configuration lines. + + ```yaml + clientConfig: + oidc-issuer-url: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.issuerUrl }}" + oidc-client-id: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.clientId }}" + oidc-client-secret: yourSecretKeyHere + oidc-extra-scope: profile,email + ``` + +3. Provide third-party OIDC IDP details. + + +4. Refer to the for guidance on how to access an EKS cluster. + + + + + + + + + +The Kubeadm configuration file is where you can do the following: + +- Change the default `podCIDR` and `serviceClusterIpRange` values. CIDR IPs specified in the configuration file take + precedence over other defined CIDR IPs in your environment. + + As you build your cluster, check that the `podCIDR` value does not overlap with any hosts or with the service network + and the `serviceClusterIpRange` value does not overlap with any IP ranges assigned to nodes or pods. + + +- Change the default cluster DNS service domain from `cluster.local` to a DNS domain that you specify. You can only + change the DNS domain during cluster creation. For more information, refer to + . + + +- Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more + information, refer to the guide. + +### Change Cluster DNS Service Domain + +The `pack.serviceDomain` parameter with default value `cluster.local` is not visible in the Kubernetes YAML file, and +its value can only be changed at cluster creation. To change the value, you must add `serviceDomain: "cluster.local"` to +the Kubernetes YAML file when you create a cluster, and specify the service domain you want to use. + +```yaml hideClipboard +pack: + k8sHardening: True + podCIDR: "172.16.0.0/16" + serviceClusterIPRange: "10.96.0.0/12" + serviceDomain: "" +``` + +:::warning + +You can only specify the service domain at cluster creation. After cluster creation completes, you cannot update the +value. Attempting to update it results in the error `serviceDomain update is forbidden for existing cluster`. + +::: + +For more information about networking configuration with DNS domains, refer to the Kubernetes +[Networking](https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta3/#kubeadm-k8s-io-v1beta3-Networking) +API documentation. + +### Configuration Changes + +The Kubeadm config is updated with hardening improvements that do the following: + +- Meet CIS standards for operating systems (OS). + + +- Enable a Kubernetes audit policy in the pack. The audit policy is hidden, and you cannot customize the default audit + policy. If you want to apply your custom audit policy, refer to the + guide to learn how to create your custom audit policy + by adjusting the API server flags. + +- Replace a deprecated PodSecurityPolicy (PSP) with one that offers three built-in policy profiles for broad security + coverage: + + - **Privileged**: An unrestricted policy that provides wide permission levels and allows for known privilege + escalations. + + - **Baseline**: A policy that offers minimal restrictions and prevents known privilege escalations. As shown in the + example below, you can override the default cluster-wide policy to set baseline enforcement by enabling the + `PodSecurity` Admission plugin in the `enable-admission-plugins` section of the YAML file. You can then add a custom + Admission configuration and set the `admission-control-config-file` flag to the custom Admission. + + ```yaml + kubeadmconfig: + apiServer: + extraArgs: + secure-port: "6443" + anonymous-auth: "true" + profiling: "false" + disable-admission-plugins: "AlwaysAdmit" + default-not-ready-toleration-seconds: "60" + default-unreachable-toleration-seconds: "60" + enable-admission-plugins: "AlwaysPullImages,NamespaceLifecycle,ServiceAccount,NodeRestriction,PodSecurity" + admission-control-config-file: "/etc/kubernetes/pod-security-standard.yaml" + audit-log-path: /var/log/apiserver/audit.log + audit-policy-file: /etc/kubernetes/audit-policy.yaml + ``` + + - **Restricted**: A heavily restricted policy that follows Pod hardening best practices. This policy is set to warn + and audit and identifies Pods that require privileged access. + + You can enforce these policies at the cluster level or the Namespace level. For workloads that require privileged + access, you can relax `PodSecurity` enforcement by adding these labels in the Namespace: + + ```yaml + pod-security.kubernetes.io/enforce: privileged + pod-security.kubernetes.io/enforce-version: v1.26 + ``` + +### Kubeadm Configuration File + +The default pack YAML contains minimal configurations offered by the managed provider. + +### Configure OIDC Identity Provider + +You can configure an OpenID Connect (OIDC) identity provider to authenticate users and groups in your cluster. OIDC is +an authentication layer on top of OAuth 2.0, an authorization framework that allows users to authenticate to a cluster +without using a password. + + +OIDC requires a _Role Binding_ for the users or groups you want to provide cluster access. You must create a Role +Binding to a Kubernetes role that is available in the cluster. The Kubernetes role can be a custom role you created or a +[default Kubernetes role](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles), such as the +`cluster-admin` role. To learn how to create a Role Binding through Palette, refer to +. + +#### Configure Custom OIDC + +The custom method to configure OIDC and apply RBAC for an OIDC provider can be used for all cloud services except Amazon +Elastic Kubernetes Service (EKS) and Azure AKS. + + + + + + +Follow these steps to configure a third-party OIDC IDP. You can apply these steps to all the public cloud providers +except Azure AKS and Amazon EKS clusters. Azure AKS and Amazon EKS require different configurations. AKS requires you to +use Azure Active Directory (AAD) to enable OIDC integration. Refer to +to learn more. Click the **Amazon EKS** tab for steps to configure OIDC for EKS clusters. + +1. Add the following parameters to your Kubernetes YAML file when creating a cluster profile. Replace the + `identityProvider` value with your OIDC provider name. + + ```yaml + pack: + palette: + config: + oidc: + identityProvider: yourIdentityProviderNameHere + ``` + +2. Add the following `kubeadmconfig` parameters. Replace the values with your OIDC provider values. + + ```yaml + kubeadmconfig: + apiServer: + extraArgs: + oidc-issuer-url: "provider URL" + oidc-client-id: "client-id" + oidc-groups-claim: "groups" + oidc-username-claim: "email" + ``` + +3. Under the `clientConfig` parameter section of Kubernetes YAML file, uncomment the `oidc-` configuration lines. + + ```yaml + kubeadmconfig: + clientConfig: + oidc-issuer-url: "" + oidc-client-id: "" + oidc-client-secret: "" + oidc-extra-scope: profile,email,openid + ``` + + + + + +Follow these steps to configure OIDC for managed EKS clusters. + +1. In the Kubernetes pack, uncomment the lines in the `oidcIdentityProvider` parameter section of the Kubernetes pack, + and enter your third-party provider details. + + ```yaml + oidcIdentityProvider: + identityProviderConfigName: "Spectro-docs" + issuerUrl: "issuer-url" + clientId: "user-client-id-from-Palette" + usernameClaim: "email" + usernamePrefix: "-" + groupsClaim: "groups" + groupsPrefix: "" + requiredClaims: + ``` + +2. Under the `clientConfig` parameter section of Kubernetes pack, uncomment the `oidc-` configuration lines. + + ```yaml + clientConfig: + oidc-issuer-url: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.issuerUrl }}" + oidc-client-id: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.clientId }}" + oidc-client-secret: yourSecretKeyHere + oidc-extra-scope: profile,email + ``` + +3. Provide third-party OIDC IDP details. + + +4. Refer to the for guidance on how to access an EKS cluster. + + + + + + + + + + +The Kubeadm configuration file is where you can do the following: + +- Change the default `podCIDR` and `serviceClusterIpRange` values. CIDR IPs specified in the configuration file take + precedence over other defined CIDR IPs in your environment. + + As you build your cluster, check that the `podCIDR` value does not overlap with any hosts or with the service network + and the `serviceClusterIpRange` value does not overlap with any IP ranges assigned to nodes or pods. + + +- Change the default cluster DNS service domain from `cluster.local` to a DNS domain that you specify. You can only + change the DNS domain during cluster creation. For more information, refer to + . + + +- Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more + information, refer to the guide. + +### Change Cluster DNS Service Domain + +The `pack.serviceDomain` parameter with default value `cluster.local` is not visible in the Kubernetes YAML file, and +its value can only be changed at cluster creation. To change the value, you must add `serviceDomain: "cluster.local"` to +the Kubernetes YAML file when you create a cluster, and specify the service domain you want to use. + +```yaml hideClipboard +pack: + k8sHardening: True + podCIDR: "172.16.0.0/16" + serviceClusterIPRange: "10.96.0.0/12" + serviceDomain: "" +``` + +:::warning + +You can only specify the service domain at cluster creation. After cluster creation completes, you cannot update the +value. Attempting to update it results in the error `serviceDomain update is forbidden for existing cluster`. + +::: + +For more information about networking configuration with DNS domains, refer to the Kubernetes +[Networking](https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta3/#kubeadm-k8s-io-v1beta3-Networking) +API documentation. + +### Configuration Changes + +The Kubeadm config is updated with hardening improvements that do the following: + +- Meet CIS standards for operating systems (OS). + + +- Enable a Kubernetes audit policy in the pack. The audit policy is hidden, and you cannot customize the default audit + policy. If you want to apply your custom audit policy, refer to the + guide to learn how to create your custom audit policy + by adjusting the API server flags. + +- Replace a deprecated PodSecurityPolicy (PSP) with one that offers three built-in policy profiles for broad security + coverage: + + - **Privileged**: An unrestricted policy that provides wide permission levels and allows for known privilege + escalations. + + - **Baseline**: A policy that offers minimal restrictions and prevents known privilege escalations. As shown in the + example below, you can override the default cluster-wide policy to set baseline enforcement by enabling the + `PodSecurity` Admission plugin in the `enable-admission-plugins` section of the YAML file. You can then add a custom + Admission configuration and set the `admission-control-config-file` flag to the custom Admission. + + ```yaml + kubeadmconfig: + apiServer: + extraArgs: + secure-port: "6443" + anonymous-auth: "true" + profiling: "false" + disable-admission-plugins: "AlwaysAdmit" + default-not-ready-toleration-seconds: "60" + default-unreachable-toleration-seconds: "60" + enable-admission-plugins: "AlwaysPullImages,NamespaceLifecycle,ServiceAccount,NodeRestriction,PodSecurity" + admission-control-config-file: "/etc/kubernetes/pod-security-standard.yaml" + audit-log-path: /var/log/apiserver/audit.log + audit-policy-file: /etc/kubernetes/audit-policy.yaml + ``` + + - **Restricted**: A heavily restricted policy that follows Pod hardening best practices. This policy is set to warn + and audit and identifies Pods that require privileged access. + + You can enforce these policies at the cluster level or the Namespace level. For workloads that require privileged + access, you can relax `PodSecurity` enforcement by adding these labels in the Namespace: + + ```yaml + pod-security.kubernetes.io/enforce: privileged + pod-security.kubernetes.io/enforce-version: v1.26 + ``` + +### Kubeadm Configuration File + +The default pack YAML contains minimal configurations offered by the managed provider. + +### Configure OIDC Identity Provider + +You can configure an OpenID Connect (OIDC) identity provider to authenticate users and groups in your cluster. OIDC is +an authentication layer on top of OAuth 2.0, an authorization framework that allows users to authenticate to a cluster +without using a password. + +OIDC requires a _Role Binding_ for the users or groups you want to provide cluster access. You must create a Role +Binding to a Kubernetes role that is available in the cluster. The Kubernetes role can be a custom role you created or a +[default Kubernetes role](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles), such as the +`cluster-admin` role. To learn how to create a Role Binding through Palette, refer to +. + +#### Configure Custom OIDC + +The custom method to configure OIDC and apply RBAC for an OIDC provider can be used for all cloud services except Amazon +Elastic Kubernetes Service (EKS) and Azure AKS. + + + + + + +Follow these steps to configure a third-party OIDC IDP. You can apply these steps to all the public cloud providers +except Azure AKS and Amazon EKS clusters. Azure AKS and Amazon EKS require different configurations. AKS requires you to +use Azure Active Directory (AAD) to enable OIDC integration. Refer to +to learn more. Click the **Amazon EKS** tab for steps to configure OIDC for EKS clusters. + +1. Add the following parameters to your Kubernetes YAML file when creating a cluster profile. Replace the + `identityProvider` value with your OIDC provider name. + + ```yaml + pack: + palette: + config: + oidc: + identityProvider: yourIdentityProviderNameHere + ``` + +2. Add the following `kubeadmconfig` parameters. Replace the values with your OIDC provider values. + + ```yaml + kubeadmconfig: + apiServer: + extraArgs: + oidc-issuer-url: "provider URL" + oidc-client-id: "client-id" + oidc-groups-claim: "groups" + oidc-username-claim: "email" + ``` + +3. Under the `clientConfig` parameter section of Kubernetes YAML file, uncomment the `oidc-` configuration lines. + + ```yaml + kubeadmconfig: + clientConfig: + oidc-issuer-url: "" + oidc-client-id: "" + oidc-client-secret: "" + oidc-extra-scope: profile,email,openid + ``` + + + + + +Follow these steps to configure OIDC for managed EKS clusters. + +1. In the Kubernetes pack, uncomment the lines in the `oidcIdentityProvider` parameter section of the Kubernetes pack, + and enter your third-party provider details. + +```yaml +oidcIdentityProvider: + identityProviderConfigName: "Spectro-docs" + issuerUrl: "issuer-url" + clientId: "user-client-id-from-Palette" + usernameClaim: "email" + usernamePrefix: "-" + groupsClaim: "groups" + groupsPrefix: "" + requiredClaims: +``` + +2. Under the `clientConfig` parameter section of Kubernetes pack, uncomment the `oidc-` configuration lines. + +```yaml +clientConfig: + oidc-issuer-url: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.issuerUrl }}" + oidc-client-id: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.clientId }}" + oidc-client-secret: yourSecretKeyHere + oidc-extra-scope: profile,email +``` + +3. Provide third-party OIDC IDP details. + + +4. Refer to the for guidance on how to access an EKS cluster. + + + + + + + + + + diff --git a/_partials/packs/_rke2.mdx b/_partials/packs/_rke2.mdx new file mode 100644 index 0000000000..a19ee0b2f0 --- /dev/null +++ b/_partials/packs/_rke2.mdx @@ -0,0 +1,72 @@ +--- +partial_category: packs +partial_name: rke2 +--- + + +## Versions Supported + + + + + + +You can add RKE2 to an Edge cluster profile as the Kubernetes layer. Refer to the guide to learn more. + +RKE2 offers several customization options, ranging from networking to security. We recommend you review the following +RKE2 documentation: + +- [Configuration Options](https://docs.rke2.io/install/configuration) + +- [Inbound Network Rules](https://docs.rke2.io/install/requirements#inbound-network-rules) + +- [Registries Configuration](https://docs.rke2.io/install/containerd_registry_configuration) + +- [Advanced Options](https://docs.rke2.io/advanced) + + +Many of the Day-2 cluster management responsibilities are handled by Palette. Review the reference resource to learn more about Palette and Day-2 operations. + + + + + + +You can add RKE2 to an Edge cluster profile as the Kubernetes layer. Refer to the guide to learn more. + +RKE2 offers several customization options, ranging from networking to security. We recommend you review the following +RKE2 documentation: + +- [Configuration Options](https://docs.rke2.io/install/configuration) + +- [Inbound Network Rules](https://docs.rke2.io/install/requirements#inbound-network-rules) + +- [Registries Configuration](https://docs.rke2.io/install/containerd_registry_configuration) + +- [Advanced Options](https://docs.rke2.io/advanced) + + +Many of the Day-2 cluster management responsibilities are handled by Palette. Review the reference resource to learn more about Palette and Day-2 operations. + + + + + +You can add RKE2 to an Edge cluster profile as the Kubernetes layer. Refer to the guide to learn more. + +RKE2 offers several customization options, ranging from networking to security. We recommend you review the following +RKE2 documentation: + +- [Configuration Options](https://docs.rke2.io/install/configuration) + +- [Inbound Network Rules](https://docs.rke2.io/install/requirements#inbound-network-rules) + +- [Registries Configuration](https://docs.rke2.io/install/containerd_registry_configuration) + +- [Advanced Options](https://docs.rke2.io/advanced) + + +Many of the Day-2 cluster management responsibilities are handled by Palette. Review the reference resource to learn more about Palette and Day-2 operations. + + + \ No newline at end of file diff --git a/docs/docs-content/byoos/usecases/vmware/konvoy.md b/docs/docs-content/byoos/usecases/vmware/konvoy.md index e25d442f97..5080c3fcaf 100644 --- a/docs/docs-content/byoos/usecases/vmware/konvoy.md +++ b/docs/docs-content/byoos/usecases/vmware/konvoy.md @@ -9,8 +9,9 @@ sidebar_position: 10 tags: ["operating system", "byoos", "profiles", "konvoy", "vmware"] --- + This guide provides instructions for building a custom image using Red Hat Linux Enterprise (RHEL) with Konvoy. The -guide assumes that you have a basic understanding of VMware vSphere, RHEL and [Konvoy](../../../integrations/konvoy.md). +guide assumes that you have a basic understanding of VMware vSphere, RHEL and . You will use the [Konvoy image builder](https://github.com/mesosphere/konvoy-image-builder) project to build the custom RHEL image with Konvoy. The custom image will be used to deploy a Kubernetes cluster on VMware vSphere. @@ -186,9 +187,10 @@ instructions on how to build the custom RHEL with Konvoy image. + 7. Review the **images/common.yaml** file and modify the file if necessary. The **common.yaml** file is where you - specify the Kubernetes version. Refer to the [Konvoy](../../../integrations/konvoy.md) pack reference page to learn - about supported Konvoy versions. + specify the Kubernetes version. Refer to the pack reference page to learn about + supported Konvoy versions. ```yaml hideClipboard {2} --- @@ -329,9 +331,10 @@ instructions on how to build the custom RHEL with Konvoy image. + 7. Review the **images/common.yaml** file and modify the file if necessary. The **common.yaml** file is where you - specify the Kubernetes version. Refer to the[Konvoy](../../../integrations/konvoy.md) pack reference page to learn - about supported Konvoy versions. + specify the Kubernetes version. Refer to the pack reference page to learn about + supported Konvoy versions. ```yaml hideClipboard {2} --- diff --git a/docs/docs-content/clusters/cluster-management/cluster-rbac.md b/docs/docs-content/clusters/cluster-management/cluster-rbac.md index c7d984b843..826f16f8f6 100644 --- a/docs/docs-content/clusters/cluster-management/cluster-rbac.md +++ b/docs/docs-content/clusters/cluster-management/cluster-rbac.md @@ -130,9 +130,10 @@ To create a role binding the role must exist inside the host cluster. You can us [default cluster roles](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles) provided by Kubernetes. The alternative to default cluster roles is to create a role by using a manifest in the cluster profile. + If you have OpenID Connect (OIDC) configured at the Kubernetes layer of your cluster profile, you can create a role binding that maps individual users or groups assigned within the OIDC provider's configuration to a role. To learn more, -review [Use RBAC with OIDC](../../integrations/kubernetes-generic.md#configure-custom-oidc). +review . ### Enablement diff --git a/docs/docs-content/clusters/public-cloud/aws/eks.md b/docs/docs-content/clusters/public-cloud/aws/eks.md index 44175858f7..428e5773b4 100644 --- a/docs/docs-content/clusters/public-cloud/aws/eks.md +++ b/docs/docs-content/clusters/public-cloud/aws/eks.md @@ -239,8 +239,10 @@ To use custom OIDC, you need to do the following: more information and to learn about other available helper applications, you can visit [OIDC Identity Provider authentication for Amazon EKS](https://aws.amazon.com/blogs/containers/introducing-oidc-identity-provider-authentication-amazon-eks/). + - Configure OIDC in the Kubernetes pack YAML file. Refer to steps for Amazon EKS in the - [Configure Custom OIDC](../../../integrations/kubernetes-generic.md#configure-custom-oidc) guide. + guide. + - Map a set of users or groups to a Kubernetes RBAC role. To learn how to map a Kubernetes role to users and groups, refer to [Create Role Bindings](../../cluster-management/cluster-rbac.md#create-role-bindings). Refer to diff --git a/docs/docs-content/integrations/edge-rke2.md b/docs/docs-content/integrations/edge-rke2.md new file mode 100644 index 0000000000..c816161eed --- /dev/null +++ b/docs/docs-content/integrations/edge-rke2.md @@ -0,0 +1,47 @@ +--- +sidebar_label: "RKE2" +title: "RKE2" +description: "RKE2 pack in Palette" +hide_table_of_contents: true +type: "integration" +category: ["kubernetes", "amd64", "fips"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.dev.spectrocloud.com/v1/kubernetes-rke2/blobs/sha256:47cde61005d9996f1571c132ba9f753982134a7a0d8e445e27001ab8519e6051?type=image.webp" +--- + +### Support Lifecycle + + +We support other Kubernetes distributions such as K3s, Microk8s, and RKE2 until their official EOL. The EOL is set by +the respective owner. Once we stop supporting the minor version, we initiate the deprecation process. Refer to the + + guide to learn more. + +:::warning + + +Once you upgrade your cluster to a new Kubernetes version, you will not be able to downgrade. We recommend that, before +upgrading, you review the information provided in the +section. + +Review the to learn about pack +update and deprecation schedules. + +::: + + + +## Terraform + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "k8s" { + name = "edge-rke2" + version = "1.29.5" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/konvoy.md b/docs/docs-content/integrations/konvoy.md deleted file mode 100644 index ea7137b653..0000000000 --- a/docs/docs-content/integrations/konvoy.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -sidebar_label: "Konvoy" -title: "Konvoy" -description: "Konvoy Kubernetes distribution" -hide_table_of_contents: true -type: "integration" -category: ["kubernetes", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/k8s-dashboard/blobs/sha256:2de5d88b2573af42d4cc269dff75744c4174ce47cbbeed5445e51a2edd8b7429?type=image/webp" -tags: ["packs", "konvoy", "kubernetes"] ---- - -[Konvoy](https://d2iq.com/products/konvoy) is a Kubernetes distribution by D2iQ. It is built on pure open-source -Kubernetes and includes a full suite of integrated and supported best-of-breed Day-2 platform applications for an -out-of-the-box, production-ready experience. - -Palette offers Konvoy as an available Kubernetes distribution for creating and managing clusters. You can use Konvoy -when creating a [cluster profile](../profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md) and -then use it to create a cluster. - -## Versions Supported - - - - - -## Prerequisites - -- A minimum of 4 CPU and 4 GB Memory. - -- Users or groups mapped to a Kubernetes RBAC role. - -- Konvoy requires the [BYOOS](./byoos.md) pack to reference the image created through the Konvoy image builder project. - Refer to the [Usage](#usage) section for more information. - -- Operating System (OS) dependencies as listed in the table. - -### Supported Infrastructure Platforms - -Palette supports the following infrastructure platforms and Operating Systems (OS) combinations for Konvoy. - -- RHEL version 8.8 or later for VMware vSphere. - - - -## Parameters - -| Parameter | Description | -| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `pack.palette.config.oidcidentityProvider` | OIDC identity provider configuration. | -| `pack.podCIDR` | The CIDR range for Pods in cluster. This should match the networking layer property. Default: `192.168.0.0/16` | -| `pack.serviceClusterIpRange` | The CIDR range for services in the cluster. This should not overlap with any IP ranges assigned to nodes or pods. Default: `10.96.0.0/12` | -| `pack.serviceDomain` | The cluster DNS service domain. Default: `cluster.local`. To change the default, you must add this parameter to the Kubernetes YAML file at cluster creation and specify the cluster DNS service domain to use. This value cannot be changed after cluster creation is complete. Refer to the [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain) section. | -| `kubeadmconfig.apiServer.extraArgs` | A list of additional apiServer flags you can set. | -| `kubeadmconfig.apiServer.extraVolumes` | A list of additional volumes to mount on apiServer. | -| `kubeadmconfig.controllerManager.extraArgs` | A list of additional ControllerManager flags to set. | -| `kubeadmconfig.scheduler.extraArgs` | A list of additional Kube scheduler flags to set. | -| `kubeadmconfig.kubeletExtraArgs` | A list of kubelet arguments to set and copy to the nodes. | -| `kubeadmconfig.files` | A list of additional files to copy to the nodes. | -| `kubeadmconfig.preKubeadmCommands` | A list of additional commands to invoke **before** running kubeadm commands. | -| `kubeadmconfig.postKubeadmCommands` | A list of additional commands to invoke **after** running kubeadm commands. | - -## Usage - -To use Konvoy, you must use the [Konvoy image builder project](https://github.com/mesosphere/konvoy-image-builder) to -create a custom image. The custom image contains the underlying OS and Kubernetes components. You can then use the -[BYOOS](./byoos.md) pack to reference the custom image when creating a cluster profile. - -:::info - -Check out the [RHEL and Konvoy](../byoos/usecases/vmware/konvoy.md) guide to learn how to create a custom image using -the Konvoy image builder project. - -::: - -Select Konvoy as the Kubernetes distribution when choosing a Kubernetes distribution in the cluster profile. - -![A view of the cluster profile Kubernetes selection screen](/byoos_vmware_konvoy_cluster-profile-view.webp) - - - - -:::warning - -All versions less than v1.27.x are considered deprecated. Upgrade to a newer version to take advantage of new features. - -::: - - - - -## Terraform - -You can retrieve details about the Konvoy pack by using the following Terraform code. Change the version number to the -version you want to use. - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "k8s" { - name = "kubernetes-konvoy" - version = "1.27.6" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - -## References - -- [Konvoy](https://d2iq.com/products/konvoy) - -- [RHEL and Konvoy](../byoos/usecases/vmware/konvoy.md) - -- [Konvoy Image Builder](https://github.com/mesosphere/konvoy-image-builder) diff --git a/docs/docs-content/integrations/kubernetes-aks.md b/docs/docs-content/integrations/kubernetes-aks.md new file mode 100644 index 0000000000..2e6a18b2be --- /dev/null +++ b/docs/docs-content/integrations/kubernetes-aks.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "Kubernetes" +title: "Kubernetes" +description: "Learn about the Kubernetes pack and how you can use it with your host clusters." +hide_table_of_contents: true +type: "integration" +category: ["kubernetes", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "kubernetes"] +--- + + + +## Terraform + +You can retrieve details about the Kubernetes pack for AWS EKS by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "k8s" { + name = "kubernetes-aks" + version = "1.29" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/kubernetes-custom.md b/docs/docs-content/integrations/kubernetes-custom.md new file mode 100644 index 0000000000..e9d84362bd --- /dev/null +++ b/docs/docs-content/integrations/kubernetes-custom.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "Kubernetes" +title: "Kubernetes" +description: "Learn about the Kubernetes pack and how you can use it with your host clusters." +hide_table_of_contents: true +type: "integration" +category: ["kubernetes", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "kubernetes"] +--- + + + +## Terraform + +You can retrieve details about the Kubernetes pack for custom clouds by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "k8s" { + name = "kubernetes-custom" + version = "1.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/kubernetes-eks.md b/docs/docs-content/integrations/kubernetes-eks.md new file mode 100644 index 0000000000..890a8d771f --- /dev/null +++ b/docs/docs-content/integrations/kubernetes-eks.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "Kubernetes" +title: "Kubernetes" +description: "Learn about the Kubernetes pack and how you can use it with your host clusters." +hide_table_of_contents: true +type: "integration" +category: ["kubernetes", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "kubernetes"] +--- + + + +## Terraform + +You can retrieve details about the Kubernetes pack for AWS EKS by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "k8s" { + name = "kubernetes-eks" + version = "1.29" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/kubernetes-generic.md b/docs/docs-content/integrations/kubernetes-generic.md deleted file mode 100644 index 7c8ff14973..0000000000 --- a/docs/docs-content/integrations/kubernetes-generic.md +++ /dev/null @@ -1,830 +0,0 @@ ---- -sidebar_label: "Kubernetes" -title: "Kubernetes" -description: "Learn about the Kubernetes pack and how you can use it with your host clusters." -hide_table_of_contents: true -type: "integration" -category: ["kubernetes", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/k8s-dashboard/blobs/sha256:2de5d88b2573af42d4cc269dff75744c4174ce47cbbeed5445e51a2edd8b7429?type=image.webp" -tags: ["packs", "kubernetes"] ---- - -The Cloud Native Computing Foundation's (CNCF) Kubernetes pack supports several cloud and data center infrastructure -providers. This pack defines the default properties we use to deploy Kubernetes clusters and enables most of the -Kubernetes hardening standards that the Center for Internet Security (CIS) recommends. - -We also support managed Kubernetes distributions for Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), -Google Kubernetes Engine (GKE), and Tencent Kubernetes Engine (TKE). - -:::warning - -Once you upgrade your cluster to a new Kubernetes version, you will not be able to downgrade. We recommend that, before -upgrading, you review the information provided in the [Kubernetes Upgrades](kubernetes-support.md#kubernetes-upgrades) -section. - -Review the [Maintenance Policy](maintenance-policy.md) to learn about pack update and deprecation schedules. - -::: - -
- -### Support Lifecycle - -We support CNCF Kubernetes for N-3 Kubernetes minor versions for a duration of 14 months. The duration exceeds the -official EOL by four months. Once we stop supporting the minor version, we initiate the deprecation process. Refer to -the [Kubernetes Support Lifecycle](kubernetes-support.md#palette-extended-kubernetes-support) guide to learn more. - -## Versions Supported - - - - -## Prerequisites - -- A minimum of 4 CPU and 4 GB memory. - -- Users or groups mapped to a Kubernetes RBAC role. - -- Operating System (OS) dependencies as listed in the table. - -| OS Distribution | OS Version | Supports Kubernetes 1.29.x | -| --------------- | ---------- | -------------------------- | -| CentOS | 7.7 | ❌ | -| Ubuntu | 22.04 | ✅ | -| Ubuntu | 20.04 | ❌ | - -## Parameters - -| Parameter | Description | -| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `pack.palette.config.oidcidentityProvider` | OIDC identity provider configuration. | -| `pack.podCIDR` | The CIDR range for Pods in cluster. This should match the networking layer property. Default: `192.168.0.0/16`. | -| `pack.serviceClusterIpRange` | The CIDR range for services in the cluster. This should not overlap with any IP ranges assigned to nodes or pods. Default: `10.96.0.0/12`. | -| `pack.serviceDomain` | The cluster DNS service domain. Default: `cluster.local`. To change the default, you must add this parameter to the Kubernetes YAML file at cluster creation and specify the cluster DNS service domain to use. This value cannot be changed after the cluster creation is complete. Refer to the [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain) section. | -| `kubeadmconfig.apiServer.extraArgs` | A list of additional `apiServer` flags you can set. | -| `kubeadmconfig.apiServer.extraVolumes` | A list of additional volumes to mount on `apiServer`. | -| `kubeadmconfig.controllerManager.extraArgs` | A list of additional `ControllerManager` flags to set. | -| `kubeadmconfig.scheduler.extraArgs` | A list of additional Kube scheduler flags to set. | -| `kubeadmconfig.kubeletExtraArgs` | A list of kubelet arguments to set and copy to the nodes. | -| `kubeadmconfig.files` | A list of additional files to copy to the nodes. | -| `kubeadmconfig.preKubeadmCommands` | A list of additional commands to invoke **before** running kubeadm commands. | -| `kubeadmconfig.postKubeadmCommands` | A list of additional commands to invoke **after** running kubeadm commands. | - -## Usage - -The Kubeadm configuration file is where you can do the following: - -- Change the default `podCIDR` and `serviceClusterIpRange` values. CIDR IPs specified in the configuration file take - precedence over other defined CIDR IPs in your environment. - - As you build your cluster, check that the `podCIDR` value does not overlap with any hosts or with the service network - and the `serviceClusterIpRange` value does not overlap with any IP ranges assigned to nodes or pods. For more - information, refer to the [Clusters](../clusters/clusters.md) guide and - [Cluster Deployment Errors](../troubleshooting/cluster-deployment.md). - -- Change the default cluster DNS service domain from `cluster.local` to a DNS domain that you specify. You can only - change the DNS domain during cluster creation. For more information, refer to - [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain). - -- Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the guide. - -### Change Cluster DNS Service Domain - -The `pack.serviceDomain` parameter with default value `cluster.local` is not visible in the Kubernetes YAML file, and -its value can only be changed at cluster creation. To change the value, you must add `serviceDomain: "cluster.local"` to -the Kubernetes YAML file when you create a cluster, and specify the service domain you want to use. - -```yaml hideClipboard -pack: - k8sHardening: True - podCIDR: "172.16.0.0/16" - serviceClusterIPRange: "10.96.0.0/12" - serviceDomain: "" -``` - -:::warning - -You can specify the service domain only at cluster creation. After the cluster creation completes, you cannot update the -value. Attempting to update it results in the error `serviceDomain update is forbidden for existing cluster`. - -::: - -For more information about networking configuration with DNS domains, refer to the Kubernetes -[Networking](https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta3/#kubeadm-k8s-io-v1beta3-Networking) -API documentation. - -### Configuration Changes - -The Kubeadm config is updated with hardening improvements that do the following: - -- Meet CIS standards for Operating Systems (OS). - -- Enable a Kubernetes audit policy in the pack. The audit policy is hidden, and you cannot customize the default audit - policy. If you want to apply your custom audit policy, refer to the - [Enable Audit Logging](../audit-logs/kube-api-audit-logging.md) guide to learn how to create your custom audit policy - by adjusting the API server flags. - -- Replace a deprecated PodSecurityPolicy (PSP) with one that offers three built-in policy profiles for broad security - coverage: - - - **Privileged**: An unrestricted policy that provides wide permission levels and allows for known privilege - escalations. - - - **Baseline**: A policy that offers minimal restrictions and prevents known privilege escalations. As shown in the - example below, you can override the default cluster-wide policy to set baseline enforcement by enabling the - `PodSecurity` Admission plugin in the `enable-admission-plugins` section of the YAML file. You can then add a custom - Admission configuration and set the `admission-control-config-file` flag to the custom Admission. - - ```yaml - kubeadmconfig: - apiServer: - extraArgs: - secure-port: "6443" - anonymous-auth: "true" - profiling: "false" - disable-admission-plugins: "AlwaysAdmit" - default-not-ready-toleration-seconds: "60" - default-unreachable-toleration-seconds: "60" - enable-admission-plugins: "AlwaysPullImages,NamespaceLifecycle,ServiceAccount,NodeRestriction,PodSecurity" - admission-control-config-file: "/etc/kubernetes/pod-security-standard.yaml" - audit-log-path: /var/log/apiserver/audit.log - audit-policy-file: /etc/kubernetes/audit-policy.yaml - ``` - - - **Restricted**: A heavily restricted policy that follows the best practices of Pod hardening. This policy is set to - warn and audit and identifies Pods that require privileged access. - - You can enforce these policies at the Cluster or Namespace level. For workloads that require privileged access, you - can relax `PodSecurity` enforcement by adding these labels in the Namespace: - - ```yaml - pod-security.kubernetes.io/enforce: privileged - pod-security.kubernetes.io/enforce-version: v1.26 - ``` - -### Kubeadm Configuration File - -The default pack YAML contains minimal configurations offered by the managed provider. - -### Configure OIDC Identity Provider - -You can configure an OpenID Connect (OIDC) identity provider to authenticate users and groups in your cluster. OIDC is -an authentication layer on top of OAuth 2.0, an authorization framework that allows users to authenticate to a cluster -without using a password. - -OIDC requires a _Role Binding_ for the users or groups you want to provide cluster access. You must create a Role -Binding to a Kubernetes role that is available in the cluster. The Kubernetes role can be a custom role you created or a -[default Kubernetes role](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles), such as the -`cluster-admin` role. To learn how to create a Role Binding through Palette, refer to -[Create Role Bindings](../clusters/cluster-management/cluster-rbac.md#create-role-bindings). - -#### Configure Custom OIDC - -The custom method to configure OIDC and apply RBAC for an OIDC provider can be used for all cloud services except Amazon -Elastic Kubernetes Service (EKS) and [Azure-AKS](../clusters/public-cloud/azure/aks.md). - - - - - -Follow these steps to configure a third-party OIDC IDP. You can apply these steps to all the public cloud providers -except Azure AKS and Amazon EKS clusters. Azure AKS and Amazon EKS require different configurations. AKS requires you to -use Azure Active Directory (AAD) to enable OIDC integration. Refer to -[Enable OIDC in Kubernetes Clusters With Entra ID](../user-management/saml-sso/palette-sso-with-entra-id.md#enable-oidc-in-kubernetes-clusters-with-entra-id) -to learn more. Click the **Amazon EKS** tab for steps to configure OIDC for EKS clusters. - -1. Add the following parameters to your Kubernetes YAML file when creating a cluster profile. Replace the - `identityProvider` value with your OIDC provider name. - - ```yaml - pack: - palette: - config: - oidc: - identityProvider: yourIdentityProviderNameHere - ``` - -2. Add the following `kubeadmconfig` parameters. Replace the values with your OIDC provider values. - - ```yaml - kubeadmconfig: - apiServer: - extraArgs: - oidc-issuer-url: "provider URL" - oidc-client-id: "client-id" - oidc-groups-claim: "groups" - oidc-username-claim: "email" - ``` - -3. Under the `clientConfig` parameter section of Kubernetes YAML file, uncomment the `oidc-` configuration lines. - - ```yaml - kubeadmconfig: - clientConfig: - oidc-issuer-url: "" - oidc-client-id: "" - oidc-client-secret: "" - oidc-extra-scope: profile,email,openid - ``` - - - - - -Follow these steps to configure OIDC for managed EKS clusters. - -1. In the Kubernetes pack, uncomment the lines in the `oidcIdentityProvider` parameter section of the Kubernetes pack, - and enter your third-party provider details. - - ```yaml - oidcIdentityProvider: - identityProviderConfigName: "Spectro-docs" - issuerUrl: "issuer-url" - clientId: "user-client-id-from-Palette" - usernameClaim: "email" - usernamePrefix: "-" - groupsClaim: "groups" - groupsPrefix: "" - requiredClaims: - ``` - -2. Under the `clientConfig` parameter section of Kubernetes pack, uncomment the `oidc-` configuration lines. - - ```yaml - clientConfig: - oidc-issuer-url: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.issuerUrl }}" - oidc-client-id: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.clientId }}" - oidc-client-secret: yourSecretKeyHere - oidc-extra-scope: profile,email - ``` - -3. Provide third-party OIDC IDP details. - -4. Refer to the [Access EKS Cluster](../clusters/public-cloud/aws/eks.md#access-eks-cluster) for guidance on how to - access an EKS cluster. - - - - - - - -## Prerequisites - -- A minimum of 4 CPU and 4GB Memory. - -- Users or groups mapped to a Kubernetes RBAC role. - -- Operating System (OS) dependencies as listed in the table. - -| OS Distribution | OS Version | Supports Kubernetes 1.28.x | -| --------------- | ---------- | -------------------------- | -| CentOS | 7.7 | ❌ | -| Ubuntu | 22.04 | ✅ | -| Ubuntu | 20.04 | ❌ | - -## Parameters - -| Parameter | Description | -| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `pack.palette.config.oidcidentityProvider` | OIDC identity provider configuration. | -| `pack.podCIDR` | The CIDR range for Pods in cluster. This should match the networking layer property. Default: `192.168.0.0/16` | -| `pack.serviceClusterIpRange` | The CIDR range for services in the cluster. This should not overlap with any IP ranges assigned to nodes or pods. Default: `10.96.0.0/12` | -| `pack.serviceDomain` | The cluster DNS service domain. Default: `cluster.local`. To change the default, you must add this parameter to the Kubernetes YAML file at cluster creation and specify the cluster DNS service domain to use. This value cannot be changed after cluster creation is complete. Refer to the [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain) section. | -| `kubeadmconfig.apiServer.extraArgs` | A list of additional apiServer flags you can set. | -| `kubeadmconfig.apiServer.extraVolumes` | A list of additional volumes to mount on apiServer. | -| `kubeadmconfig.controllerManager.extraArgs` | A list of additional ControllerManager flags to set. | -| `kubeadmconfig.scheduler.extraArgs` | A list of additional Kube scheduler flags to set. | -| `kubeadmconfig.kubeletExtraArgs` | A list of kubelet arguments to set and copy to the nodes. | -| `kubeadmconfig.files` | A list of additional files to copy to the nodes. | -| `kubeadmconfig.preKubeadmCommands` | A list of additional commands to invoke **before** running kubeadm commands. | -| `kubeadmconfig.postKubeadmCommands` | A list of additional commands to invoke **after** running kubeadm commands. | - -## Usage - -The Kubeadm configuration file is where you can do the following: - -- Change the default `podCIDR` and `serviceClusterIpRange` values. CIDR IPs specified in the configuration file take - precedence over other defined CIDR IPs in your environment. - - As you build your cluster, check that the `podCIDR` value does not overlap with any hosts or with the service network - and the `serviceClusterIpRange` value does not overlap with any IP ranges assigned to nodes or pods. For more - information, refer to the [Clusters](../clusters/clusters.md) guide and - [Cluster Deployment Errors](../troubleshooting/cluster-deployment.md). - -- Change the default cluster DNS service domain from `cluster.local` to a DNS domain that you specify. You can only - change the DNS domain during cluster creation. For more information, refer to - [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain). - -- Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the guide. - -### Change Cluster DNS Service Domain - -The `pack.serviceDomain` parameter with default value `cluster.local` is not visible in the Kubernetes YAML file, and -its value can only be changed at cluster creation. To change the value, you must add `serviceDomain: "cluster.local"` to -the Kubernetes YAML file when you create a cluster, and specify the service domain you want to use. - -```yaml hideClipboard -pack: - k8sHardening: True - podCIDR: "172.16.0.0/16" - serviceClusterIPRange: "10.96.0.0/12" - serviceDomain: "" -``` - -:::warning - -You can only specify the service domain at cluster creation. After cluster creation completes, you cannot update the -value. Attempting to update it results in the error `serviceDomain update is forbidden for existing cluster`. - -::: - -For more information about networking configuration with DNS domains, refer to the Kubernetes -[Networking](https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta3/#kubeadm-k8s-io-v1beta3-Networking) -API documentation. - -### Configuration Changes - -The Kubeadm config is updated with hardening improvements that do the following: - -- Meet CIS standards for operating systems (OS). - -- Enable a Kubernetes audit policy in the pack. The audit policy is hidden, and you cannot customize the default audit - policy. If you want to apply your custom audit policy, refer to the - [Enable Audit Logging](../audit-logs/kube-api-audit-logging.md) guide to learn how to create your custom audit policy - by adjusting API server flags. - -- Replace a deprecated PodSecurityPolicy (PSP) with one that offers three built-in policy profiles for broad security - coverage: - - - **Privileged**: An unrestricted policy that provides wide permission levels and allows for known privilege - escalations. - - - **Baseline**: A policy that offers minimal restrictions and prevents known privilege escalations. As shown in the - example below, you can override the default cluster-wide policy to set baseline enforcement by enabling the - `PodSecurity` Admission plugin in the `enable-admission-plugins` section of the YAML file. You can then add a custom - Admission configuration and set the `admission-control-config-file` flag to the custom Admission. - - ```yaml - kubeadmconfig: - apiServer: - extraArgs: - secure-port: "6443" - anonymous-auth: "true" - profiling: "false" - disable-admission-plugins: "AlwaysAdmit" - default-not-ready-toleration-seconds: "60" - default-unreachable-toleration-seconds: "60" - enable-admission-plugins: "AlwaysPullImages,NamespaceLifecycle,ServiceAccount,NodeRestriction,PodSecurity" - admission-control-config-file: "/etc/kubernetes/pod-security-standard.yaml" - audit-log-path: /var/log/apiserver/audit.log - audit-policy-file: /etc/kubernetes/audit-policy.yaml - ``` - - - **Restricted**: A heavily restricted policy that follows Pod hardening best practices. This policy is set to warn - and audit and identifies Pods that require privileged access. - - You can enforce these policies at the cluster level or the Namespace level. For workloads that require privileged - access, you can relax `PodSecurity` enforcement by adding these labels in the Namespace: - - ```yaml - pod-security.kubernetes.io/enforce: privileged - pod-security.kubernetes.io/enforce-version: v1.26 - ``` - -### Kubeadm Configuration File - -The default pack YAML contains minimal configurations offered by the managed provider. - -### Configure OIDC Identity Provider - -You can configure an OpenID Connect (OIDC) identity provider to authenticate users and groups in your cluster. OIDC is -an authentication layer on top of OAuth 2.0, an authorization framework that allows users to authenticate to a cluster -without using a password. - -OIDC requires a _RoleBinding_ for the users or groups you want to provide cluster access. You must create a RoleBinding -to a Kubernetes role that is available in the cluster. The Kubernetes role can be a custom role you created or a -[default Kubernetes role](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles), such as the -`cluster-admin` role. To learn how to create a RoleBinding through Palette, refer to -[Create Role Bindings](../clusters/cluster-management/cluster-rbac.md#create-role-bindings). - -#### Configure Custom OIDC - -The custom method to configure OIDC and apply RBAC for an OIDC provider can be used for all cloud services except Amazon -Elastic Kubernetes Service (EKS) and [Azure-AKS](../clusters/public-cloud/azure/aks.md). - - - - - -Follow these steps to configure a third-party OIDC IDP. You can apply these steps to all the public cloud providers -except Azure AKS and Amazon EKS clusters. Azure AKS and Amazon EKS require different configurations. AKS requires you to -use Azure Active Directory (AAD) to enable OIDC integration. Refer to -[Enable OIDC in Kubernetes Clusters With Entra ID](../user-management/saml-sso/palette-sso-with-entra-id.md#enable-oidc-in-kubernetes-clusters-with-entra-id) -to learn more. Click the **Amazon EKS** tab for steps to configure OIDC for EKS clusters. - -1. Add the following parameters to your Kubernetes YAML file when creating a cluster profile. Replace the - `identityProvider` value with your OIDC provider name. - - ```yaml - pack: - palette: - config: - oidc: - identityProvider: yourIdentityProviderNameHere - ``` - -2. Add the following `kubeadmconfig` parameters. Replace the values with your OIDC provider values. - - ```yaml - kubeadmconfig: - apiServer: - extraArgs: - oidc-issuer-url: "provider URL" - oidc-client-id: "client-id" - oidc-groups-claim: "groups" - oidc-username-claim: "email" - ``` - -3. Under the `clientConfig` parameter section of Kubernetes YAML file, uncomment the `oidc-` configuration lines. - - ```yaml - kubeadmconfig: - clientConfig: - oidc-issuer-url: "" - oidc-client-id: "" - oidc-client-secret: "" - oidc-extra-scope: profile,email,openid - ``` - - - - - -Follow these steps to configure OIDC for managed EKS clusters. - -1. In the Kubernetes pack, uncomment the lines in the `oidcIdentityProvider` parameter section of the Kubernetes pack, - and enter your third-party provider details. - - ```yaml - oidcIdentityProvider: - identityProviderConfigName: "Spectro-docs" - issuerUrl: "issuer-url" - clientId: "user-client-id-from-Palette" - usernameClaim: "email" - usernamePrefix: "-" - groupsClaim: "groups" - groupsPrefix: "" - requiredClaims: - ``` - -2. Under the `clientConfig` parameter section of Kubernetes pack, uncomment the `oidc-` configuration lines. - - ```yaml - clientConfig: - oidc-issuer-url: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.issuerUrl }}" - oidc-client-id: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.clientId }}" - oidc-client-secret: yourSecretKeyHere - oidc-extra-scope: profile,email - ``` - -3. Provide third-party OIDC IDP details. - -4. Refer to the [Access EKS Cluster](../clusters/public-cloud/aws/eks.md#access-eks-cluster) for guidance on how to - access an EKS cluster. - - - - - - - -## Prerequisites - -- A minimum of 4 CPU and 4GB Memory. - -- Users or groups mapped to a Kubernetes RBAC role. - -- Operating System (OS) dependencies as listed in the table. - -| OS Distribution | OS Version | Supports Kubernetes 1.27.x | -| --------------- | ---------- | -------------------------- | -| CentOS | 7.7 | ❌ | -| Ubuntu | 22.04 | ✅ | -| Ubuntu | 20.04 | ❌ | - -## Parameters - -| Parameter | Description | -| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `pack.palette.config.oidcidentityProvider` | OIDC identity provider configuration. | -| `pack.podCIDR` | The CIDR range for Pods in cluster. This should match the networking layer property. Default: `192.168.0.0/16` | -| `pack.serviceClusterIpRange` | The CIDR range for services in the cluster. This should not overlap with any IP ranges assigned to nodes or pods. Default: `10.96.0.0/12` | -| `pack.serviceDomain` | The cluster DNS service domain. Default: `cluster.local`. To change the default, you must add this parameter to the Kubernetes YAML file at cluster creation and specify the cluster DNS service domain to use. This value cannot be changed after cluster creation is complete. Refer to the [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain) section. | -| `kubeadmconfig.apiServer.extraArgs` | A list of additional apiServer flags you can set. | -| `kubeadmconfig.apiServer.extraVolumes` | A list of additional volumes to mount on apiServer. | -| `kubeadmconfig.controllerManager.extraArgs` | A list of additional ControllerManager flags to set. | -| `kubeadmconfig.scheduler.extraArgs` | A list of additional Kube scheduler flags to set. | -| `kubeadmconfig.kubeletExtraArgs` | A list of kubelet arguments to set and copy to the nodes. | -| `kubeadmconfig.files` | A list of additional files to copy to the nodes. | -| `kubeadmconfig.preKubeadmCommands` | A list of additional commands to invoke **before** running kubeadm commands. | -| `kubeadmconfig.postKubeadmCommands` | A list of additional commands to invoke **after** running kubeadm commands. | - -## Usage - -The Kubeadm configuration file is where you can do the following: - -- Change the default `podCIDR` and `serviceClusterIpRange` values. CIDR IPs specified in the configuration file take - precedence over other defined CIDR IPs in your environment. - - As you build your cluster, check that the `podCIDR` value does not overlap with any hosts or with the service network - and the `serviceClusterIpRange` value does not overlap with any IP ranges assigned to nodes or pods. For more - information, refer to the [Clusters](../clusters/clusters.md) guide and - [Cluster Deployment Errors](../troubleshooting/cluster-deployment.md). - -- Change the default cluster DNS service domain from `cluster.local` to a DNS domain that you specify. You can only - change the DNS domain during cluster creation. For more information, refer to - [Change Cluster DNS Service Domain](kubernetes-generic.md?platform=AKS&versions=k8s_v1.27#change-cluster-dns-service-domain). - -- Add a certificate for the Spectro Proxy pack if you want to use a reverse proxy with a Kubernetes cluster. For more - information, refer to the guide. - -### Change Cluster DNS Service Domain - -The `pack.serviceDomain` parameter with default value `cluster.local` is not visible in the Kubernetes YAML file, and -its value can only be changed at cluster creation. To change the value, you must add `serviceDomain: "cluster.local"` to -the Kubernetes YAML file when you create a cluster, and specify the service domain you want to use. - -```yaml hideClipboard -pack: - k8sHardening: True - podCIDR: "172.16.0.0/16" - serviceClusterIPRange: "10.96.0.0/12" - serviceDomain: "" -``` - -:::warning - -You can only specify the service domain at cluster creation. After cluster creation completes, you cannot update the -value. Attempting to update it results in the error `serviceDomain update is forbidden for existing cluster`. - -::: - -For more information about networking configuration with DNS domains, refer to the Kubernetes -[Networking](https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta3/#kubeadm-k8s-io-v1beta3-Networking) -API documentation. - -### Configuration Changes - -The Kubeadm config is updated with hardening improvements that do the following: - -- Meet CIS standards for operating systems (OS). - -- Enable a Kubernetes audit policy in the pack. The audit policy is hidden, and you cannot customize the default audit - policy. If you want to apply your custom audit policy, refer to the - [Enable Audit Logging](../audit-logs/kube-api-audit-logging.md) guide to learn how to create your custom audit policy - by adjusting API server flags. - -- Replace a deprecated PodSecurityPolicy (PSP) with one that offers three built-in policy profiles for broad security - coverage: - - - **Privileged**: An unrestricted policy that provides wide permission levels and allows for known privilege - escalations. - - - **Baseline**: A policy that offers minimal restrictions and prevents known privilege escalations. As shown in the - example below, you can override the default cluster-wide policy to set baseline enforcement by enabling the - `PodSecurity` Admission plugin in the `enable-admission-plugins` section of the YAML file. You can then add a custom - Admission configuration and set the `admission-control-config-file` flag to the custom Admission. - - ```yaml - kubeadmconfig: - apiServer: - extraArgs: - secure-port: "6443" - anonymous-auth: "true" - profiling: "false" - disable-admission-plugins: "AlwaysAdmit" - default-not-ready-toleration-seconds: "60" - default-unreachable-toleration-seconds: "60" - enable-admission-plugins: "AlwaysPullImages,NamespaceLifecycle,ServiceAccount,NodeRestriction,PodSecurity" - admission-control-config-file: "/etc/kubernetes/pod-security-standard.yaml" - audit-log-path: /var/log/apiserver/audit.log - audit-policy-file: /etc/kubernetes/audit-policy.yaml - ``` - - - **Restricted**: A heavily restricted policy that follows Pod hardening best practices. This policy is set to warn - and audit and identifies Pods that require privileged access. - - You can enforce these policies at the cluster level or the Namespace level. For workloads that require privileged - access, you can relax `PodSecurity` enforcement by adding these labels in the Namespace: - - ```yaml - pod-security.kubernetes.io/enforce: privileged - pod-security.kubernetes.io/enforce-version: v1.26 - ``` - -### Kubeadm Configuration File - -The default pack YAML contains minimal configurations offered by the managed provider. - -### Configure OIDC Identity Provider - -You can configure an OpenID Connect (OIDC) identity provider to authenticate users and groups in your cluster. OIDC is -an authentication layer on top of OAuth 2.0, an authorization framework that allows users to authenticate to a cluster -without using a password. - -OIDC requires a _RoleBinding_ for the users or groups you want to provide cluster access. You must create a RoleBinding -to a Kubernetes role that is available in the cluster. The Kubernetes role can be a custom role you created or a -[default Kubernetes role](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles), such as the -`cluster-admin` role. To learn how to create a RoleBinding through Palette, refer to -[Create Role Bindings](../clusters/cluster-management/cluster-rbac.md#create-role-bindings). - -#### Configure Custom OIDC - -The custom method to configure OIDC and apply RBAC for an OIDC provider can be used for all cloud services except Amazon -Elastic Kubernetes Service (EKS) and [Azure-AKS](../clusters/public-cloud/azure/aks.md). - - - - - -Follow these steps to configure a third-party OIDC IDP. You can apply these steps to all the public cloud providers -except Azure AKS and Amazon EKS clusters. Azure AKS and Amazon EKS require different configurations. AKS requires you to -use Azure Active Directory (AAD) to enable OIDC integration. Refer to -[Enable OIDC in Kubernetes Clusters With Entra ID](../user-management/saml-sso/palette-sso-with-entra-id.md#enable-oidc-in-kubernetes-clusters-with-entra-id) -to learn more. Click the **Amazon EKS** tab for steps to configure OIDC for EKS clusters. - -1. Add the following parameters to your Kubernetes YAML file when creating a cluster profile. Replace the - `identityProvider` value with your OIDC provider name. - - ```yaml - pack: - palette: - config: - oidc: - identityProvider: yourIdentityProviderNameHere - ``` - -2. Add the following `kubeadmconfig` parameters. Replace the values with your OIDC provider values. - - ```yaml - kubeadmconfig: - apiServer: - extraArgs: - oidc-issuer-url: "provider URL" - oidc-client-id: "client-id" - oidc-groups-claim: "groups" - oidc-username-claim: "email" - ``` - -3. Under the `clientConfig` parameter section of Kubernetes YAML file, uncomment the `oidc-` configuration lines. - - ```yaml - kubeadmconfig: - clientConfig: - oidc-issuer-url: "" - oidc-client-id: "" - oidc-client-secret: "" - oidc-extra-scope: profile,email,openid - ``` - - - - - -Follow these steps to configure OIDC for managed EKS clusters. - -1. In the Kubernetes pack, uncomment the lines in the `oidcIdentityProvider` parameter section of the Kubernetes pack, - and enter your third-party provider details. - -```yaml -oidcIdentityProvider: - identityProviderConfigName: "Spectro-docs" - issuerUrl: "issuer-url" - clientId: "user-client-id-from-Palette" - usernameClaim: "email" - usernamePrefix: "-" - groupsClaim: "groups" - groupsPrefix: "" - requiredClaims: -``` - -2. Under the `clientConfig` parameter section of Kubernetes pack, uncomment the `oidc-` configuration lines. - -```yaml -clientConfig: - oidc-issuer-url: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.issuerUrl }}" - oidc-client-id: "{{ .spectro.pack.kubernetes-eks.managedControlPlane.oidcIdentityProvider.clientId }}" - oidc-client-secret: yourSecretKeyHere - oidc-extra-scope: profile,email -``` - -3. Provide third-party OIDC IDP details. - -4. Refer to the [Access EKS Cluster](../clusters/public-cloud/aws/eks.md#access-eks-cluster) for guidance on how to - access an EKS cluster. - - - - - - - - -:::warning - -All versions less than v1.27.x are considered deprecated. Upgrade to a newer version to take advantage of new features. - -::: - -
- -
-
- -## Terraform - -You can reference Kubernetes in Terraform with the following code snippet. - - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "k8s" { - name = "kubernetes-aks" - version = "1.26" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "k8s" { - name = "kubernetes-eks" - version = "1.24" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "k8s" { - name = "kubernetes-gke" - version = "1.25.8" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "k8s" { - name = "kubernetes-eks" - version = "1.29." - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - - - - - -## Resources - -- [Kubernetes](https://kubernetes.io/) - -- [Kubernetes Documentation](https://kubernetes.io/docs/concepts/overview/) - -- [Image Swap with Palette](../clusters/cluster-management/image-swap.md) diff --git a/docs/docs-content/integrations/kubernetes-gke.md b/docs/docs-content/integrations/kubernetes-gke.md new file mode 100644 index 0000000000..f29d38e990 --- /dev/null +++ b/docs/docs-content/integrations/kubernetes-gke.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "Kubernetes" +title: "Kubernetes" +description: "Learn about the Kubernetes pack and how you can use it with your host clusters." +hide_table_of_contents: true +type: "integration" +category: ["kubernetes", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "kubernetes"] +--- + + + +## Terraform + +You can retrieve details about the Kubernetes pack for AWS EKS by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "k8s" { + name = "kubernetes-gke" + version = "1.29" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/kubernetes-konvoy.md b/docs/docs-content/integrations/kubernetes-konvoy.md new file mode 100644 index 0000000000..2435d68af5 --- /dev/null +++ b/docs/docs-content/integrations/kubernetes-konvoy.md @@ -0,0 +1,45 @@ +--- +sidebar_label: "Kubernetes Konvoy" +title: "Kubernetes" +description: "Learn about the Kubernetes pack and how you can use it with your host clusters." +hide_table_of_contents: true +type: "integration" +category: ["kubernetes", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "kubernetes"] +--- + +## Versions Supported + + + + +Refer to the to learn how to create a +custom image for RHEL and Konvoy. + + + + +Refer to the to learn how to create a +custom image for RHEL and Konvoy. + + + + + +## Terraform + +You can retrieve details about the Kubernetes pack for Tencent TKE by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "k8s" { + name = "kubernetes-konvoy" + version = "1.27.6" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/kubernetes-rke2.md b/docs/docs-content/integrations/kubernetes-rke2.md new file mode 100644 index 0000000000..f203c3f339 --- /dev/null +++ b/docs/docs-content/integrations/kubernetes-rke2.md @@ -0,0 +1,47 @@ +--- +sidebar_label: "RKE2" +title: "RKE2" +description: "RKE2 pack in Palette" +hide_table_of_contents: true +type: "integration" +category: ["kubernetes", "amd64", "fips"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.dev.spectrocloud.com/v1/kubernetes-rke2/blobs/sha256:47cde61005d9996f1571c132ba9f753982134a7a0d8e445e27001ab8519e6051?type=image.webp" +--- + +### Support Lifecycle + + +We support other Kubernetes distributions such as K3s, Microk8s, and RKE2 until their official EOL. The EOL is set by +the respective owner. Once we stop supporting the minor version, we initiate the deprecation process. Refer to the + + guide to learn more. + +:::warning + + +Once you upgrade your cluster to a new Kubernetes version, you will not be able to downgrade. We recommend that, before +upgrading, you review the information provided in the +section. + +Review the to learn about pack +update and deprecation schedules. + +::: + + + +## Terraform + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "k8s" { + name = "kubernetes-rke2" + version = "1.29.5-rke2r1-build20240515" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/kubernetes-tke.md b/docs/docs-content/integrations/kubernetes-tke.md new file mode 100644 index 0000000000..40076f0785 --- /dev/null +++ b/docs/docs-content/integrations/kubernetes-tke.md @@ -0,0 +1,29 @@ +--- +sidebar_label: "Kubernetes" +title: "Kubernetes" +description: "Learn about the Kubernetes pack and how you can use it with your host clusters." +hide_table_of_contents: true +type: "integration" +category: ["kubernetes", "amd64"] +sidebar_class_name: "hide-from-sidebar" +tags: ["packs", "kubernetes"] +--- + + + +## Terraform + +You can retrieve details about the Kubernetes pack for Tencent TKE by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "k8s" { + name = "kubernetes-eks" + version = "1.24.4" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/rke2.md b/docs/docs-content/integrations/rke2.md deleted file mode 100644 index e4a533c5ae..0000000000 --- a/docs/docs-content/integrations/rke2.md +++ /dev/null @@ -1,189 +0,0 @@ ---- -sidebar_label: "RKE2" -title: "RKE2" -description: "RKE2 pack in Palette" -hide_table_of_contents: true -type: "integration" -category: ["kubernetes", "amd64", "fips"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.dev.spectrocloud.com/v1/kubernetes-rke2/blobs/sha256:47cde61005d9996f1571c132ba9f753982134a7a0d8e445e27001ab8519e6051?type=image.webp" ---- - -[RKE2](https://docs.rke2.io/) is a fully conformant Kubernetes distribution focusing on security and compliance within -the U.S. Federal Government sector. To meet the Kubernetes security and compliance goals required by the U.S. Federal -Government, RKE2 establishes the following: - -1. Provides defaults and configuration options that allow clusters to pass the CIS Kubernetes Benchmark v1.6 with - minimal operator intervention. - -2. Enables Federal Information Processing Standard 140-2 (FIPS 140-2) compliance. - -3. Scans components regularly for Common Vulnerabilities and Exposures (CVEs) using Trivy in the build pipeline. - -RKE2 launches control plane components as static pods, managed by the kubelet instead of relying on Docker. -Additionally, the embedded container runtime is containerd. - -You can deploy RKE2 by adding this pack to a cluster profile. Once the cluster profile is created, you can deploy the -RKE2-based Kubernetes clusters through Palette. - -### Support Lifecycle - -We support other Kubernetes distributions such as K3s, Microk8s, and RKE2 until their official EOL. The EOL is set by -the respective owner. Once we stop supporting the minor version, we initiate the deprecation process. Refer to the -[Kubernetes Support Lifecycle](kubernetes-support.md#palette-extended-kubernetes-support) guide to learn more. - -:::warning - -Once you upgrade your cluster to a new Kubernetes version, you will not be able to downgrade. We recommend that, before -upgrading, you review the information provided in the [Kubernetes Upgrades](kubernetes-support.md#kubernetes-upgrades) -section. - -::: - -## Versions Supported - -The following RKE2 versions are supported to work with Palette. - - - - - -## Prerequisites - -- A Linux operating system. Refer to the official [RKE2 requirements](https://docs.rke2.io/install/requirements) for - more details on supported Linux distributions and versions. - -- 8 GB Memory - -- 4 CPU - -- An Edge host. Refer to the [Edge](../clusters/edge/edge.md) documentation to learn more about Edge. - -## Usage - -You can add RKE2 to an Edge cluster profile as the Kubernetes layer. Refer to the -[Create an Infrastructure Profile](../profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md) -guide to learn more. - -RKE2 offers several customization options, ranging from networking to security. We recommend you review the following -RKE2 documentation: - -- [Configuration Options](https://docs.rke2.io/install/configuration) - -- [Inbound Network Rules](https://docs.rke2.io/install/requirements#inbound-network-rules) - -- [Registries Configuration](https://docs.rke2.io/install/containerd_registry_configuration) - -- [Advanced Options](https://docs.rke2.io/advanced) - -Many of the Day-2 cluster management responsibilities are handled by Palette. Review the -[Cluster Management](../clusters/cluster-management/cluster-management.md) reference resource to learn more about -Palette and Day-2 operations. - - - - - -## Prerequisites - -- A Linux operating system. Refer to the official [RKE2 requirements](https://docs.rke2.io/install/requirements) for - more details on supported Linux distributions and versions. - -- 8 GB Memory - -- 4 CPU - -- An Edge host. Refer to the [Edge](../clusters/edge/edge.md) documentation to learn more about Edge. - -## Usage - -You can add RKE2 to an Edge cluster profile as the Kubernetes layer. Refer to the -[Create an Infrastructure Profile](../profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md) -guide to learn more. - -RKE2 offers several customization options, ranging from networking to security. We recommend you review the following -RKE2 documentation: - -- [Configuration Options](https://docs.rke2.io/install/configuration) - -- [Inbound Network Rules](https://docs.rke2.io/install/requirements#inbound-network-rules) - -- [Registries Configuration](https://docs.rke2.io/install/containerd_registry_configuration) - -- [Advanced Options](https://docs.rke2.io/advanced) - -Many of the Day-2 cluster management responsibilities are handled by Palette. Review the -[Cluster Management](../clusters/cluster-management/cluster-management.md) reference resource to learn more about -Palette and Day-2 operations. - - - - -## Prerequisites - -- A Linux operating system. Refer to the official [RKE2 requirements](https://docs.rke2.io/install/requirements) for - more details on supported Linux distributions and versions. - -- 8 GB Memory - -- 4 CPU - -- An Edge host. Refer to the [Edge](../clusters/edge/edge.md) documentation to learn more about Edge. - -## Usage - -You can add RKE2 to an Edge cluster profile as the Kubernetes layer. Refer to the -[Create an Infrastructure Profile](../profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md) -guide to learn more. - -RKE2 offers several customization options, ranging from networking to security. We recommend you review the following -RKE2 documentation: - -- [Configuration Options](https://docs.rke2.io/install/configuration) - -- [Inbound Network Rules](https://docs.rke2.io/install/requirements#inbound-network-rules) - -- [Registries Configuration](https://docs.rke2.io/install/containerd_registry_configuration) - -- [Advanced Options](https://docs.rke2.io/advanced) - -Many of the Day-2 cluster management responsibilities are handled by Palette. Review the -[Cluster Management](../clusters/cluster-management/cluster-management.md) reference resource to learn more about -Palette and Day-2 operations. - - - - - -All version of RKE2 prior to 1.27.x are deprecated and no longer supported by Palette. We recommend you upgrade to a -supported version of RKE2. - - - - -## Terraform - -```hcl -data "spectrocloud_registry" "public_registry" { - name = "Public Repo" -} - -data "spectrocloud_pack_simple" "k8s" { - name = "edge-rke2" - version = "1.27.5" - type = "helm" - registry_uid = data.spectrocloud_registry.public_registry.id -} -``` - -## Troubleshooting - - -- When using Vault with the RKE2 distribution of Kubernetes in Palette Edge, you must explicitly specify a storage class - for the Vault server. Refer to the page for details. - -## Resources - -- [RKE2 Documentation](https://docs.rke2.io) - -- [RKE2 GitHub Repository](https://github.com/rancher/rke2) diff --git a/plugins/packs-integrations.js b/plugins/packs-integrations.js index de017136d6..16494d87b7 100644 --- a/plugins/packs-integrations.js +++ b/plugins/packs-integrations.js @@ -387,6 +387,7 @@ async function pluginPacksAndIntegrationsData(context, options) { if (!existsSync(dirname)) { mkdirSync(dirname, { recursive: true }); } + logger.info("Fetching the list of packs from the Palette API"); let packDataArr = await fetchPackListItems(`?limit=${filterLimit}`, [], 0); // Filter out the packs from the exclude list. @@ -398,7 +399,7 @@ async function pluginPacksAndIntegrationsData(context, options) { } return true; }); - logger.info("All production packs are identified and a list of packs to be fetched is prepared"); + logger.info("Downloading each pack's details and README"); packDataArr = packDataArr.filter((pack) => { return ( layerTypes.includes(pack.spec.layer) || diff --git a/src/components/IconMapper/dynamicFontAwesomeImports.ts b/src/components/IconMapper/dynamicFontAwesomeImports.ts index 501086cfc4..a98f03e718 100644 --- a/src/components/IconMapper/dynamicFontAwesomeImports.ts +++ b/src/components/IconMapper/dynamicFontAwesomeImports.ts @@ -48,4 +48,4 @@ export const fontAwesomeIcons = { "eye-slash": faEyeSlash, "shield": faShield, "microchip": faMicrochip -}; +}; \ No newline at end of file diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 20302b346a..2c44deffb1 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -371,6 +371,38 @@ "name": "kubernetes-microk8s", "description": "MicroK8s is a lightweight CNCF-certified Kubernetes distribution developed by Canonical. It deploys all Kubernetes services in a single, fully contained package and offers out-of-the-box add-ons." }, + { + "name": "kubernetes-aks", + "description": "Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available." + }, + { + "name": "kubernetes-eks", + "description": "Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available." + }, + { + "name": "kubernetes-gke", + "description": "Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available." + }, + { + "name": "kubernetes-konvoy", + "description": "Konvoy is built using upstream Kubernetes combined with all other required technologies and add-ons such as networking, storage, monitoring, logging, lifecycle management, using best of breed open source CNCF technologies. Konvoy comes with operational, security leading practices, testing and support for all of those technologies, and it works on virtual, bare metal, and public cloud infrastructure." + }, + { + "name": "kubernetes-tke", + "description": "Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available." + }, + { + "name": "kubernetes-custom", + "description": "Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available." + }, + { + "name": "kubernetes-rke2", + "description": "RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution. RKE2 is a fully conformant Kubernetes distribution that focuses security and compliance within the U.S. Federal Government sector." + }, + { + "name": "edge-rke2", + "description": "RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution. RKE2 is a fully conformant Kubernetes distribution that focuses security and compliance within the U.S. Federal Government sector." + }, { "name": "edge-microk8s", "description": "MicroK8s is a lightweight CNCF-certified Kubernetes distribution developed by Canonical. It deploys all Kubernetes services in a single, fully contained package and offers out-of-the-box add-ons." From d84a5a486fbba253da5927b9c7549885280280c8 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 29 Jul 2024 12:50:58 -0700 Subject: [PATCH 20/22] chore: fixed versions dropdown ordering --- .../docs-content/integrations/external-dns.md | 161 ++++++------------ .../integrations/external-secrets-operator.md | 135 ++++++++++++--- docs/docs-content/integrations/falco.md | 27 +-- docs/docs-content/integrations/fluentbit.md | 28 --- docs/docs-content/integrations/gatekeeper.md | 54 ++++++ .../integrations/generic-vm-libvirt.md | 94 ++++------ .../integrations/generic-vm-vsphere.md | 71 +++----- .../integrations/opa-gatekeeper.md | 71 -------- src/components/IconMapper/IconMapper.tsx | 1 - src/components/PacksReadme/PacksReadme.tsx | 41 ++++- static/packs-data/packs_information.json | 60 +++++++ 11 files changed, 375 insertions(+), 368 deletions(-) delete mode 100644 docs/docs-content/integrations/fluentbit.md create mode 100644 docs/docs-content/integrations/gatekeeper.md delete mode 100644 docs/docs-content/integrations/opa-gatekeeper.md diff --git a/docs/docs-content/integrations/external-dns.md b/docs/docs-content/integrations/external-dns.md index e4f0ee19e1..bd6fa7f460 100644 --- a/docs/docs-content/integrations/external-dns.md +++ b/docs/docs-content/integrations/external-dns.md @@ -6,48 +6,18 @@ type: "integration" hide_table_of_contents: true category: ["load balancers", "amd64"] sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/external-dns/blobs/sha256:1bfd6dceb0b50efee4068cd6321511f6b24be86e2d613e0a8206e716ba7aea3f?type=image.webp" tags: ["packs", "external-dns", "network"] --- -The integration helps configure public DNS servers with information about Kubernetes services to make them discoverable. - -## Prerequisites - -Providers have to be set up for this pack to get deployed and work seamlessly. For a list of supported providers and the -prerequisites to be set up, visit [providers](https://github.com/kubernetes-sigs/external-dns#status-of-providers) -section - ## Versions Supported - + -- **0.13.1** -- **0.12.2** - - - - -- **0.7.2** - - - - - -## Components - -Integration deploys the following components: - -- External DNS - -## ExternalDNS for Services on AWS Route53 Example +### AWS Route53 -### Setup prerequisites for AWS Route53 - -- Create the following IAM policy in the AWS account. This is needed for externalDNS to list and create Route53 - resources. +To use ExternalDNS with AWS Route53, you need to create an IAM policy and role with the following permissions. ```json { @@ -67,100 +37,77 @@ Integration deploys the following components: } ``` +You also need to meet the following prerequisites: + - Create an IAM role and associate the policy created above. Make a note of the role ARN which will be used in ExternalDNS deployment later -- Setup hosted zone in AWS Route53 + +- Setup hosted zone in AWS Route53. Use the following command to create a hosted zone in Route53 using the AWS CLI. + ```bash - # Create a DNS zone through AWS CLI aws route53 create-hosted-zone --name "external-dns-test.my-org.com." --caller-reference "external-dns-test-$(date +%s)" ``` -### Deploy ExternalDNS on the cluster - -- Add ExternalDNS pack to the desired profile and deploy it to the cluster. You may want to configure the following in - pack values.yaml - - - Configure AWS provider details (line #86) - - - Credentials, Zone Type - - AssumeRoleArn with the Role ARN created above - - - Configure txtOwnerId with the ID of the hosted zone created above (line #366) - ```bash - aws route53 list-hosted-zones-by-name --output json --dns-name "external-dns-test.my-org.com." | jq -r '.HostedZones[0].Id' - ``` - - Optionally change externalDNS policy and logLevel - -### Deploy Ingress Controller on the cluster - -- Deploy one of the Ingress Controller on the cluster - -### Deploy Applications with Ingress on the cluster - -- Add Prometheus-Operator addon to the same profile where ExternalDNS is added - - - Change serviceType to ClusterIP (line #408) - - Enable Ingress for the add-on packs. In this example, let us use Prometheus-Operator integration. Ingress config for - Grafana will look like the following: - - ```yaml - #Ingress config - ingress: - ## If true, Grafana Ingress will be created - ## - enabled: true +
+ - hosts: - - grafana.external-dns-test.my-org.com +### AWS Route53 - ## Path for grafana ingress - path: / - ``` +To use ExternalDNS with AWS Route53, you need to create an IAM policy and role with the following permissions. - When Prometheus-Operator gets deployed in the Cluster, Ingress resource for Grafana will also get created and will - look like +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": ["route53:ChangeResourceRecordSets"], + "Resource": ["arn:aws:route53:::hostedzone/*"] + }, + { + "Effect": "Allow", + "Action": ["route53:ListHostedZones", "route53:ListResourceRecordSets"], + "Resource": ["*"] + } + ] +} +``` - ```yaml - apiVersion: extensions/v1beta1 - kind: Ingress - metadata: - name: grafana-ingress - namespace: monitoring - spec: - rules: - - host: grafana.external-dns-test.my-org.com - http: - paths: - - backend: - serviceName: grafana - servicePort: 80 - path: / - status: - loadBalancer: - ingress: - - hostname: a9a2eadb64c8e4c2fb37a1f69afb0a30-330939473.us-west-2.elb.amazonaws.com - ``` +You also need to meet the following prerequisites: -### Verify ExternalDNS (Ingress example) +- Create an IAM role and associate the policy created above. Make a note of the role ARN which will be used in + ExternalDNS deployment later -- If all goes well, after 2 minutes, ExternalDNS would have inserted 2 records on your hosted zone +- Setup hosted zone in AWS Route53. Use the following command to create a hosted zone in Route53 using the AWS CLI. ```bash - aws route53 list-resource-record-sets --output json --hosted-zone-id "/hostedzone/ZEWFWZ4R16P7IB" \ - --query "ResourceRecordSets[?Name == 'grafana.external-dns-test.my-org.com.']|[?Type == 'A']" + aws route53 create-hosted-zone --name "external-dns-test.my-org.com." --caller-reference "external-dns-test-$(date +%s)" ``` -- After which, if you access http://grafana.external-dns-test.my-org.com on your browser, you will be able to view the - Grafana login page + + +
### Troubleshooting -- Make sure Ingress resource gets created for the Applications deployed and a LoadBalancer hostname / IP address is set - on the Ingress resource +- Make sure an _Ingress_ resource gets created for the applications deployed and a _LoadBalancer_ hostname or IP address + is set on the Ingress resource + - Check the `external-dns` pod for any issues with ExternalDNS not inserting records. If required, change `logLevel` to debug to see additional info on the logs -## References +## Terraform -- [External DNS Home](https://github.com/kubernetes-sigs/external-dns) -- [External DNS Helm Chart](https://github.com/bitnami/charts/tree/master/bitnami/external-dns) +You can reference the External DNS pack in Terraform with the following data resource. + +```hcl +data "spectrocloud_registry" "palette_registry" { + name = "Palette Registry" +} + +data "spectrocloud_pack" "external-dns" { + name = "external-dns" + version = "0.13.6 + registry_uid = data.spectrocloud_registry.palette_registry.id +} +``` diff --git a/docs/docs-content/integrations/external-secrets-operator.md b/docs/docs-content/integrations/external-secrets-operator.md index ca263a2dd4..717b025ea1 100644 --- a/docs/docs-content/integrations/external-secrets-operator.md +++ b/docs/docs-content/integrations/external-secrets-operator.md @@ -10,40 +10,116 @@ logoUrl: "https://registry.spectrocloud.com/v1/external-secrets-operator/blobs/s tags: ["packs", "external-secrets-operator", "security"] --- -External Secrets Operator (ESO) is a Kubernetes operator that integrates external secret management systems like AWS -Secrets Manager, HashiCorp Vault, Google Secrets Manager, or Azure Key Vault. The operator reads information from -external APIs and automatically injects the values into a Kubernetes Secret. +## Versions Supported -You can use the External-Secrets-Operator Add-on pack as an authenticator in Palette. + + -:::info +#### Example Configuration -Starting from Palette version 3.1, Palette no longer supports upgrades to Kubernetes External Secrets since this is -reaching end of life. Migrate or switch to using External Secrets operator instead. +```yml +apiVersion: [external-secrets.io/v1beta1](http://external-secrets.io/v1beta1) +kind: ExternalSecret +metadata: + name: vault-example # Custom name +spec: + refreshInterval: "15s" + secretStoreRef: + name: vault-backend # Custom value + kind: SecretStore + target: + name: mysecretfoobar + data: + - secretKey: foobar + remoteRef: + key: secret/foo # custom value + property: my-value # custom value -::: +``` -## Versions Supported +```yml +apiVersion: external-secrets.io/v1beta1 +kind: SecretStore +metadata: + name: custom-name +spec: + provider: + vault: + server: "http://12.34.567.133:0000" # custom server end point + path: "secret" # custom path + version: "v2" # custom version + auth: + # points to a secret that contains a vault token + # https://www.vaultproject.io/docs/auth/token + tokenSecretRef: + name: "vault-token1" # Custom name and key + key: "token1" +--- +apiVersion: v1 +kind: Secret +metadata: + name: vault-token1 +data: + token: cm9vdA== # "root" # custome value +``` - + -- **0.7.1** -- **0.6.0** +#### Example Configuration - +```yml +apiVersion: [external-secrets.io/v1beta1](http://external-secrets.io/v1beta1) +kind: ExternalSecret +metadata: + name: vault-example # Custom name +spec: + refreshInterval: "15s" + secretStoreRef: + name: vault-backend # Custom value + kind: SecretStore + target: + name: mysecretfoobar + data: + - secretKey: foobar + remoteRef: + key: secret/foo # custom value + property: my-value # custom value - +``` -- **0.5.6** +```yml +apiVersion: external-secrets.io/v1beta1 +kind: SecretStore +metadata: + name: custom-name +spec: + provider: + vault: + server: "http://12.34.567.133:0000" # custom server end point + path: "secret" # custom path + version: "v2" # custom version + auth: + # points to a secret that contains a vault token + # https://www.vaultproject.io/docs/auth/token + tokenSecretRef: + name: "vault-token1" # Custom name and key + key: "token1" +--- +apiVersion: v1 +kind: Secret +metadata: + name: vault-token1 +data: + token: cm9vdA== # "root" # custome value +``` - -### Sample SecretStore + -
+#### Example Configuration ```yml apiVersion: [external-secrets.io/v1beta1](http://external-secrets.io/v1beta1) @@ -65,10 +141,6 @@ spec: ``` -### Sample ExternalSecret YAML file - -
- ```yml apiVersion: external-secrets.io/v1beta1 kind: SecretStore @@ -95,8 +167,21 @@ data: token: cm9vdA== # "root" # custome value ``` -## References +
+
+ +## Terraform + +You can reference the External Secrets Operator pack in Terraform with the following data resource. -- [Amazon IAM-Policy-Examples-ASM-Secrets](https://docs.aws.amazon.com/mediaconnect/latest/ug/iam-policy-examples-asm-secrets.html) +```hcl +data "spectrocloud_registry" "palette_registry" { + name = "Palette Registry" +} -- [External Secrets](https://github.com/external-secrets/external-secrets) +data "spectrocloud_pack" "external-secrets-operator" { + name = "external-secrets-operator" + version = "0.9.16" + registry_uid = data.spectrocloud_registry.palette_registry.id +} +``` diff --git a/docs/docs-content/integrations/falco.md b/docs/docs-content/integrations/falco.md index 15787d9a98..028b5d3563 100644 --- a/docs/docs-content/integrations/falco.md +++ b/docs/docs-content/integrations/falco.md @@ -6,27 +6,18 @@ hide_table_of_contents: true type: "integration" category: ["security", "amd64"] sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/falco/blobs/sha256:4e37461d0a31959ca8af65128329750ca3417e883e7e4ba17ee085b01a383a27?type=image.webp" tags: ["packs", "falco", "security"] --- -Falco integration is a behavioral activity monitor designed to detect anomalous activity in your applications. You can -use Falco to monitor the run-time security of your Kubernetes applications and internal components. - ## Versions Supported - + -- **1.16.3** - -- **1.0.11** -- **1.0.10** - @@ -37,6 +28,18 @@ use Falco to monitor the run-time security of your Kubernetes applications and i -## References +## Terraform + +You can reference the Falco pack in Terraform with the following data resource. + +```hcl +data "spectrocloud_registry" "palette_registry" { + name = "Palette Registry" +} -- [Falco Helm Chart GitHub](https://github.com/falcosecurity/charts/tree/master/charts/falco) +data "spectrocloud_pack" "external-dns" { + name = "falco" + version = "2.0.18" + registry_uid = data.spectrocloud_registry.palette_registry.id +} +``` diff --git a/docs/docs-content/integrations/fluentbit.md b/docs/docs-content/integrations/fluentbit.md deleted file mode 100644 index 6911243f53..0000000000 --- a/docs/docs-content/integrations/fluentbit.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -sidebar_label: "Fluentbit" -title: "Fluentbit" -description: "Fluentbit Monitoring pack in Spectro Cloud" -hide_table_of_contents: true -type: "integration" -category: ["logging", "amd64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/fluentbit/blobs/sha256:012fbab20e3427b6c1f6a73d2ea0b4cc43cf60991774c4800ddf3e23c4b64544?type=image.webp" -tags: ["packs", "fluentbit", "logging"] ---- - -Fluent-Bit is a multi-platform log forwarder. The default integration will help forward logs from the Kubernetes cluster -to an external ElasticSearch cluster - -## Version - -- **1.9.6** - -## Contents - -Fluent-Bit is installed as a DaemonSet & so, an instance of fluent-bit will be running on all the nodes in the cluster. - -## References - -- [Fluentbit Docs](https://docs.fluentbit.io/manual) - -- [Fluentbit GitHub](https://github.com/fluent/fluent-bit) diff --git a/docs/docs-content/integrations/gatekeeper.md b/docs/docs-content/integrations/gatekeeper.md new file mode 100644 index 0000000000..2f34d9b333 --- /dev/null +++ b/docs/docs-content/integrations/gatekeeper.md @@ -0,0 +1,54 @@ +--- +sidebar_label: "OpenPolicyAgent" +title: "Open Policy Agent" +description: "OpenPolicyAgent security pack in Spectro Cloud" +hide_table_of_contents: true +type: "integration" +category: ["security", "amd64", "arm64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: + 'https://registry.dev.spectrocloud.com/v1/open-policy-agent/blobs/sha256:fcbad202dc9ca5e7a756562d8f9fc180ee77474034447dabc302d8a5a2bbe148?type=image.webp" + alt="OpenPolicyAgent logo' +tags: ["packs", "open-policy-agent", "security"] +--- + +## Versions Supported + + + + + + + + + +**3.7.0** + + + + + + + + + + + + + +## Terraform + +You can retrieve details about the Gatekeeper pack by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_addon_registry" { + name = "Spectro Addon Repo" +} + +data "spectrocloud_pack_simple" "gatekeeper" { + name = "gatekeeper" + version = "3.8.0" + type = "helm" + registry_uid = data.spectrocloud_registry.public_addon_registry.id +} +``` diff --git a/docs/docs-content/integrations/generic-vm-libvirt.md b/docs/docs-content/integrations/generic-vm-libvirt.md index 2f8a63d580..fc1dad786c 100644 --- a/docs/docs-content/integrations/generic-vm-libvirt.md +++ b/docs/docs-content/integrations/generic-vm-libvirt.md @@ -10,30 +10,16 @@ logoUrl: "https://registry.spectrocloud.com/v1/generic-vm-libvirt/blobs/sha256:2 tags: ["packs", "generic-vm-libvirt", "system app"] --- -Generic-VM-Libvirt is a Palette Add-on pack used to simplify deploying the virtual machine applications from a cluster -profile or a system profile. Generic-VM-Libvirt extracts all Terraform constructs inside the pack and exposes nothing -but the values. Users will then have the ability to modify the add-on pack for the different applications. +## Versions Supported -## Version Supported - - + -- **1.0.2** -- **1.0.0** - - - - -
- -## Configuring Palette Generic VM Libvirt Add-on +### Configure VM Libvirt Add-on To configure the Generic-VM-Libvirt add-on pack for the application cluster, begin by editing the manifest namespace value. -`cluster-{{ .spectro.system.cluster.uid }}` - **Example** ```yaml @@ -41,21 +27,15 @@ namespace: jet-system ``` If multiple instances of this pack have to be deployed on the cluster for different virtual machine applications, then -modify '`spectrocloud.com/display-name`' and '`releaseNameOverride`' with distinctive names to make it unique across all -the packs in the cluster. - -
+modify `spectrocloud.com/display-name` and `releaseNameOverride` with distinctive names to make it unique across all the +packs in the cluster. ```yaml spectrocloud.com/display-name: vm-app-1 releaseNameOverride: ``` -
- -## Generic-VM-Libvirt Pack Manifest - -
+### Generic-VM-Libvirt Pack Manifest ```yaml pack: @@ -174,14 +154,12 @@ charts: # echo "I am post exec" ``` -## Virtual Machine Hooks +### Virtual Machine Hooks The Generic-VM-Libvirt pack supports various hooks, while deploying VM applications and supports multiple use-cases of customizing workflow, as customers require. -
- -## Using preExecCmd and postExecCmd +#### preExecCmd and postExecCmd The **preExecCmd** and **postExecCmd** commands will be executed in every pod reconciliation. The loop runs at approximately a 2-minute interval. @@ -189,8 +167,6 @@ approximately a 2-minute interval. If you want to run the command or script only, whenever the virtual machine is getting created or after the virtual machine is destroyed, use **preVMInitCmd** and **postVMInitCmd**, respectively. -
- ```yaml preExecCmd: "bash /var/files/pre-exec.sh" ``` @@ -199,17 +175,13 @@ preExecCmd: "bash /var/files/pre-exec.sh" postExecCmd: "bash /var/files/pre-exec.sh" ``` -
- -## Using preVMInitCmd and postVMInitCmd +#### preVMInitCmd and postVMInitCmd The **preVMInitCmd** command is executed, only when the virtual machine is being created or recreated. Likewise, the **postVMInitCmd** command is executed only after the virtual machine is created or recreated. **Note**: These commands will not be executed in each reconciliation. -
- ```yaml preVMInitCmd: "echo 'Hey! Hang on tight. I am gonna create a VM.'" ``` @@ -218,42 +190,30 @@ preVMInitCmd: "echo 'Hey! Hang on tight. I am gonna create a VM.'" postVMInitCmd: "echo 'Ooho! VM is created.'" ``` -
- -## Using preVMDestroyCmd +### preVMDestroyCmd Any command or script provided in this virtual machine hook will execute before the VM gets destroyed. It will be executed only when the VM is being deleted. A virtual machine deletion can happen for any reason, like changing anything in cloud-init or removing the pack from the profile. -
- ```yaml preVMDestroyCmd: "" ``` -
- :::info During a first-time deployment, preVMDestroyCmd will not be invoked. However, if there is any change in cloud-init, then the VM resource will be recreated, preVMDestroyCmd will be invoked before deleting the VM, and once preVMDestroyCmd is executed successfully, only then will the VM resource be deleted. -
-
Once the virtual machine is deleted and before another virtual machine is created, preVMInitCmd will be invoked. ::: -
- -## Files +### Files Files presented in this section will be added to the pod, where the pre-and-post exec hooks are executed. -
- ```yaml files: - name: pre-exec.sh @@ -270,16 +230,12 @@ extraDomainHclConfig: | } ``` -
- -## Mounts +### Mounts Mount the data inside the existing configuration maps or secrets into the pod as files, where pre-and-post hooks are executed. This allows the data present in the configuration map or the secrets file to be accessible while running pre-and-post exec hooks. -
- ```yaml mounts: configMap: @@ -294,16 +250,12 @@ mounts: path: /data/system-config-2 ``` -
- -## Environment Variables +### Environment Variables The ENVS section can inject data inside the existing config maps or secrets into the pod as environment variables, where pre-and post-hooks are executed so that data present in the config map or the secret file can be accessed while running pre-and-post exec hooks. -
- ```yaml envs: configMap: @@ -316,6 +268,22 @@ envs: dataKey: "db.password" ``` -## References +
+
+ +## Terraform -- [Libvirt Apps](https://libvirt.org/apps.html) +You can retrieve details about the Generic-VM-Libvirt pack by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "gatekeeper" { + name = "generic-vm-libvirt" + version = "1.0.6" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/generic-vm-vsphere.md b/docs/docs-content/integrations/generic-vm-vsphere.md index 2fae567fda..a0e66cc3d8 100644 --- a/docs/docs-content/integrations/generic-vm-vsphere.md +++ b/docs/docs-content/integrations/generic-vm-vsphere.md @@ -6,34 +6,22 @@ hide_table_of_contents: true type: "integration" category: ["system app", "amd64"] sidebar_class_name: "hide-from-sidebar" -logoUrl: "https://registry.spectrocloud.com/v1/generic-vm-vsphere/blobs/sha256:3b121dca3cbc7fed0153d3e1c8c3df20076ec200e091085a3a281ba08cb2261e?type=image.webp" tags: ["packs", "generic-vm-vsphere", "system app"] --- -Generic-VM-vSphere is a Palette Add-on pack used to simplify deploying the virtual machine resource from a cluster -profile or a system profile. Generic-VM-vSphere extracts all Terraform constructs inside the pack and exposes nothing -but the values. Users will then have the ability to modify the add-on pack for the different applications. +## Versions Supported -
- -## Version Supported - - + -- **1.0.4** -- **1.0.0** - -
- ## Configuring Generic-VM-vSphere To configure the Generic-VM-vSphere Add-on pack for the application cluster, the namespace value should be as follows: -`cluster-{{ .spectro.system.cluster.uid }}`
+`cluster-{{ .spectro.system.cluster.uid }}` ```yaml namespace: cluster-{{ .spectro.system.cluster.uid }} @@ -43,20 +31,13 @@ If multiple instances of this pack has to be deployed on the cluster for differe modify '`spectrocloud.com/display-name`' and '`releaseNameOverride`' with different names to make it unique across all the packs in the cluster. -
- ```yaml spectrocloud.com/display-name: vm-app-1 releaseNameOverride: ``` -
-
- ## Generic-VM-vSphere Pack Manifest -
- ```yaml pack: # for app cluster, namespace value should be "cluster-{{ .spectro.system.cluster.uid }}" @@ -201,8 +182,6 @@ charts: The Generic-VM-vSphere pack supports various hooks while deploying VM applications and supports multiple use-cases of customizing workflow, as customers require. -
- ## Using extraVMHclConfig The extraVMHclConfig command can be used to provide an extra configuration in the virtual machine and the configuration @@ -223,8 +202,6 @@ approximately a 2-minute interval. **preExecCMD** and **postVMInitCmd** are used to execute commands or scripts prior to virtual machine creation and after virtual machine creation respectively. -
- ```yaml preExecCmd: "bash /var/files/pre-exec.sh" ``` @@ -233,8 +210,6 @@ preExecCmd: "bash /var/files/pre-exec.sh" postExecCmd: "bash /var/files/pre-exec.sh" ``` -
- ## Using preVMInitCmd and postVMInitCmd The **preVMInitCmd** command is executed, only when the virtual machine is being created or recreated. Likewise, the @@ -242,8 +217,6 @@ The **preVMInitCmd** command is executed, only when the virtual machine is being **Note**: These commands will not be executed in each reconciliation. -
- ```yaml preVMInitCmd: "echo 'Hey! Hang on tight. I am gonna create a VM.'" ``` @@ -252,45 +225,32 @@ preVMInitCmd: "echo 'Hey! Hang on tight. I am gonna create a VM.'" postVMInitCmd: "echo 'Ooho! VM is created.'" ``` -
- ## Using preVMDestroyCmd Any command or script provided in this virtual machine hook will execute before the virtual machine is destroyed. It will be executed only when the VM is getting deleted. A virtual machine deletion can happen for any reason, like changing anything in cloud-init or removing the pack from the profile. -
- ```yaml preVMDestroyCmd: "" ``` -
- :::info During a first-time deployment, preVMDestroyCmd won't be invoked. However, if there is any change in cloud-init, then the VM resource will be recreated, preVMDestroyCmd will be invoked before deleting the VM, and once preVMDestroyCmd is executed successfully, only then the VM resource will be deleted. -
-
Once the VM is deleted and before another virtual machine is created, preVMInitCmd will be invoked. ::: -
-
- ## Mounts Mount the data inside the existing configuration map or secret into the pod as files, where pre-and-post hooks are executed. This allows the data present in the configuration map or the secrets file to be accessible while running pre-and-post exec hooks. -
- ```yaml mounts: configMap: @@ -305,16 +265,12 @@ mounts: # path: /data/system-config-2 ``` -
- ## Environment Variables The ENVS section can inject data inside the existing config maps or secrets into the pod as environment variables, where pre-and post-hooks are executed so that data present in the config map or the secret file can be accessed while running pre-and-post exec hooks. -
- ```yaml envs: configMap: @@ -327,15 +283,11 @@ envs: # dataKey: "db.password" ``` -
- ## Files Files present in this section will be added to the pod and will be accessible while executing pre-and-post execution hooks and absolute file path would be '/var/files/\'. -
- ```yaml files: # - name: pre-exec.sh @@ -348,4 +300,19 @@ files: # echo "I am post exec" ``` -
+## Terraform + +You can retrieve details about the Generic-VM-Libvirt pack by using the following Terraform code. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} + +data "spectrocloud_pack_simple" "gatekeeper" { + name = "generic-vm-vsphere" + version = "1.0.10" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` diff --git a/docs/docs-content/integrations/opa-gatekeeper.md b/docs/docs-content/integrations/opa-gatekeeper.md deleted file mode 100644 index 65d913db4d..0000000000 --- a/docs/docs-content/integrations/opa-gatekeeper.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -sidebar_label: "OpenPolicyAgent" -title: "Open Policy Agent" -description: "OpenPolicyAgent security pack in Spectro Cloud" -hide_table_of_contents: true -type: "integration" -category: ["security", "amd64", "arm64"] -sidebar_class_name: "hide-from-sidebar" -logoUrl: - 'https://registry.dev.spectrocloud.com/v1/open-policy-agent/blobs/sha256:fcbad202dc9ca5e7a756562d8f9fc180ee77474034447dabc302d8a5a2bbe148?type=image.webp" - alt="OpenPolicyAgent logo' -tags: ["packs", "open-policy-agent", "security"] ---- - -Palette users can leverage the **Open Policy Agent (OPA) Gatekeeper** to strengthen the security administration of -Kubernetes environment. The major motivation behind the deployment is admission customization via configurations without -code. Gatekeeper provides an admission control system based on policies or rules implemented through parameterized and -admin configurable constraints. Palette supports **Gatekeeper v3.0**. - -The major features of OPA are: - -- **Validating Admission Control** -- **Policies and Constraints** - - **Sample Policies**: - - All namespaces must have a label that lists a point-of-contact. - - All pods must have an upper bound for resource usage. - - All images must be from an approved repository. - - Services must all have globally unique selectors. - - **Constraint Properties** - - AND-ed together - - Schema validation - - Selection semantics -- **Audit**: The periodical evaluation of resources against constraints. -- **Data Replication**: Constraints to be compared against other objects in the cluster. - -## Versions Supported - - - - - -- **3.11.0** -- **3.9.0** - - - - - -**3.7.0** - - - - - -**3.6.0** - - - - - -**3.5.1** - - - - - -## References - -- [Open Policy Agent Documentation](https://open-policy-agent.github.io/gatekeeper/website/docs) - -- [Open Policy Agent GitHub](https://github.com/open-policy-agent/gatekeeper) diff --git a/src/components/IconMapper/IconMapper.tsx b/src/components/IconMapper/IconMapper.tsx index fdcdfe2e7e..54180d2590 100644 --- a/src/components/IconMapper/IconMapper.tsx +++ b/src/components/IconMapper/IconMapper.tsx @@ -24,7 +24,6 @@ import OsIcon from "@site/static/assets/packs/os_layer.svg"; import ServiceMeshIcon from "@site/static/assets/packs/service_mesh_layer.svg"; import MonitoringIcon from "@site/static/assets/packs/monitoring_layer.svg"; import CsiIcon from "@site/static/assets/packs/csi_layer.svg"; -import IntegrationIcon from "@site/static/assets/packs/integration_layer.svg"; import LoggingIcon from "@site/static/assets/packs/logging_layer.svg"; import LoadBalancerIcon from "@site/static/assets/packs/load_balancer_layer.svg"; import IngressIcon from "@site/static/assets/packs/ingress_layer.svg"; diff --git a/src/components/PacksReadme/PacksReadme.tsx b/src/components/PacksReadme/PacksReadme.tsx index 5500b72c7d..96aa1d5d02 100644 --- a/src/components/PacksReadme/PacksReadme.tsx +++ b/src/components/PacksReadme/PacksReadme.tsx @@ -146,16 +146,39 @@ export default function PacksReadme() { return packData.versions.find((tagVersion) => tagVersion.children.find((child) => child.title === version)); } + function compareVersions(v1: string, v2: string): number { + const v1Parts = v1.split(".").map(Number); + const v2Parts = v2.split(".").map(Number); + + for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) { + const v1Part = v1Parts[i] || 0; + const v2Part = v2Parts[i] || 0; + + if (v1Part < v2Part) { + return 1; + } + if (v1Part > v2Part) { + return -1; + } + } + + return 0; + } + function renderVersionOptions() { - return packData.versions.map((tagVersion) => ({ - value: tagVersion.title, - title: tagVersion.title, - selectable: false, - children: tagVersion.children.map((child) => ({ - value: `${child.title}===${child.packUid}`, - title: {child.title}, - })), - })); + return packData.versions + .sort((a, b) => compareVersions(a.title, b.title)) + .map((tagVersion) => ({ + value: tagVersion.title, + title: tagVersion.title, + selectable: false, + children: tagVersion.children + .sort((a, b) => compareVersions(a.title, b.title)) + .map((child) => ({ + value: `${child.title}===${child.packUid}`, + title: {child.title}, + })), + })); } function renderTabs() { diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index 2c44deffb1..f2fa62a210 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -367,6 +367,66 @@ "name": "csi-aws-ebs", "description": "The Amazon Elastic Block Store Container Storage Interface (CSI) Driver provides a CSI interface used by Container Orchestrators to manage the lifecycle of Amazon EBS volumes." }, + { + "name": "elastic-fluentd-kibana", + "description": "This pack deploys an Elasticsearch, Fluentd and Kibana stack. Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. Fluentd is an open-source data collector for unified logging layer. Kibana is an open-source data visualization dashboard for Elasticsearch." + }, + { + "name": "elastic-operator", + "description": "Elastic Cloud on Kubernetes automates the deployment, provisioning, management, and orchestration of Elasticsearch, Kibana, APM Server, Enterprise Search, Beats, Elastic Agent, Elastic Maps Server, and Logstash on Kubernetes based on the operator pattern." + }, + { + "name": "elastic-stack", + "description": "Elastic Cloud on Kubernetes automates the deployment, provisioning, management, and orchestration of Elasticsearch, Kibana, APM Server, Enterprise Search, Beats, Elastic Agent, Elastic Maps Server, and Logstash on Kubernetes based on the operator pattern." + }, + { + "name": "external-dns", + "description": "ExternalDNS makes Kubernetes resources discoverable via public DNS servers. Like KubeDNS, it retrieves a list of resources, such as Services, Ingresses, etc, from the Kubernetes API to determine a desired list of DNS records. Unlike KubeDNS, however, it's not a DNS server but configures other DNS providers accordingly, such as AWS Route 53 or Google Cloud DNS. In a broader sense, ExternalDNS allows you to control DNS records dynamically via Kubernetes resources in a DNS provider-agnostic way." + }, + { + "name": "external-secrets", + "description": "External Secrets is a tool integrates external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, IBM Cloud Secrets Manager, CyberArk Conjur and many more. The operator reads information from external APIs and automatically injects the values into a Kubernetes Secret." + }, + { + "name": "external-secrets-operator", + "description": "External Secrets Operator is a Kubernetes operator that integrates external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, IBM Cloud Secrets Manager, CyberArk Conjur and many more. The operator reads information from external APIs and automatically injects the values into a Kubernetes Secret." + }, + { + "name": "external-snapshotter", + "description": "External Snapshotter is a Kubernetes controller that watches Kubernetes Snapshot CRD objects and triggers CreateSnapshot/DeleteSnapshot against a CSI endpoint. It is used to create and delete volume snapshots in a Kubernetes cluster." + }, + { + "name": "falco", + "description": "Falco is a cloud-native security tool designed for Linux systems. It employs custom rules on kernel events, which are enriched with container and Kubernetes metadata, to provide real-time alerts. Falco helps you gain visibility into abnormal behavior, potential security threats, and compliance violations, contributing to comprehensive runtime security." + }, + { + "name": "falcon-sensor", + "description": "Falcon is the CrowdStrike platform purpose-built to stop breaches via a unified set of cloud-delivered technologies that prevent all types of attacks — including malware and more. " + }, + { + "name": "f5", + "description": "F5 provides protocol and application traffic awareness for intelligent load balancing decisions. This pack deploys the F5 BIG-IP Controller for Kubernetes, which integrates with the F5 BIG-IP platform to provide advanced traffic management and security services for applications running in Kubernetes." + }, + { + "name": "fluentbit", + "description": "Fluent Bit is a fast, lightweight, and highly scalable logging and metrics processor and forwarder. Fluentbit can process Kubernetes containers logs from the file system or Systemd/Journald. Enrich logs with Kubernetes Metadata, and centralize your logs in third party storage services like Elasticsearch, InfluxDB, HTTP, etc." + }, + { + "name": "flux-cd", + "description": "Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration, such as Git repositories, and automating updates to configuration when there is new code to deploy. Flux is built from the ground up to use Kubernetes' API extension system, and to integrate with Prometheus and other core components of the Kubernetes ecosystem. Flux supports multi-tenancy and support for syncing an arbitrary number of Git repositories." + }, + { + "name": "gatekeeper", + "description": "Gatekeeper is a validating and mutating webhook that enforces CRD-based policies executed by Open Policy Agent, a policy engine for Cloud Native environments hosted by CNCF." + }, + { + "name": "generic-vm-libvirt", + "description": "Generic-VM-Libvirt is a Palette Add-on pack used to simplify deploying the virtual machine applications from a cluster profile or a system profile. Generic-VM-Libvirt extracts all Terraform constructs inside the pack and exposes nothing but the values. Users will then have the ability to modify the add-on pack for the different applications." + }, + { + "name": "generic-vm-vsphere", + "description": "Generic-VM-vSphere is a Palette Add-on pack used to simplify deploying the virtual machine resource from a cluster profile or a system profile. Generic-VM-vSphere extracts all Terraform constructs inside the pack and exposes nothing but the values. Users will then have the ability to modify the add-on pack for the different applications." + }, { "name": "kubernetes-microk8s", "description": "MicroK8s is a lightweight CNCF-certified Kubernetes distribution developed by Canonical. It deploys all Kubernetes services in a single, fully contained package and offers out-of-the-box add-ons." From b53d54ad844ebe235f68fe49501846aafda25394 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 29 Jul 2024 14:06:07 -0700 Subject: [PATCH 21/22] docs: updated descriptions --- .../integrations/generic-vm-libvirt.md | 4 +- .../integrations/generic-vm-vsphere.md | 56 ++++++++++--------- static/packs-data/packs_information.json | 8 +++ 3 files changed, 39 insertions(+), 29 deletions(-) diff --git a/docs/docs-content/integrations/generic-vm-libvirt.md b/docs/docs-content/integrations/generic-vm-libvirt.md index fc1dad786c..0294efeb66 100644 --- a/docs/docs-content/integrations/generic-vm-libvirt.md +++ b/docs/docs-content/integrations/generic-vm-libvirt.md @@ -20,10 +20,8 @@ tags: ["packs", "generic-vm-libvirt", "system app"] To configure the Generic-VM-Libvirt add-on pack for the application cluster, begin by editing the manifest namespace value. -**Example** - ```yaml -namespace: jet-system +namespace: cluster-{{ .spectro.system.cluster.uid }} ``` If multiple instances of this pack have to be deployed on the cluster for different virtual machine applications, then diff --git a/docs/docs-content/integrations/generic-vm-vsphere.md b/docs/docs-content/integrations/generic-vm-vsphere.md index a0e66cc3d8..cf54d59677 100644 --- a/docs/docs-content/integrations/generic-vm-vsphere.md +++ b/docs/docs-content/integrations/generic-vm-vsphere.md @@ -14,10 +14,7 @@ tags: ["packs", "generic-vm-vsphere", "system app"] - - - -## Configuring Generic-VM-vSphere +### Configure Generic-VM-vSphere To configure the Generic-VM-vSphere Add-on pack for the application cluster, the namespace value should be as follows: @@ -28,15 +25,15 @@ namespace: cluster-{{ .spectro.system.cluster.uid }} ``` If multiple instances of this pack has to be deployed on the cluster for different virtual machine applications, then -modify '`spectrocloud.com/display-name`' and '`releaseNameOverride`' with different names to make it unique across all -the packs in the cluster. +modify `spectrocloud.com/display-name` and `releaseNameOverride` with different names to make it unique across all the +packs in the cluster. ```yaml spectrocloud.com/display-name: vm-app-1 releaseNameOverride: ``` -## Generic-VM-vSphere Pack Manifest +### Generic-VM-vSphere Pack Manifest ```yaml pack: @@ -177,24 +174,24 @@ charts: # echo "I am post exec" ``` -## Virtual Machine Hooks +### Virtual Machine Hooks The Generic-VM-vSphere pack supports various hooks while deploying VM applications and supports multiple use-cases of customizing workflow, as customers require. -## Using extraVMHclConfig +#### extraVMHclConfig The extraVMHclConfig command can be used to provide an extra configuration in the virtual machine and the configuration file should be provided in HashiCorp Configuration Language (HCL) format. -```terraform -# extraVMHclConfig: | -# cdrom { -# client_device = true -# } +```hcl +extraVMHclConfig: | + cdrom { + client_device = true + } ``` -## Using preExecCmd and postExecCmd +#### preExecCmd and postExecCmd The **preExecCmd** and **postExecCmd** commands will be executed in every pod reconciliation. The loop runs at approximately a 2-minute interval. @@ -210,12 +207,16 @@ preExecCmd: "bash /var/files/pre-exec.sh" postExecCmd: "bash /var/files/pre-exec.sh" ``` -## Using preVMInitCmd and postVMInitCmd +#### preVMInitCmd and postVMInitCmd The **preVMInitCmd** command is executed, only when the virtual machine is being created or recreated. Likewise, the **postVMInitCmd** command is executed only after the virtual machine is created or recreated. -**Note**: These commands will not be executed in each reconciliation. +:::info + +These commands will not be executed in each reconciliation. + +::: ```yaml preVMInitCmd: "echo 'Hey! Hang on tight. I am gonna create a VM.'" @@ -225,7 +226,7 @@ preVMInitCmd: "echo 'Hey! Hang on tight. I am gonna create a VM.'" postVMInitCmd: "echo 'Ooho! VM is created.'" ``` -## Using preVMDestroyCmd +#### preVMDestroyCmd Any command or script provided in this virtual machine hook will execute before the virtual machine is destroyed. It will be executed only when the VM is getting deleted. A virtual machine deletion can happen for any reason, like @@ -237,15 +238,15 @@ preVMDestroyCmd: "" :::info -During a first-time deployment, preVMDestroyCmd won't be invoked. However, if there is any change in cloud-init, -then the VM resource will be recreated, preVMDestroyCmd will be invoked before deleting the VM, and once preVMDestroyCmd -is executed successfully, only then the VM resource will be deleted. +During a first-time deployment, `preVMDestroyCmd` won't be invoked. However, if there is any change in cloud-init, then +the VM resource will be recreated, preVMDestroyCmd will be invoked before deleting the VM, and once preVMDestroyCmd is +executed successfully, only then the VM resource will be deleted. -Once the VM is deleted and before another virtual machine is created, preVMInitCmd will be invoked. +Once the VM is deleted and before another virtual machine is created, `preVMInitCmd` will be invoked. ::: -## Mounts +### Mounts Mount the data inside the existing configuration map or secret into the pod as files, where pre-and-post hooks are executed. This allows the data present in the configuration map or the secrets file to be accessible while running @@ -265,7 +266,7 @@ mounts: # path: /data/system-config-2 ``` -## Environment Variables +### Environment Variables The ENVS section can inject data inside the existing config maps or secrets into the pod as environment variables, where pre-and post-hooks are executed so that data present in the config map or the secret file can be accessed while running @@ -283,10 +284,10 @@ envs: # dataKey: "db.password" ``` -## Files +### Files Files present in this section will be added to the pod and will be accessible while executing pre-and-post execution -hooks and absolute file path would be '/var/files/\'. +hooks and absolute file path would be `/var/files/file_name`. ```yaml files: @@ -300,6 +301,9 @@ files: # echo "I am post exec" ``` + +
+ ## Terraform You can retrieve details about the Generic-VM-Libvirt pack by using the following Terraform code. diff --git a/static/packs-data/packs_information.json b/static/packs-data/packs_information.json index f2fa62a210..5ca5c5649e 100644 --- a/static/packs-data/packs_information.json +++ b/static/packs-data/packs_information.json @@ -427,6 +427,14 @@ "name": "generic-vm-vsphere", "description": "Generic-VM-vSphere is a Palette Add-on pack used to simplify deploying the virtual machine resource from a cluster profile or a system profile. Generic-VM-vSphere extracts all Terraform constructs inside the pack and exposes nothing but the values. Users will then have the ability to modify the add-on pack for the different applications." }, + { + "name": "gloo", + "descrption": "Gloo Gateway is a feature-rich, fast, and flexible Kubernetes-native ingress controller and next-generation API gateway that is built on top of Envoy proxy and the Kubernetes Gateway API. It excels in function-level routing, supports legacy apps, microservices and serverless, offers robust discovery capabilities, integrates seamlessly with open-source projects, and is designed to support hybrid applications with various technologies, architectures, protocols, and clouds." + }, + { + "name": "gvisor", + "description": "gVisor is an open-source Linux-compatible sandbox that can be deployed anywhere existing container tooling does. It enables cloud-native container security and portability. gVisor leverages years of experience isolating production workloads at Google." + }, { "name": "kubernetes-microk8s", "description": "MicroK8s is a lightweight CNCF-certified Kubernetes distribution developed by Canonical. It deploys all Kubernetes services in a single, fully contained package and offers out-of-the-box add-ons." From bbb649c73b17b08f08ff6aa679fdaaaa1f404e43 Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Mon, 29 Jul 2024 14:33:34 -0700 Subject: [PATCH 22/22] chore: fix prettier --- .../clusters/edge/site-deployment/model-profile.md | 4 ++-- .../install-on-kubernetes/palette-helm-ref.md | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/docs-content/clusters/edge/site-deployment/model-profile.md b/docs/docs-content/clusters/edge/site-deployment/model-profile.md index 4704e5ceb1..276645bf98 100644 --- a/docs/docs-content/clusters/edge/site-deployment/model-profile.md +++ b/docs/docs-content/clusters/edge/site-deployment/model-profile.md @@ -162,9 +162,9 @@ YAML file to set up Edge host users, install other OS packages, install certific You now have a cluster profile you can use for deploying Edge hosts. + Consider creating additional profiles with out-of-the-box packs for monitoring, security, authentication, or other -capabilities. If you need remote access to the cluster, consider adding the - pack to one of the add-on profiles. +capabilities. If you need remote access to the cluster, consider adding the pack to one of the add-on profiles. Optionally, add additional Helm or OCI registries and include applications hosted in those registries in add-on profiles. Check out the guide for adding a [Helm](../../../registries-and-packs/registries/helm-charts.md) or diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/palette-helm-ref.md b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/palette-helm-ref.md index daf43fbf9e..7abbae97a3 100644 --- a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/palette-helm-ref.md +++ b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/palette-helm-ref.md @@ -406,12 +406,11 @@ ingress: ### Spectro Proxy + You can specify a reverse proxy server that clusters deployed through Palette can use to facilitate network connectivity -to the cluster's Kubernetes API server. Host clusters deployed in private networks can use the - pack to expose the cluster's -Kubernetes API to downstream clients that are not in the same network. Check out the -[Reverse Proxy](../../system-management/reverse-proxy.md) documentation to learn more about setting up a reverse proxy -server for Palette. +to the cluster's Kubernetes API server. Host clusters deployed in private networks can use the pack to expose the cluster's Kubernetes API to downstream clients that are not in the same network. Check out the [Reverse +Proxy](../../system-management/reverse-proxy.md) documentation to learn more about setting up a reverse proxy server for +Palette. | **Parameters** | **Description** | **Type** | **Default value** | | ----------------- | -------------------------------------------------------------------------------------------- | -------- | ----------------- |