├── .adr-dir
├── .editorconfig
├── .gitattributes
├── .github
├── CODEOWNERS
├── CODE_OF_CONDUCT.md
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── PULL_REQUEST_TEMPLATE.md
└── dependabot.yml
├── .gitignore
├── .vscode
├── extensions.json
└── settings.json
├── LICENSE
├── README.md
└── infra
├── .gitignore
├── Pulumi.yaml
├── kind-config.yaml
├── package.json
├── src
├── config.ts
├── index.ts
├── modules
│ ├── 00-primitives
│ │ └── mod.ts
│ ├── 01-load-balancer
│ │ ├── metallb-manifest.yaml
│ │ └── mod.ts
│ ├── 02-istio
│ │ ├── istio-manifest.yaml
│ │ └── mod.ts
│ ├── 03-gateway
│ │ ├── gateway-api-crds-manifest.yaml
│ │ └── mod.ts
│ ├── 04-argowf
│ │ └── mod.ts
│ ├── 05-argocd
│ │ └── mod.ts
│ └── 06-monitoring
│ │ └── mod.ts
└── targets.ts
├── tsconfig.json
└── yarn.lock
/.adr-dir:
--------------------------------------------------------------------------------
1 | docs/adr
2 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: https://EditorConfig.org
2 |
3 | # top-most EditorConfig file
4 | root = true
5 |
6 | [*]
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | charset = utf-8
11 | trim_trailing_whitespace = true
12 | insert_final_newline = true
13 | # editorconfig-tools is unable to ignore longs strings or urls
14 | max_line_length = off
15 |
16 | [{*.md,*.mdx,*.mdoc}]
17 | trim_trailing_whitespace = false
18 |
19 | [{Makefile,go.mod,go.sum,*.go,.gitmodules}]
20 | indent_style = tab
21 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Set the default behavior as unix line endings for all text files,
2 | # in case people don't have core.autocrlf set.
3 | * text=auto eol=lf
4 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @eser
2 |
--------------------------------------------------------------------------------
/.github/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Code of Conduct
2 |
3 | See [cool/directives](https://github.com/eser/cool/tree/dev/directives) for our
4 | sets of rules and recommendations we follow.
5 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: Bug report
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**\
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**\
14 | Steps to reproduce the behavior:
15 |
16 | 1. Go to '...'
17 | 2. Click on '....'
18 | 3. Scroll down to '....'
19 | 4. See error
20 |
21 | **Expected behavior**\
22 | A clear and concise description of what you expected to happen.
23 |
24 | **Screenshots**\
25 | If applicable, add screenshots to help explain your problem.
26 |
27 | **Desktop (please complete the following information):**
28 |
29 | - OS: [e.g. iOS]
30 | - Browser [e.g. chrome, safari]
31 | - Version [e.g. 22]
32 |
33 | **Smartphone (please complete the following information):**
34 |
35 | - Device: [e.g. iPhone6]
36 | - OS: [e.g. iOS8.1]
37 | - Browser [e.g. stock browser, safari]
38 | - Version [e.g. 22]
39 |
40 | **Additional context**\
41 | Add any other context about the problem here.
42 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea or voice a concern
4 | title: 'Feature request: '
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**\
11 | A clear and concise description of what the problem is. Ex. I'm always
12 | frustrated when [...]
13 |
14 | **Describe the solution you'd like**\
15 | A clear and concise description of what you want to happen.
16 |
17 | **Describe alternatives you've considered**\
18 | A clear and concise description of any alternative solutions or features you've
19 | considered.
20 |
21 | **Additional context**\
22 | Add any other context or screenshots about the feature request here.
23 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | - [x] My submissions follows the **Submission Rules**
2 | - [x] I have read and accepted the **Terms and Conditions**
3 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 |
4 | - package-ecosystem: "github-actions"
5 | directory: "/"
6 | schedule:
7 | # Check for updates to GitHub Actions every week
8 | interval: "weekly"
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # OS-specific files
4 | .DS_Store
5 | Thumbs.db
6 |
7 | # Editor metadata
8 | .vscode/*
9 | !.vscode/extensions.json
10 | !.vscode/launch.json
11 | !.vscode/settings.json
12 | .idea/*
13 |
14 | # local API keys and secrets
15 | .env.local
16 | .env.*.local
17 |
18 | # sensitive files
19 | *.key
20 | *.pem
21 | *.swp
22 |
23 | # Binaries for programs and plugins
24 | *.exe
25 | *.exe~
26 | *.dll
27 | *.so
28 | *.dylib
29 |
30 | # Test binaries, coverage and testing tool outputs
31 | *.test
32 | *.out
33 | cov_profile.lcov
34 |
35 | # Dependency directories (remove the comment below to include it)
36 | # vendor/
37 |
38 | # Build output and temporary files
39 | __debug_bin*
40 | build-errors.log
41 | tmp/*
42 | !tmp/.gitkeep
43 |
44 | # Todos
45 | TODOS
46 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "chdsbd.github-code-owners"
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "yaml.schemas": {
3 | "https://json.schemastore.org/github-workflow.json": "./.github/workflows/*.yml"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2023-present Eser Ozvataf and other contributors.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Project KuberNeXT
2 |
3 | KuberNeXT is a powerful tool designed to deploy a meticulously crafted DevOps stack in minutes, whether on a remote server or your local development environment. This stack includes fully-featured tools for GitOps, monitoring, metrics, and workflows—just like the robust infrastructure you'd find in a leading software company.
4 |
5 | ## Infrastructure
6 |
7 | This project uses [Infrastructure as Code](./infra/) with Pulumi. Current stack consists of:
8 |
9 | - [Kubernetes](https://kubernetes.io/) for container orchestration
10 | - [kind](https://kind.sigs.k8s.io/) for creating local Kubernetes cluster(s)
11 | - [Pulumi](https://www.pulumi.com/) for infrastructure provisioning
12 | - [Argo Workflows](https://argoproj.github.io/workflows) for worker tasks
13 | - [ArgoCD](https://argoproj.github.io/cd) for GitOps
14 | - [Prometheus](https://prometheus.io/) for metrics
15 | - [Grafana](https://grafana.com/) for monitoring
16 | - [Istio](https://istio.io/) for service mesh
17 | - [MetalLB](https://metallb.universe.tf/) for load balancer
18 |
19 | ## Deployment
20 |
21 | To deploy your infrastructure, follow the steps below.
22 |
23 | ### Prerequisites
24 |
25 | 1. [Install kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) for local Kubernetes cluster
26 | 2. [Install Pulumi](https://www.pulumi.com/docs/get-started/install/)
27 | 3. Install NPM Dependencies
28 | 4. [Install `kubectl`](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
29 |
30 | ### Steps
31 |
32 | After cloning this repo, run these commands from the working directory:
33 |
34 |
35 | #### kind
36 |
37 | ```bash
38 | $ kind create cluster --name local --config kind-config.yaml
39 | ```
40 |
41 | #### Pulumi
42 |
43 | 1. Login to pulumi:
44 |
45 | ```bash
46 | $ pulumi login --local
47 | ```
48 |
49 | 2. Create a new stack:
50 |
51 | ```bash
52 | $ pulumi stack init production
53 | ```
54 |
55 | 2. Execute the Pulumi program to create or update your infra:
56 |
57 | ```bash
58 | $ pulumi up --stack production
59 | ```
60 |
61 | #### Argo CD
62 |
63 | 1. Visit `http://localhost`
64 | 2. Get password with
65 | `kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d`
66 | command
67 | 3. Login as admin with the password
68 |
69 | #### Argo Workflow
70 |
71 | 1. Argo port forward
72 |
73 | ```bash
74 | $ kubectl -n argowf port-forward deployment/argo-server 2746:2746
75 | ```
76 |
77 | ### License
78 |
79 | This project is licensed under the Apache 2.0 License. For further details,
80 | please see the [LICENSE](LICENSE) file.
81 |
82 | ### To support the project...
83 |
84 | [Visit my GitHub Sponsors profile at github.com/sponsors/eser](https://github.com/sponsors/eser)
85 |
--------------------------------------------------------------------------------
/infra/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # Dependency directories
4 | /node_modules/
5 |
6 | # Pulumi
7 | .pulumi/*
8 | Pulumi.*.yaml
9 |
--------------------------------------------------------------------------------
/infra/Pulumi.yaml:
--------------------------------------------------------------------------------
1 | name: kubernext
2 | runtime: nodejs
3 | description: Next generation of our infrastructure
4 |
5 | config:
6 | kubernext:installLoadBalancer: "true"
7 | kubernext:loadBalancerAddressPool: "192.168.1.240-192.168.1.250"
8 | kubernext:domain: "eser.land"
9 | kubernext:privateKey: "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2QUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktZd2dnU2lBZ0VBQW9JQkFRQ2NjNy8wZ3kxa1JDWjcKWEpoRmIzcUpWSHRwZjErWTNsL3RxL1BRRC9ITUt5bEdMZW5OOXZUK25SRmNXdnZGVW1NWGhvOXBOYUhvZWtrSApnbEN4RmF5aXZaQkRhVThqeVhnaC9US09qaHY0NEdQMEN2UE9LcnlPSU1hYWw4ZUJXc0lwZ0swVHljVWRUYlMvCmcwOHRUK2NnWUlYS255dCtqOHVwK05hNW9Zdkc5QTV5ZWNwM2s0MExvSGRsVzZXQ1phdGxyTjRhZ2lGeWtuYTQKZTNKUkF4WVpudHpjV2tvZS90UHN6Q1FwMjlXbFhrZDJXUHRtV0hzdDZKTUJJdDI4Z0FtWDRMbXRmRTd0WDZFcQpxNVNDUnF4OElUUXo3VUxlYXVlcGdOUkRxcjhmTE9YcnRmZ1pZWW5rWUc5MS9PM1NLVjdNZ3lNdCs4OUpTMGRRCnpkN1RHN0hYQWdNQkFBRUNnZ0VBUjlWRGhOWTM0S29EeXk5RUFObUM5d3Z4a0FvNkQ5dkdTcjloTmg0a0JIeXEKdWp5NWRXWldyWkxiVmo2MkM2N2NyWUFNVjUrVzQ4RkZ4NnRYTmo5LzRNYk50bzNqRnNqWm5pMTlhWU9wSnplTAozUkNzU1hSSTE2OEgwUkl3T1YyOCtVWko4V1I2V3c2REYwMkliSU1iMlR0SUlyUzdTU1JudS9aelRJNzJPUlc4Cmo2U0pSeGlhVWZmMXFVakJhUFBEZHlmdUczNU03Q2tSZ1g4RGVnN1gycGFKSTJaVk16V1NDbmpaTE55cDBSbXEKZUFtRlloekQ4c2E5YjJvSkNEYzRWNytldDd3Z21wSTJZNk9lZ2dJMEc4blR6UFdpNFplbXB0RnQwV0pUTDVNYwpYZEJ2VXlMRDdWYzBzUkJLTHdFY1JvbmRrUzc4Mkd6aWhaQllZYVFwYlFLQmdRRFNJVTMzK3J4YTlmNG1FUlJnCjg3WCs4WVh5a3ZUV1dtK3UwZWpMYWp0QVBjSUNnVUw0Rnk4OHNpa09XOHpsMmRadEhPcS8yQ3RxVlBDenllS3gKQjRramsxWHBVZ21peDA2OEFoKzJUbkRuNEZXUFRQa01TNVNRbFJKTHFLWDkxeHl3MmxLZUUzZS9nTytGSXRFNgpMcFRielloR0JwcFZucTgrOGp2WCtaSHA0d0tCZ1FDK21zTDl6SkFQT2wwUWJTZlFOR2p0eDlFOHNHWGxJVlV0CnlzN1RzWm5IcGJtZ0Fhdm0yYjFVeG5scTZOcklmZHNXVFJnMVFScVM2WlB2VDU4RHF3TTRxNFhIRTVzek9qNVYKdnZIaDFxTFBjWEw0NHk1c2kxWmxQK1dTWHFOd2YyN1ZsMXdyaFFOR1Z3dFZYK1RpMHdNYTBYOHFiYmFUeE1vMgpkL20yNVJIcWZRS0JnR3hFT3E4RllwMGZWK1ozTUYvUDBqcmNhSjZXZDA0bVpKclhqckdZTjVVZS9PSmJoWXpjCkxUdUJ0RU93cXY3VzRYTnd6Y2N3OHhXalZDM2VYRTNJU3pHb1RVQ2RRMWU2aDJlNVZHdVRPUHRRQytWOHpHazQKWEFDdXZqRjdZS05NZlh6bDBHR2dPRGZVa0JTeDNzbXlqSUpBQVBITG55TjBVbWtGV0M0c2FiRHZBb0dBSEtRMAoyTjU4WjAxbDNxb0lhWWoybTRTRE5KTnRQRmtkNjV1bUtMbHZXa2pVOCs1TVhvd3BueXVUNHpUS2E0WTkvY1BuCjkxaXBIWnByMkhJbWV1NmZ0VXhROWZGRVNSWmZkNU1SMWRYaThUa2pCYk5kcm9IaG9hVlFZZ1pHbVFrTkpwdHcKQmpvZW05dElvTE9nT1ZWc0NnT2hFRWNjUUdnNTJxVjhxTGNUVWlFQ2dZQWUrWllpTHo3Szd2enNUanpwQm5QbQpJQ3JTR0MrMWlaeHBtQUxLaTB1TjMyaUFJdCtBRVI2S1JzazVsT0U2OG4velUwamZnRk9KYXloN09Da0R4eVYzCkdzblZXa0t6QzZjL0U4ZU5ISWxWTHhVZisvT2JJaThPUEhUUFFLcEdPYVJqYk5udThzLzAvTUdERkNhVFJGRHQKbFZxU2hxdUxESVgvc2pzRFlMeU9HQT09Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K"
10 | kubernext:publicKey: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURSekNDQWkrZ0F3SUJBZ0lVSEl2UExucHFtbkk4aHhDWHhrNmtXYmhsTkZZd0RRWUpLb1pJaHZjTkFRRUwKQlFBd016RVhNQlVHQTFVRUNnd09TM1ZpWlhKT1pWaFVJRWx1WXk0eEdEQVdCZ05WQkFNTUQydDFZbVZ5Ym1WNApkQzVzYjJOaGJEQWVGdzB5TXpFeU1qWXhOakF4TkRWYUZ3MHlOREV5TWpVeE5qQXhORFZhTURNeEZ6QVZCZ05WCkJBb01Ea3QxWW1WeVRtVllWQ0JKYm1NdU1SZ3dGZ1lEVlFRRERBOXJkV0psY201bGVIUXViRzlqWVd3d2dnRWkKTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDY2M3LzBneTFrUkNaN1hKaEZiM3FKVkh0cApmMStZM2wvdHEvUFFEL0hNS3lsR0xlbk45dlQrblJGY1d2dkZVbU1YaG85cE5hSG9la2tIZ2xDeEZheWl2WkJECmFVOGp5WGdoL1RLT2podjQ0R1AwQ3ZQT0tyeU9JTWFhbDhlQldzSXBnSzBUeWNVZFRiUy9nMDh0VCtjZ1lJWEsKbnl0K2o4dXArTmE1b1l2RzlBNXllY3AzazQwTG9IZGxXNldDWmF0bHJONGFnaUZ5a25hNGUzSlJBeFlabnR6YwpXa29lL3RQc3pDUXAyOVdsWGtkMldQdG1XSHN0NkpNQkl0MjhnQW1YNExtdGZFN3RYNkVxcTVTQ1JxeDhJVFF6CjdVTGVhdWVwZ05SRHFyOGZMT1hydGZnWllZbmtZRzkxL08zU0tWN01neU10Kzg5SlMwZFF6ZDdURzdIWEFnTUIKQUFHalV6QlJNQjBHQTFVZERnUVdCQlFOa2dPMzNFeWVwQ0dZT2loYW0wbDZmNXZCYkRBZkJnTlZIU01FR0RBVwpnQlFOa2dPMzNFeWVwQ0dZT2loYW0wbDZmNXZCYkRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzCkRRRUJDd1VBQTRJQkFRQW91MVVIeWpjQjgxaWJ1ajdRSWdyRUMxbTJNR2hvSTJEZlB1OTU0MktsK0xLUWNhNEUKekNLOGY3MmNDeW9EWFcvOXBVNkROQWFpSFZ6bEJxUFhpS2EvbzYzdzJQa2M4dnF5ZGRSdlc5Mi9aUEQzRTJFaApLQUFzTmRMS0tDWDBxSmJnSmxWaERpY0s4a0pIUVFtSnlCSVl4cXpwOUYwS3AydjZYTXpFY2c0amtkVkR0Q3VDCkovOFlTZjF5N1ova20rZmhrRlQ3SFl4dlZjQjByUWUwVjlGSlA1eWVsMGVBMHcxVmhCOEJMMGFReXBJOS8xZVAKQVZDU1ZCdWl0WjRaaGFOU3dCQ3RYK3FkdlF0Q1picUZHSEpTMTdzdGhjWmFMSjU5M3lPNlJmMEw1K1dTQVoxaQovVU9OM1lLS1RQWE5OYnk5WlpxS1YrV3lNbzZrTEFqNGdhZXIKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
11 |
12 | kubernext:grafanaUsername: "grafana"
13 | kubernext:grafanaPassword: "grafana"
14 |
--------------------------------------------------------------------------------
/infra/kind-config.yaml:
--------------------------------------------------------------------------------
1 | kind: Cluster
2 | apiVersion: kind.x-k8s.io/v1alpha4
3 | networking:
4 | podSubnet: "10.244.0.0/16"
5 | serviceSubnet: "10.96.0.0/16"
6 | nodes:
7 | - role: control-plane
8 | extraPortMappings:
9 | - containerPort: 80
10 | hostPort: 80
11 | protocol: TCP
12 | - containerPort: 443
13 | hostPort: 443
14 | protocol: TCP
15 |
--------------------------------------------------------------------------------
/infra/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "kubernext-infra",
3 | "main": "./src/index.ts",
4 | "devDependencies": {
5 | "@types/node": "^22.10.7"
6 | },
7 | "dependencies": {
8 | "@pulumi/kubernetes": "^4.21.0",
9 | "@pulumi/pulumi": "^3.146.0",
10 | "@pulumi/tls": "^5.1.0"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/infra/src/config.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import * as pulumi from "@pulumi/pulumi";
3 |
4 | export const cwd = process.cwd();
5 |
6 | export const instance = new pulumi.Config();
7 |
8 | export const installLoadBalancer = instance.getBoolean("installLoadBalancer");
9 | export const loadBalancerAddressPool = instance.get("loadBalancerAddressPool");
10 |
11 | export const domain = instance.require("domain");
12 |
13 | // grafana
14 |
15 | export const grafanaUsername = instance.require("grafanaUsername");
16 | export const grafanaPassword = instance.require("grafanaPassword");
17 |
18 | // keys
19 |
20 | export const privateKey = instance.get("privateKey");
21 | export const publicKey = instance.get("publicKey");
22 |
--------------------------------------------------------------------------------
/infra/src/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import "./modules/00-primitives/mod";
3 | import "./modules/01-load-balancer/mod";
4 | import "./modules/02-istio/mod";
5 | import "./modules/03-gateway/mod";
6 | import "./modules/04-argowf/mod";
7 | import "./modules/05-argocd/mod";
8 | import "./modules/06-monitoring/mod";
9 |
--------------------------------------------------------------------------------
/infra/src/modules/00-primitives/mod.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import * as k8s from "@pulumi/kubernetes";
3 | import * as targets from "../../targets";
4 |
5 | // namespaces
6 |
7 | const defaultNsName = "default";
8 | export const defaultNs = k8s.core.v1.Namespace.get(
9 | "default-namespace",
10 | defaultNsName,
11 | { provider: targets.k8sProvider },
12 | );
13 |
--------------------------------------------------------------------------------
/infra/src/modules/01-load-balancer/metallb-manifest.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Namespace
3 | metadata:
4 | labels:
5 | pod-security.kubernetes.io/audit: privileged
6 | pod-security.kubernetes.io/enforce: privileged
7 | pod-security.kubernetes.io/warn: privileged
8 | name: metallb-system
9 | ---
10 | apiVersion: apiextensions.k8s.io/v1
11 | kind: CustomResourceDefinition
12 | metadata:
13 | annotations:
14 | controller-gen.kubebuilder.io/version: v0.16.3
15 | name: bfdprofiles.metallb.io
16 | spec:
17 | group: metallb.io
18 | names:
19 | kind: BFDProfile
20 | listKind: BFDProfileList
21 | plural: bfdprofiles
22 | singular: bfdprofile
23 | scope: Namespaced
24 | versions:
25 | - additionalPrinterColumns:
26 | - jsonPath: .spec.passiveMode
27 | name: Passive Mode
28 | type: boolean
29 | - jsonPath: .spec.transmitInterval
30 | name: Transmit Interval
31 | type: integer
32 | - jsonPath: .spec.receiveInterval
33 | name: Receive Interval
34 | type: integer
35 | - jsonPath: .spec.detectMultiplier
36 | name: Multiplier
37 | type: integer
38 | name: v1beta1
39 | schema:
40 | openAPIV3Schema:
41 | description: |-
42 | BFDProfile represents the settings of the bfd session that can be
43 | optionally associated with a BGP session.
44 | properties:
45 | apiVersion:
46 | description: |-
47 | APIVersion defines the versioned schema of this representation of an object.
48 | Servers should convert recognized schemas to the latest internal value, and
49 | may reject unrecognized values.
50 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
51 | type: string
52 | kind:
53 | description: |-
54 | Kind is a string value representing the REST resource this object represents.
55 | Servers may infer this from the endpoint the client submits requests to.
56 | Cannot be updated.
57 | In CamelCase.
58 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
59 | type: string
60 | metadata:
61 | type: object
62 | spec:
63 | description: BFDProfileSpec defines the desired state of BFDProfile.
64 | properties:
65 | detectMultiplier:
66 | description: |-
67 | Configures the detection multiplier to determine
68 | packet loss. The remote transmission interval will be multiplied
69 | by this value to determine the connection loss detection timer.
70 | format: int32
71 | maximum: 255
72 | minimum: 2
73 | type: integer
74 | echoInterval:
75 | description: |-
76 | Configures the minimal echo receive transmission
77 | interval that this system is capable of handling in milliseconds.
78 | Defaults to 50ms
79 | format: int32
80 | maximum: 60000
81 | minimum: 10
82 | type: integer
83 | echoMode:
84 | description: |-
85 | Enables or disables the echo transmission mode.
86 | This mode is disabled by default, and not supported on multi
87 | hops setups.
88 | type: boolean
89 | minimumTtl:
90 | description: |-
91 | For multi hop sessions only: configure the minimum
92 | expected TTL for an incoming BFD control packet.
93 | format: int32
94 | maximum: 254
95 | minimum: 1
96 | type: integer
97 | passiveMode:
98 | description: |-
99 | Mark session as passive: a passive session will not
100 | attempt to start the connection and will wait for control packets
101 | from peer before it begins replying.
102 | type: boolean
103 | receiveInterval:
104 | description: |-
105 | The minimum interval that this system is capable of
106 | receiving control packets in milliseconds.
107 | Defaults to 300ms.
108 | format: int32
109 | maximum: 60000
110 | minimum: 10
111 | type: integer
112 | transmitInterval:
113 | description: |-
114 | The minimum transmission interval (less jitter)
115 | that this system wants to use to send BFD control packets in
116 | milliseconds. Defaults to 300ms
117 | format: int32
118 | maximum: 60000
119 | minimum: 10
120 | type: integer
121 | type: object
122 | status:
123 | description: BFDProfileStatus defines the observed state of BFDProfile.
124 | type: object
125 | type: object
126 | served: true
127 | storage: true
128 | subresources:
129 | status: {}
130 | ---
131 | apiVersion: apiextensions.k8s.io/v1
132 | kind: CustomResourceDefinition
133 | metadata:
134 | annotations:
135 | controller-gen.kubebuilder.io/version: v0.16.3
136 | name: bgpadvertisements.metallb.io
137 | spec:
138 | group: metallb.io
139 | names:
140 | kind: BGPAdvertisement
141 | listKind: BGPAdvertisementList
142 | plural: bgpadvertisements
143 | singular: bgpadvertisement
144 | scope: Namespaced
145 | versions:
146 | - additionalPrinterColumns:
147 | - jsonPath: .spec.ipAddressPools
148 | name: IPAddressPools
149 | type: string
150 | - jsonPath: .spec.ipAddressPoolSelectors
151 | name: IPAddressPool Selectors
152 | type: string
153 | - jsonPath: .spec.peers
154 | name: Peers
155 | type: string
156 | - jsonPath: .spec.nodeSelectors
157 | name: Node Selectors
158 | priority: 10
159 | type: string
160 | name: v1beta1
161 | schema:
162 | openAPIV3Schema:
163 | description: |-
164 | BGPAdvertisement allows to advertise the IPs coming
165 | from the selected IPAddressPools via BGP, setting the parameters of the
166 | BGP Advertisement.
167 | properties:
168 | apiVersion:
169 | description: |-
170 | APIVersion defines the versioned schema of this representation of an object.
171 | Servers should convert recognized schemas to the latest internal value, and
172 | may reject unrecognized values.
173 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
174 | type: string
175 | kind:
176 | description: |-
177 | Kind is a string value representing the REST resource this object represents.
178 | Servers may infer this from the endpoint the client submits requests to.
179 | Cannot be updated.
180 | In CamelCase.
181 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
182 | type: string
183 | metadata:
184 | type: object
185 | spec:
186 | description: BGPAdvertisementSpec defines the desired state of BGPAdvertisement.
187 | properties:
188 | aggregationLength:
189 | default: 32
190 | description: The aggregation-length advertisement option lets you
191 | “roll up” the /32s into a larger prefix. Defaults to 32. Works for
192 | IPv4 addresses.
193 | format: int32
194 | minimum: 1
195 | type: integer
196 | aggregationLengthV6:
197 | default: 128
198 | description: The aggregation-length advertisement option lets you
199 | “roll up” the /128s into a larger prefix. Defaults to 128. Works
200 | for IPv6 addresses.
201 | format: int32
202 | type: integer
203 | communities:
204 | description: |-
205 | The BGP communities to be associated with the announcement. Each item can be a standard community of the
206 | form 1234:1234, a large community of the form large:1234:1234:1234 or the name of an alias defined in the
207 | Community CRD.
208 | items:
209 | type: string
210 | type: array
211 | ipAddressPoolSelectors:
212 | description: |-
213 | A selector for the IPAddressPools which would get advertised via this advertisement.
214 | If no IPAddressPool is selected by this or by the list, the advertisement is applied to all the IPAddressPools.
215 | items:
216 | description: |-
217 | A label selector is a label query over a set of resources. The result of matchLabels and
218 | matchExpressions are ANDed. An empty label selector matches all objects. A null
219 | label selector matches no objects.
220 | properties:
221 | matchExpressions:
222 | description: matchExpressions is a list of label selector requirements.
223 | The requirements are ANDed.
224 | items:
225 | description: |-
226 | A label selector requirement is a selector that contains values, a key, and an operator that
227 | relates the key and values.
228 | properties:
229 | key:
230 | description: key is the label key that the selector applies
231 | to.
232 | type: string
233 | operator:
234 | description: |-
235 | operator represents a key's relationship to a set of values.
236 | Valid operators are In, NotIn, Exists and DoesNotExist.
237 | type: string
238 | values:
239 | description: |-
240 | values is an array of string values. If the operator is In or NotIn,
241 | the values array must be non-empty. If the operator is Exists or DoesNotExist,
242 | the values array must be empty. This array is replaced during a strategic
243 | merge patch.
244 | items:
245 | type: string
246 | type: array
247 | x-kubernetes-list-type: atomic
248 | required:
249 | - key
250 | - operator
251 | type: object
252 | type: array
253 | x-kubernetes-list-type: atomic
254 | matchLabels:
255 | additionalProperties:
256 | type: string
257 | description: |-
258 | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
259 | map is equivalent to an element of matchExpressions, whose key field is "key", the
260 | operator is "In", and the values array contains only "value". The requirements are ANDed.
261 | type: object
262 | type: object
263 | x-kubernetes-map-type: atomic
264 | type: array
265 | ipAddressPools:
266 | description: The list of IPAddressPools to advertise via this advertisement,
267 | selected by name.
268 | items:
269 | type: string
270 | type: array
271 | localPref:
272 | description: |-
273 | The BGP LOCAL_PREF attribute which is used by BGP best path algorithm,
274 | Path with higher localpref is preferred over one with lower localpref.
275 | format: int32
276 | type: integer
277 | nodeSelectors:
278 | description: NodeSelectors allows to limit the nodes to announce as
279 | next hops for the LoadBalancer IP. When empty, all the nodes having are
280 | announced as next hops.
281 | items:
282 | description: |-
283 | A label selector is a label query over a set of resources. The result of matchLabels and
284 | matchExpressions are ANDed. An empty label selector matches all objects. A null
285 | label selector matches no objects.
286 | properties:
287 | matchExpressions:
288 | description: matchExpressions is a list of label selector requirements.
289 | The requirements are ANDed.
290 | items:
291 | description: |-
292 | A label selector requirement is a selector that contains values, a key, and an operator that
293 | relates the key and values.
294 | properties:
295 | key:
296 | description: key is the label key that the selector applies
297 | to.
298 | type: string
299 | operator:
300 | description: |-
301 | operator represents a key's relationship to a set of values.
302 | Valid operators are In, NotIn, Exists and DoesNotExist.
303 | type: string
304 | values:
305 | description: |-
306 | values is an array of string values. If the operator is In or NotIn,
307 | the values array must be non-empty. If the operator is Exists or DoesNotExist,
308 | the values array must be empty. This array is replaced during a strategic
309 | merge patch.
310 | items:
311 | type: string
312 | type: array
313 | x-kubernetes-list-type: atomic
314 | required:
315 | - key
316 | - operator
317 | type: object
318 | type: array
319 | x-kubernetes-list-type: atomic
320 | matchLabels:
321 | additionalProperties:
322 | type: string
323 | description: |-
324 | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
325 | map is equivalent to an element of matchExpressions, whose key field is "key", the
326 | operator is "In", and the values array contains only "value". The requirements are ANDed.
327 | type: object
328 | type: object
329 | x-kubernetes-map-type: atomic
330 | type: array
331 | peers:
332 | description: |-
333 | Peers limits the bgppeer to advertise the ips of the selected pools to.
334 | When empty, the loadbalancer IP is announced to all the BGPPeers configured.
335 | items:
336 | type: string
337 | type: array
338 | type: object
339 | status:
340 | description: BGPAdvertisementStatus defines the observed state of BGPAdvertisement.
341 | type: object
342 | type: object
343 | served: true
344 | storage: true
345 | subresources:
346 | status: {}
347 | ---
348 | apiVersion: apiextensions.k8s.io/v1
349 | kind: CustomResourceDefinition
350 | metadata:
351 | annotations:
352 | controller-gen.kubebuilder.io/version: v0.16.3
353 | name: bgppeers.metallb.io
354 | spec:
355 | conversion:
356 | strategy: Webhook
357 | webhook:
358 | clientConfig:
359 | caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlGWlRDQ0EwMmdBd0lCQWdJVU5GRW1XcTM3MVpKdGkrMmlSQzk1WmpBV1MxZ3dEUVlKS29aSWh2Y05BUUVMDQpCUUF3UWpFTE1Ba0dBMVVFQmhNQ1dGZ3hGVEFUQmdOVkJBY01ERVJsWm1GMWJIUWdRMmwwZVRFY01Cb0dBMVVFDQpDZ3dUUkdWbVlYVnNkQ0JEYjIxd1lXNTVJRXgwWkRBZUZ3MHlNakEzTVRrd09UTXlNek5hRncweU1qQTRNVGd3DQpPVE15TXpOYU1FSXhDekFKQmdOVkJBWVRBbGhZTVJVd0V3WURWUVFIREF4RVpXWmhkV3gwSUVOcGRIa3hIREFhDQpCZ05WQkFvTUUwUmxabUYxYkhRZ1EyOXRjR0Z1ZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDDQpEd0F3Z2dJS0FvSUNBUUNxVFpxMWZRcC9vYkdlenhES0o3OVB3Ny94azJwellualNzMlkzb1ZYSm5sRmM4YjVlDQpma2ZZQnY2bndscW1keW5PL2phWFBaQmRQSS82aFdOUDBkdVhadEtWU0NCUUpyZzEyOGNXb3F0MGNTN3pLb1VpDQpvcU1tQ0QvRXVBeFFNZjhRZDF2c1gvVllkZ0poVTZBRXJLZEpIaXpFOUJtUkNkTDBGMW1OVW55Rk82UnRtWFZUDQpidkxsTDVYeTc2R0FaQVBLOFB4aVlDa0NtbDdxN0VnTWNiOXlLWldCYmlxQ3VkTXE5TGJLNmdKNzF6YkZnSXV4DQo1L1pXK2JraTB2RlplWk9ZODUxb1psckFUNzJvMDI4NHNTWW9uN0pHZVZkY3NoUnh5R1VpSFpSTzdkaXZVTDVTDQpmM2JmSDFYbWY1ZDQzT0NWTWRuUUV2NWVaOG8zeWVLa3ZrbkZQUGVJMU9BbjdGbDlFRVNNR2dhOGFaSG1URSttDQpsLzlMSmdDYjBnQmtPT0M0WnV4bWh2aERKV1EzWnJCS3pMQlNUZXN0NWlLNVlwcXRWVVk2THRyRW9FelVTK1lsDQpwWndXY2VQWHlHeHM5ZURsR3lNVmQraW15Y3NTU1UvVno2Mmx6MnZCS21NTXBkYldDQWhud0RsRTVqU2dyMjRRDQp0eGNXLys2N3d5KzhuQlI3UXdqVTFITndVRjBzeERWdEwrZ1NHVERnSEVZSlhZelYvT05zMy94TkpoVFNPSkxNDQpoeXNVdyttaGdackdhbUdXcHVIVU1DUitvTWJzMTc1UkcrQjJnUFFHVytPTjJnUTRyOXN2b0ZBNHBBQm8xd1dLDQpRYjRhY3pmeVVscElBOVFoSmFsZEY3S3dPSHVlV3gwRUNrNXg0T2tvVDBvWVp0dzFiR0JjRGtaSmF3SURBUUFCDQpvMU13VVRBZEJnTlZIUTRFRmdRVW90UlNIUm9IWTEyRFZ4R0NCdEhpb1g2ZmVFQXdId1lEVlIwakJCZ3dGb0FVDQpvdFJTSFJvSFkxMkRWeEdDQnRIaW9YNmZlRUF3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCDQpBUXNGQUFPQ0FnRUFSbkpsWWRjMTFHd0VxWnh6RDF2R3BDR2pDN2VWTlQ3aVY1d3IybXlybHdPYi9aUWFEa0xYDQpvVStaOVVXT1VlSXJTdzUydDdmQUpvVVAwSm5iYkMveVIrU1lqUGhvUXNiVHduOTc2ZldBWTduM3FMOXhCd1Y0DQphek41OXNjeUp0dlhMeUtOL2N5ak1ReDRLajBIMFg0bWJ6bzVZNUtzWWtYVU0vOEFPdWZMcEd0S1NGVGgrSEFDDQpab1Q5YnZHS25adnNHd0tYZFF0Wnh0akhaUjVqK3U3ZGtQOTJBT051RFNabS8rWVV4b2tBK09JbzdSR3BwSHNXDQo1ZTdNY0FTVXRtb1FORXd6dVFoVkJaRWQ1OGtKYjUrV0VWbGNzanlXNnRTbzErZ25tTWNqR1BsMWgxR2hVbjV4DQpFY0lWRnBIWXM5YWo1NmpBSjk1MVQvZjhMaWxmTlVnanBLQ0c1bnl0SUt3emxhOHNtdGlPdm1UNEpYbXBwSkI2DQo4bmdHRVluVjUrUTYwWFJ2OEhSSGp1VG9CRHVhaERrVDA2R1JGODU1d09FR2V4bkZpMXZYWUxLVllWb1V2MXRKDQo4dVdUR1pwNllDSVJldlBqbzg5ZytWTlJSaVFYUThJd0dybXE5c0RoVTlqTjA0SjdVL1RvRDFpNHE3VnlsRUc5DQorV1VGNkNLaEdBeTJIaEhwVncyTGFoOS9lUzdZMUZ1YURrWmhPZG1laG1BOCtqdHNZamJadnR5Mm1SWlF0UUZzDQpUU1VUUjREbUR2bVVPRVRmeStpRHdzK2RkWXVNTnJGeVVYV2dkMnpBQU4ydVl1UHFGY2pRcFNPODFzVTJTU3R3DQoxVzAyeUtYOGJEYmZFdjBzbUh3UzliQnFlSGo5NEM1Mjg0YXpsdTBmaUdpTm1OUEM4ckJLRmhBPQ0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
360 | service:
361 | name: metallb-webhook-service
362 | namespace: metallb-system
363 | path: /convert
364 | conversionReviewVersions:
365 | - v1beta1
366 | - v1beta2
367 | group: metallb.io
368 | names:
369 | kind: BGPPeer
370 | listKind: BGPPeerList
371 | plural: bgppeers
372 | singular: bgppeer
373 | scope: Namespaced
374 | versions:
375 | - additionalPrinterColumns:
376 | - jsonPath: .spec.peerAddress
377 | name: Address
378 | type: string
379 | - jsonPath: .spec.peerASN
380 | name: ASN
381 | type: string
382 | - jsonPath: .spec.bfdProfile
383 | name: BFD Profile
384 | type: string
385 | - jsonPath: .spec.ebgpMultiHop
386 | name: Multi Hops
387 | type: string
388 | deprecated: true
389 | deprecationWarning: v1beta1 is deprecated, please use v1beta2
390 | name: v1beta1
391 | schema:
392 | openAPIV3Schema:
393 | description: BGPPeer is the Schema for the peers API.
394 | properties:
395 | apiVersion:
396 | description: |-
397 | APIVersion defines the versioned schema of this representation of an object.
398 | Servers should convert recognized schemas to the latest internal value, and
399 | may reject unrecognized values.
400 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
401 | type: string
402 | kind:
403 | description: |-
404 | Kind is a string value representing the REST resource this object represents.
405 | Servers may infer this from the endpoint the client submits requests to.
406 | Cannot be updated.
407 | In CamelCase.
408 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
409 | type: string
410 | metadata:
411 | type: object
412 | spec:
413 | description: BGPPeerSpec defines the desired state of Peer.
414 | properties:
415 | bfdProfile:
416 | type: string
417 | ebgpMultiHop:
418 | description: EBGP peer is multi-hops away
419 | type: boolean
420 | holdTime:
421 | description: Requested BGP hold time, per RFC4271.
422 | type: string
423 | keepaliveTime:
424 | description: Requested BGP keepalive time, per RFC4271.
425 | type: string
426 | myASN:
427 | description: AS number to use for the local end of the session.
428 | format: int32
429 | maximum: 4294967295
430 | minimum: 0
431 | type: integer
432 | nodeSelectors:
433 | description: |-
434 | Only connect to this peer on nodes that match one of these
435 | selectors.
436 | items:
437 | properties:
438 | matchExpressions:
439 | items:
440 | properties:
441 | key:
442 | type: string
443 | operator:
444 | type: string
445 | values:
446 | items:
447 | type: string
448 | minItems: 1
449 | type: array
450 | required:
451 | - key
452 | - operator
453 | - values
454 | type: object
455 | type: array
456 | matchLabels:
457 | additionalProperties:
458 | type: string
459 | type: object
460 | type: object
461 | type: array
462 | password:
463 | description: Authentication password for routers enforcing TCP MD5
464 | authenticated sessions
465 | type: string
466 | peerASN:
467 | description: AS number to expect from the remote end of the session.
468 | format: int32
469 | maximum: 4294967295
470 | minimum: 0
471 | type: integer
472 | peerAddress:
473 | description: Address to dial when establishing the session.
474 | type: string
475 | peerPort:
476 | description: Port to dial when establishing the session.
477 | maximum: 16384
478 | minimum: 0
479 | type: integer
480 | routerID:
481 | description: BGP router ID to advertise to the peer
482 | type: string
483 | sourceAddress:
484 | description: Source address to use when establishing the session.
485 | type: string
486 | required:
487 | - myASN
488 | - peerASN
489 | - peerAddress
490 | type: object
491 | status:
492 | description: BGPPeerStatus defines the observed state of Peer.
493 | type: object
494 | type: object
495 | served: true
496 | storage: false
497 | subresources:
498 | status: {}
499 | - additionalPrinterColumns:
500 | - jsonPath: .spec.peerAddress
501 | name: Address
502 | type: string
503 | - jsonPath: .spec.peerASN
504 | name: ASN
505 | type: string
506 | - jsonPath: .spec.bfdProfile
507 | name: BFD Profile
508 | type: string
509 | - jsonPath: .spec.ebgpMultiHop
510 | name: Multi Hops
511 | type: string
512 | name: v1beta2
513 | schema:
514 | openAPIV3Schema:
515 | description: BGPPeer is the Schema for the peers API.
516 | properties:
517 | apiVersion:
518 | description: |-
519 | APIVersion defines the versioned schema of this representation of an object.
520 | Servers should convert recognized schemas to the latest internal value, and
521 | may reject unrecognized values.
522 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
523 | type: string
524 | kind:
525 | description: |-
526 | Kind is a string value representing the REST resource this object represents.
527 | Servers may infer this from the endpoint the client submits requests to.
528 | Cannot be updated.
529 | In CamelCase.
530 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
531 | type: string
532 | metadata:
533 | type: object
534 | spec:
535 | description: BGPPeerSpec defines the desired state of Peer.
536 | properties:
537 | bfdProfile:
538 | description: The name of the BFD Profile to be used for the BFD session
539 | associated to the BGP session. If not set, the BFD session won't
540 | be set up.
541 | type: string
542 | connectTime:
543 | description: Requested BGP connect time, controls how long BGP waits
544 | between connection attempts to a neighbor.
545 | type: string
546 | x-kubernetes-validations:
547 | - message: connect time should be between 1 seconds to 65535
548 | rule: duration(self).getSeconds() >= 1 && duration(self).getSeconds()
549 | <= 65535
550 | - message: connect time should contain a whole number of seconds
551 | rule: duration(self).getMilliseconds() % 1000 == 0
552 | disableMP:
553 | default: false
554 | description: To set if we want to disable MP BGP that will separate
555 | IPv4 and IPv6 route exchanges into distinct BGP sessions.
556 | type: boolean
557 | dynamicASN:
558 | description: |-
559 | DynamicASN detects the AS number to use for the remote end of the session
560 | without explicitly setting it via the ASN field. Limited to:
561 | internal - if the neighbor's ASN is different than MyASN connection is denied.
562 | external - if the neighbor's ASN is the same as MyASN the connection is denied.
563 | ASN and DynamicASN are mutually exclusive and one of them must be specified.
564 | enum:
565 | - internal
566 | - external
567 | type: string
568 | ebgpMultiHop:
569 | description: To set if the BGPPeer is multi-hops away. Needed for
570 | FRR mode only.
571 | type: boolean
572 | enableGracefulRestart:
573 | description: |-
574 | EnableGracefulRestart allows BGP peer to continue to forward data packets
575 | along known routes while the routing protocol information is being
576 | restored. This field is immutable because it requires restart of the BGP
577 | session. Supported for FRR mode only.
578 | type: boolean
579 | x-kubernetes-validations:
580 | - message: EnableGracefulRestart cannot be changed after creation
581 | rule: self == oldSelf
582 | holdTime:
583 | description: Requested BGP hold time, per RFC4271.
584 | type: string
585 | keepaliveTime:
586 | description: Requested BGP keepalive time, per RFC4271.
587 | type: string
588 | myASN:
589 | description: AS number to use for the local end of the session.
590 | format: int32
591 | maximum: 4294967295
592 | minimum: 0
593 | type: integer
594 | nodeSelectors:
595 | description: |-
596 | Only connect to this peer on nodes that match one of these
597 | selectors.
598 | items:
599 | description: |-
600 | A label selector is a label query over a set of resources. The result of matchLabels and
601 | matchExpressions are ANDed. An empty label selector matches all objects. A null
602 | label selector matches no objects.
603 | properties:
604 | matchExpressions:
605 | description: matchExpressions is a list of label selector requirements.
606 | The requirements are ANDed.
607 | items:
608 | description: |-
609 | A label selector requirement is a selector that contains values, a key, and an operator that
610 | relates the key and values.
611 | properties:
612 | key:
613 | description: key is the label key that the selector applies
614 | to.
615 | type: string
616 | operator:
617 | description: |-
618 | operator represents a key's relationship to a set of values.
619 | Valid operators are In, NotIn, Exists and DoesNotExist.
620 | type: string
621 | values:
622 | description: |-
623 | values is an array of string values. If the operator is In or NotIn,
624 | the values array must be non-empty. If the operator is Exists or DoesNotExist,
625 | the values array must be empty. This array is replaced during a strategic
626 | merge patch.
627 | items:
628 | type: string
629 | type: array
630 | x-kubernetes-list-type: atomic
631 | required:
632 | - key
633 | - operator
634 | type: object
635 | type: array
636 | x-kubernetes-list-type: atomic
637 | matchLabels:
638 | additionalProperties:
639 | type: string
640 | description: |-
641 | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
642 | map is equivalent to an element of matchExpressions, whose key field is "key", the
643 | operator is "In", and the values array contains only "value". The requirements are ANDed.
644 | type: object
645 | type: object
646 | x-kubernetes-map-type: atomic
647 | type: array
648 | password:
649 | description: Authentication password for routers enforcing TCP MD5
650 | authenticated sessions
651 | type: string
652 | passwordSecret:
653 | description: |-
654 | passwordSecret is name of the authentication secret for BGP Peer.
655 | the secret must be of type "kubernetes.io/basic-auth", and created in the
656 | same namespace as the MetalLB deployment. The password is stored in the
657 | secret as the key "password".
658 | properties:
659 | name:
660 | description: name is unique within a namespace to reference a
661 | secret resource.
662 | type: string
663 | namespace:
664 | description: namespace defines the space within which the secret
665 | name must be unique.
666 | type: string
667 | type: object
668 | x-kubernetes-map-type: atomic
669 | peerASN:
670 | description: |-
671 | AS number to expect from the remote end of the session.
672 | ASN and DynamicASN are mutually exclusive and one of them must be specified.
673 | format: int32
674 | maximum: 4294967295
675 | minimum: 0
676 | type: integer
677 | peerAddress:
678 | description: Address to dial when establishing the session.
679 | type: string
680 | peerPort:
681 | default: 179
682 | description: Port to dial when establishing the session.
683 | maximum: 16384
684 | minimum: 0
685 | type: integer
686 | routerID:
687 | description: BGP router ID to advertise to the peer
688 | type: string
689 | sourceAddress:
690 | description: Source address to use when establishing the session.
691 | type: string
692 | vrf:
693 | description: |-
694 | To set if we want to peer with the BGPPeer using an interface belonging to
695 | a host vrf
696 | type: string
697 | required:
698 | - myASN
699 | - peerAddress
700 | type: object
701 | status:
702 | description: BGPPeerStatus defines the observed state of Peer.
703 | type: object
704 | type: object
705 | served: true
706 | storage: true
707 | subresources:
708 | status: {}
709 | ---
710 | apiVersion: apiextensions.k8s.io/v1
711 | kind: CustomResourceDefinition
712 | metadata:
713 | annotations:
714 | controller-gen.kubebuilder.io/version: v0.16.3
715 | name: communities.metallb.io
716 | spec:
717 | group: metallb.io
718 | names:
719 | kind: Community
720 | listKind: CommunityList
721 | plural: communities
722 | singular: community
723 | scope: Namespaced
724 | versions:
725 | - name: v1beta1
726 | schema:
727 | openAPIV3Schema:
728 | description: |-
729 | Community is a collection of aliases for communities.
730 | Users can define named aliases to be used in the BGPPeer CRD.
731 | properties:
732 | apiVersion:
733 | description: |-
734 | APIVersion defines the versioned schema of this representation of an object.
735 | Servers should convert recognized schemas to the latest internal value, and
736 | may reject unrecognized values.
737 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
738 | type: string
739 | kind:
740 | description: |-
741 | Kind is a string value representing the REST resource this object represents.
742 | Servers may infer this from the endpoint the client submits requests to.
743 | Cannot be updated.
744 | In CamelCase.
745 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
746 | type: string
747 | metadata:
748 | type: object
749 | spec:
750 | description: CommunitySpec defines the desired state of Community.
751 | properties:
752 | communities:
753 | items:
754 | properties:
755 | name:
756 | description: The name of the alias for the community.
757 | type: string
758 | value:
759 | description: |-
760 | The BGP community value corresponding to the given name. Can be a standard community of the form 1234:1234
761 | or a large community of the form large:1234:1234:1234.
762 | type: string
763 | type: object
764 | type: array
765 | type: object
766 | status:
767 | description: CommunityStatus defines the observed state of Community.
768 | type: object
769 | type: object
770 | served: true
771 | storage: true
772 | subresources:
773 | status: {}
774 | ---
775 | apiVersion: apiextensions.k8s.io/v1
776 | kind: CustomResourceDefinition
777 | metadata:
778 | annotations:
779 | controller-gen.kubebuilder.io/version: v0.16.3
780 | name: ipaddresspools.metallb.io
781 | spec:
782 | group: metallb.io
783 | names:
784 | kind: IPAddressPool
785 | listKind: IPAddressPoolList
786 | plural: ipaddresspools
787 | singular: ipaddresspool
788 | scope: Namespaced
789 | versions:
790 | - additionalPrinterColumns:
791 | - jsonPath: .spec.autoAssign
792 | name: Auto Assign
793 | type: boolean
794 | - jsonPath: .spec.avoidBuggyIPs
795 | name: Avoid Buggy IPs
796 | type: boolean
797 | - jsonPath: .spec.addresses
798 | name: Addresses
799 | type: string
800 | name: v1beta1
801 | schema:
802 | openAPIV3Schema:
803 | description: |-
804 | IPAddressPool represents a pool of IP addresses that can be allocated
805 | to LoadBalancer services.
806 | properties:
807 | apiVersion:
808 | description: |-
809 | APIVersion defines the versioned schema of this representation of an object.
810 | Servers should convert recognized schemas to the latest internal value, and
811 | may reject unrecognized values.
812 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
813 | type: string
814 | kind:
815 | description: |-
816 | Kind is a string value representing the REST resource this object represents.
817 | Servers may infer this from the endpoint the client submits requests to.
818 | Cannot be updated.
819 | In CamelCase.
820 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
821 | type: string
822 | metadata:
823 | type: object
824 | spec:
825 | description: IPAddressPoolSpec defines the desired state of IPAddressPool.
826 | properties:
827 | addresses:
828 | description: |-
829 | A list of IP address ranges over which MetalLB has authority.
830 | You can list multiple ranges in a single pool, they will all share the
831 | same settings. Each range can be either a CIDR prefix, or an explicit
832 | start-end range of IPs.
833 | items:
834 | type: string
835 | type: array
836 | autoAssign:
837 | default: true
838 | description: |-
839 | AutoAssign flag used to prevent MetallB from automatic allocation
840 | for a pool.
841 | type: boolean
842 | avoidBuggyIPs:
843 | default: false
844 | description: |-
845 | AvoidBuggyIPs prevents addresses ending with .0 and .255
846 | to be used by a pool.
847 | type: boolean
848 | serviceAllocation:
849 | description: |-
850 | AllocateTo makes ip pool allocation to specific namespace and/or service.
851 | The controller will use the pool with lowest value of priority in case of
852 | multiple matches. A pool with no priority set will be used only if the
853 | pools with priority can't be used. If multiple matching IPAddressPools are
854 | available it will check for the availability of IPs sorting the matching
855 | IPAddressPools by priority, starting from the highest to the lowest. If
856 | multiple IPAddressPools have the same priority, choice will be random.
857 | properties:
858 | namespaceSelectors:
859 | description: |-
860 | NamespaceSelectors list of label selectors to select namespace(s) for ip pool,
861 | an alternative to using namespace list.
862 | items:
863 | description: |-
864 | A label selector is a label query over a set of resources. The result of matchLabels and
865 | matchExpressions are ANDed. An empty label selector matches all objects. A null
866 | label selector matches no objects.
867 | properties:
868 | matchExpressions:
869 | description: matchExpressions is a list of label selector
870 | requirements. The requirements are ANDed.
871 | items:
872 | description: |-
873 | A label selector requirement is a selector that contains values, a key, and an operator that
874 | relates the key and values.
875 | properties:
876 | key:
877 | description: key is the label key that the selector
878 | applies to.
879 | type: string
880 | operator:
881 | description: |-
882 | operator represents a key's relationship to a set of values.
883 | Valid operators are In, NotIn, Exists and DoesNotExist.
884 | type: string
885 | values:
886 | description: |-
887 | values is an array of string values. If the operator is In or NotIn,
888 | the values array must be non-empty. If the operator is Exists or DoesNotExist,
889 | the values array must be empty. This array is replaced during a strategic
890 | merge patch.
891 | items:
892 | type: string
893 | type: array
894 | x-kubernetes-list-type: atomic
895 | required:
896 | - key
897 | - operator
898 | type: object
899 | type: array
900 | x-kubernetes-list-type: atomic
901 | matchLabels:
902 | additionalProperties:
903 | type: string
904 | description: |-
905 | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
906 | map is equivalent to an element of matchExpressions, whose key field is "key", the
907 | operator is "In", and the values array contains only "value". The requirements are ANDed.
908 | type: object
909 | type: object
910 | x-kubernetes-map-type: atomic
911 | type: array
912 | namespaces:
913 | description: Namespaces list of namespace(s) on which ip pool
914 | can be attached.
915 | items:
916 | type: string
917 | type: array
918 | priority:
919 | description: Priority priority given for ip pool while ip allocation
920 | on a service.
921 | type: integer
922 | serviceSelectors:
923 | description: |-
924 | ServiceSelectors list of label selector to select service(s) for which ip pool
925 | can be used for ip allocation.
926 | items:
927 | description: |-
928 | A label selector is a label query over a set of resources. The result of matchLabels and
929 | matchExpressions are ANDed. An empty label selector matches all objects. A null
930 | label selector matches no objects.
931 | properties:
932 | matchExpressions:
933 | description: matchExpressions is a list of label selector
934 | requirements. The requirements are ANDed.
935 | items:
936 | description: |-
937 | A label selector requirement is a selector that contains values, a key, and an operator that
938 | relates the key and values.
939 | properties:
940 | key:
941 | description: key is the label key that the selector
942 | applies to.
943 | type: string
944 | operator:
945 | description: |-
946 | operator represents a key's relationship to a set of values.
947 | Valid operators are In, NotIn, Exists and DoesNotExist.
948 | type: string
949 | values:
950 | description: |-
951 | values is an array of string values. If the operator is In or NotIn,
952 | the values array must be non-empty. If the operator is Exists or DoesNotExist,
953 | the values array must be empty. This array is replaced during a strategic
954 | merge patch.
955 | items:
956 | type: string
957 | type: array
958 | x-kubernetes-list-type: atomic
959 | required:
960 | - key
961 | - operator
962 | type: object
963 | type: array
964 | x-kubernetes-list-type: atomic
965 | matchLabels:
966 | additionalProperties:
967 | type: string
968 | description: |-
969 | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
970 | map is equivalent to an element of matchExpressions, whose key field is "key", the
971 | operator is "In", and the values array contains only "value". The requirements are ANDed.
972 | type: object
973 | type: object
974 | x-kubernetes-map-type: atomic
975 | type: array
976 | type: object
977 | required:
978 | - addresses
979 | type: object
980 | status:
981 | description: IPAddressPoolStatus defines the observed state of IPAddressPool.
982 | type: object
983 | required:
984 | - spec
985 | type: object
986 | served: true
987 | storage: true
988 | subresources:
989 | status: {}
990 | ---
991 | apiVersion: apiextensions.k8s.io/v1
992 | kind: CustomResourceDefinition
993 | metadata:
994 | annotations:
995 | controller-gen.kubebuilder.io/version: v0.16.3
996 | name: l2advertisements.metallb.io
997 | spec:
998 | group: metallb.io
999 | names:
1000 | kind: L2Advertisement
1001 | listKind: L2AdvertisementList
1002 | plural: l2advertisements
1003 | singular: l2advertisement
1004 | scope: Namespaced
1005 | versions:
1006 | - additionalPrinterColumns:
1007 | - jsonPath: .spec.ipAddressPools
1008 | name: IPAddressPools
1009 | type: string
1010 | - jsonPath: .spec.ipAddressPoolSelectors
1011 | name: IPAddressPool Selectors
1012 | type: string
1013 | - jsonPath: .spec.interfaces
1014 | name: Interfaces
1015 | type: string
1016 | - jsonPath: .spec.nodeSelectors
1017 | name: Node Selectors
1018 | priority: 10
1019 | type: string
1020 | name: v1beta1
1021 | schema:
1022 | openAPIV3Schema:
1023 | description: |-
1024 | L2Advertisement allows to advertise the LoadBalancer IPs provided
1025 | by the selected pools via L2.
1026 | properties:
1027 | apiVersion:
1028 | description: |-
1029 | APIVersion defines the versioned schema of this representation of an object.
1030 | Servers should convert recognized schemas to the latest internal value, and
1031 | may reject unrecognized values.
1032 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
1033 | type: string
1034 | kind:
1035 | description: |-
1036 | Kind is a string value representing the REST resource this object represents.
1037 | Servers may infer this from the endpoint the client submits requests to.
1038 | Cannot be updated.
1039 | In CamelCase.
1040 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
1041 | type: string
1042 | metadata:
1043 | type: object
1044 | spec:
1045 | description: L2AdvertisementSpec defines the desired state of L2Advertisement.
1046 | properties:
1047 | interfaces:
1048 | description: |-
1049 | A list of interfaces to announce from. The LB IP will be announced only from these interfaces.
1050 | If the field is not set, we advertise from all the interfaces on the host.
1051 | items:
1052 | type: string
1053 | type: array
1054 | ipAddressPoolSelectors:
1055 | description: |-
1056 | A selector for the IPAddressPools which would get advertised via this advertisement.
1057 | If no IPAddressPool is selected by this or by the list, the advertisement is applied to all the IPAddressPools.
1058 | items:
1059 | description: |-
1060 | A label selector is a label query over a set of resources. The result of matchLabels and
1061 | matchExpressions are ANDed. An empty label selector matches all objects. A null
1062 | label selector matches no objects.
1063 | properties:
1064 | matchExpressions:
1065 | description: matchExpressions is a list of label selector requirements.
1066 | The requirements are ANDed.
1067 | items:
1068 | description: |-
1069 | A label selector requirement is a selector that contains values, a key, and an operator that
1070 | relates the key and values.
1071 | properties:
1072 | key:
1073 | description: key is the label key that the selector applies
1074 | to.
1075 | type: string
1076 | operator:
1077 | description: |-
1078 | operator represents a key's relationship to a set of values.
1079 | Valid operators are In, NotIn, Exists and DoesNotExist.
1080 | type: string
1081 | values:
1082 | description: |-
1083 | values is an array of string values. If the operator is In or NotIn,
1084 | the values array must be non-empty. If the operator is Exists or DoesNotExist,
1085 | the values array must be empty. This array is replaced during a strategic
1086 | merge patch.
1087 | items:
1088 | type: string
1089 | type: array
1090 | x-kubernetes-list-type: atomic
1091 | required:
1092 | - key
1093 | - operator
1094 | type: object
1095 | type: array
1096 | x-kubernetes-list-type: atomic
1097 | matchLabels:
1098 | additionalProperties:
1099 | type: string
1100 | description: |-
1101 | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1102 | map is equivalent to an element of matchExpressions, whose key field is "key", the
1103 | operator is "In", and the values array contains only "value". The requirements are ANDed.
1104 | type: object
1105 | type: object
1106 | x-kubernetes-map-type: atomic
1107 | type: array
1108 | ipAddressPools:
1109 | description: The list of IPAddressPools to advertise via this advertisement,
1110 | selected by name.
1111 | items:
1112 | type: string
1113 | type: array
1114 | nodeSelectors:
1115 | description: NodeSelectors allows to limit the nodes to announce as
1116 | next hops for the LoadBalancer IP. When empty, all the nodes having are
1117 | announced as next hops.
1118 | items:
1119 | description: |-
1120 | A label selector is a label query over a set of resources. The result of matchLabels and
1121 | matchExpressions are ANDed. An empty label selector matches all objects. A null
1122 | label selector matches no objects.
1123 | properties:
1124 | matchExpressions:
1125 | description: matchExpressions is a list of label selector requirements.
1126 | The requirements are ANDed.
1127 | items:
1128 | description: |-
1129 | A label selector requirement is a selector that contains values, a key, and an operator that
1130 | relates the key and values.
1131 | properties:
1132 | key:
1133 | description: key is the label key that the selector applies
1134 | to.
1135 | type: string
1136 | operator:
1137 | description: |-
1138 | operator represents a key's relationship to a set of values.
1139 | Valid operators are In, NotIn, Exists and DoesNotExist.
1140 | type: string
1141 | values:
1142 | description: |-
1143 | values is an array of string values. If the operator is In or NotIn,
1144 | the values array must be non-empty. If the operator is Exists or DoesNotExist,
1145 | the values array must be empty. This array is replaced during a strategic
1146 | merge patch.
1147 | items:
1148 | type: string
1149 | type: array
1150 | x-kubernetes-list-type: atomic
1151 | required:
1152 | - key
1153 | - operator
1154 | type: object
1155 | type: array
1156 | x-kubernetes-list-type: atomic
1157 | matchLabels:
1158 | additionalProperties:
1159 | type: string
1160 | description: |-
1161 | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1162 | map is equivalent to an element of matchExpressions, whose key field is "key", the
1163 | operator is "In", and the values array contains only "value". The requirements are ANDed.
1164 | type: object
1165 | type: object
1166 | x-kubernetes-map-type: atomic
1167 | type: array
1168 | type: object
1169 | status:
1170 | description: L2AdvertisementStatus defines the observed state of L2Advertisement.
1171 | type: object
1172 | type: object
1173 | served: true
1174 | storage: true
1175 | subresources:
1176 | status: {}
1177 | ---
1178 | apiVersion: apiextensions.k8s.io/v1
1179 | kind: CustomResourceDefinition
1180 | metadata:
1181 | annotations:
1182 | controller-gen.kubebuilder.io/version: v0.16.3
1183 | name: servicel2statuses.metallb.io
1184 | spec:
1185 | group: metallb.io
1186 | names:
1187 | kind: ServiceL2Status
1188 | listKind: ServiceL2StatusList
1189 | plural: servicel2statuses
1190 | singular: servicel2status
1191 | scope: Namespaced
1192 | versions:
1193 | - additionalPrinterColumns:
1194 | - jsonPath: .status.node
1195 | name: Allocated Node
1196 | type: string
1197 | - jsonPath: .status.serviceName
1198 | name: Service Name
1199 | type: string
1200 | - jsonPath: .status.serviceNamespace
1201 | name: Service Namespace
1202 | type: string
1203 | name: v1beta1
1204 | schema:
1205 | openAPIV3Schema:
1206 | description: ServiceL2Status reveals the actual traffic status of loadbalancer
1207 | services in layer2 mode.
1208 | properties:
1209 | apiVersion:
1210 | description: |-
1211 | APIVersion defines the versioned schema of this representation of an object.
1212 | Servers should convert recognized schemas to the latest internal value, and
1213 | may reject unrecognized values.
1214 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
1215 | type: string
1216 | kind:
1217 | description: |-
1218 | Kind is a string value representing the REST resource this object represents.
1219 | Servers may infer this from the endpoint the client submits requests to.
1220 | Cannot be updated.
1221 | In CamelCase.
1222 | More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
1223 | type: string
1224 | metadata:
1225 | type: object
1226 | spec:
1227 | description: ServiceL2StatusSpec defines the desired state of ServiceL2Status.
1228 | type: object
1229 | status:
1230 | description: MetalLBServiceL2Status defines the observed state of ServiceL2Status.
1231 | properties:
1232 | interfaces:
1233 | description: Interfaces indicates the interfaces that receive the
1234 | directed traffic
1235 | items:
1236 | description: InterfaceInfo defines interface info of layer2 announcement.
1237 | properties:
1238 | name:
1239 | description: Name the name of network interface card
1240 | type: string
1241 | type: object
1242 | type: array
1243 | node:
1244 | description: Node indicates the node that receives the directed traffic
1245 | type: string
1246 | x-kubernetes-validations:
1247 | - message: Value is immutable
1248 | rule: self == oldSelf
1249 | serviceName:
1250 | description: ServiceName indicates the service this status represents
1251 | type: string
1252 | x-kubernetes-validations:
1253 | - message: Value is immutable
1254 | rule: self == oldSelf
1255 | serviceNamespace:
1256 | description: ServiceNamespace indicates the namespace of the service
1257 | type: string
1258 | x-kubernetes-validations:
1259 | - message: Value is immutable
1260 | rule: self == oldSelf
1261 | type: object
1262 | type: object
1263 | served: true
1264 | storage: true
1265 | subresources:
1266 | status: {}
1267 | ---
1268 | apiVersion: v1
1269 | kind: ServiceAccount
1270 | metadata:
1271 | labels:
1272 | app: metallb
1273 | name: controller
1274 | namespace: metallb-system
1275 | ---
1276 | apiVersion: v1
1277 | kind: ServiceAccount
1278 | metadata:
1279 | labels:
1280 | app: metallb
1281 | name: speaker
1282 | namespace: metallb-system
1283 | ---
1284 | apiVersion: rbac.authorization.k8s.io/v1
1285 | kind: Role
1286 | metadata:
1287 | labels:
1288 | app: metallb
1289 | name: controller
1290 | namespace: metallb-system
1291 | rules:
1292 | - apiGroups:
1293 | - ""
1294 | resources:
1295 | - secrets
1296 | verbs:
1297 | - create
1298 | - delete
1299 | - get
1300 | - list
1301 | - patch
1302 | - update
1303 | - watch
1304 | - apiGroups:
1305 | - ""
1306 | resourceNames:
1307 | - memberlist
1308 | resources:
1309 | - secrets
1310 | verbs:
1311 | - list
1312 | - apiGroups:
1313 | - apps
1314 | resourceNames:
1315 | - controller
1316 | resources:
1317 | - deployments
1318 | verbs:
1319 | - get
1320 | - apiGroups:
1321 | - metallb.io
1322 | resources:
1323 | - bgppeers
1324 | verbs:
1325 | - get
1326 | - list
1327 | - apiGroups:
1328 | - metallb.io
1329 | resources:
1330 | - bfdprofiles
1331 | verbs:
1332 | - get
1333 | - list
1334 | - watch
1335 | - apiGroups:
1336 | - metallb.io
1337 | resources:
1338 | - ipaddresspools
1339 | verbs:
1340 | - get
1341 | - list
1342 | - watch
1343 | - apiGroups:
1344 | - metallb.io
1345 | resources:
1346 | - bgpadvertisements
1347 | verbs:
1348 | - get
1349 | - list
1350 | - watch
1351 | - apiGroups:
1352 | - metallb.io
1353 | resources:
1354 | - l2advertisements
1355 | verbs:
1356 | - get
1357 | - list
1358 | - watch
1359 | - apiGroups:
1360 | - metallb.io
1361 | resources:
1362 | - communities
1363 | verbs:
1364 | - get
1365 | - list
1366 | - watch
1367 | ---
1368 | apiVersion: rbac.authorization.k8s.io/v1
1369 | kind: Role
1370 | metadata:
1371 | labels:
1372 | app: metallb
1373 | name: pod-lister
1374 | namespace: metallb-system
1375 | rules:
1376 | - apiGroups:
1377 | - ""
1378 | resources:
1379 | - pods
1380 | verbs:
1381 | - list
1382 | - get
1383 | - apiGroups:
1384 | - ""
1385 | resources:
1386 | - secrets
1387 | verbs:
1388 | - get
1389 | - list
1390 | - watch
1391 | - apiGroups:
1392 | - ""
1393 | resources:
1394 | - configmaps
1395 | verbs:
1396 | - get
1397 | - list
1398 | - watch
1399 | - apiGroups:
1400 | - metallb.io
1401 | resources:
1402 | - bfdprofiles
1403 | verbs:
1404 | - get
1405 | - list
1406 | - watch
1407 | - apiGroups:
1408 | - metallb.io
1409 | resources:
1410 | - bgppeers
1411 | verbs:
1412 | - get
1413 | - list
1414 | - watch
1415 | - apiGroups:
1416 | - metallb.io
1417 | resources:
1418 | - l2advertisements
1419 | verbs:
1420 | - get
1421 | - list
1422 | - watch
1423 | - apiGroups:
1424 | - metallb.io
1425 | resources:
1426 | - bgpadvertisements
1427 | verbs:
1428 | - get
1429 | - list
1430 | - watch
1431 | - apiGroups:
1432 | - metallb.io
1433 | resources:
1434 | - ipaddresspools
1435 | verbs:
1436 | - get
1437 | - list
1438 | - watch
1439 | - apiGroups:
1440 | - metallb.io
1441 | resources:
1442 | - communities
1443 | verbs:
1444 | - get
1445 | - list
1446 | - watch
1447 | ---
1448 | apiVersion: rbac.authorization.k8s.io/v1
1449 | kind: ClusterRole
1450 | metadata:
1451 | labels:
1452 | app: metallb
1453 | name: metallb-system:controller
1454 | rules:
1455 | - apiGroups:
1456 | - ""
1457 | resources:
1458 | - services
1459 | - namespaces
1460 | verbs:
1461 | - get
1462 | - list
1463 | - watch
1464 | - apiGroups:
1465 | - ""
1466 | resources:
1467 | - nodes
1468 | verbs:
1469 | - list
1470 | - apiGroups:
1471 | - ""
1472 | resources:
1473 | - services/status
1474 | verbs:
1475 | - update
1476 | - apiGroups:
1477 | - ""
1478 | resources:
1479 | - events
1480 | verbs:
1481 | - create
1482 | - patch
1483 | - apiGroups:
1484 | - policy
1485 | resourceNames:
1486 | - controller
1487 | resources:
1488 | - podsecuritypolicies
1489 | verbs:
1490 | - use
1491 | - apiGroups:
1492 | - admissionregistration.k8s.io
1493 | resourceNames:
1494 | - metallb-webhook-configuration
1495 | resources:
1496 | - validatingwebhookconfigurations
1497 | verbs:
1498 | - create
1499 | - delete
1500 | - get
1501 | - list
1502 | - patch
1503 | - update
1504 | - watch
1505 | - apiGroups:
1506 | - admissionregistration.k8s.io
1507 | resources:
1508 | - validatingwebhookconfigurations
1509 | verbs:
1510 | - list
1511 | - watch
1512 | - apiGroups:
1513 | - apiextensions.k8s.io
1514 | resourceNames:
1515 | - bfdprofiles.metallb.io
1516 | - bgpadvertisements.metallb.io
1517 | - bgppeers.metallb.io
1518 | - ipaddresspools.metallb.io
1519 | - l2advertisements.metallb.io
1520 | - communities.metallb.io
1521 | resources:
1522 | - customresourcedefinitions
1523 | verbs:
1524 | - create
1525 | - delete
1526 | - get
1527 | - list
1528 | - patch
1529 | - update
1530 | - watch
1531 | - apiGroups:
1532 | - apiextensions.k8s.io
1533 | resources:
1534 | - customresourcedefinitions
1535 | verbs:
1536 | - list
1537 | - watch
1538 | ---
1539 | apiVersion: rbac.authorization.k8s.io/v1
1540 | kind: ClusterRole
1541 | metadata:
1542 | labels:
1543 | app: metallb
1544 | name: metallb-system:speaker
1545 | rules:
1546 | - apiGroups:
1547 | - metallb.io
1548 | resources:
1549 | - servicel2statuses
1550 | - servicel2statuses/status
1551 | verbs:
1552 | - '*'
1553 | - apiGroups:
1554 | - ""
1555 | resources:
1556 | - services
1557 | - endpoints
1558 | - nodes
1559 | - namespaces
1560 | verbs:
1561 | - get
1562 | - list
1563 | - watch
1564 | - apiGroups:
1565 | - discovery.k8s.io
1566 | resources:
1567 | - endpointslices
1568 | verbs:
1569 | - get
1570 | - list
1571 | - watch
1572 | - apiGroups:
1573 | - ""
1574 | resources:
1575 | - events
1576 | verbs:
1577 | - create
1578 | - patch
1579 | - apiGroups:
1580 | - policy
1581 | resourceNames:
1582 | - speaker
1583 | resources:
1584 | - podsecuritypolicies
1585 | verbs:
1586 | - use
1587 | ---
1588 | apiVersion: rbac.authorization.k8s.io/v1
1589 | kind: RoleBinding
1590 | metadata:
1591 | labels:
1592 | app: metallb
1593 | name: controller
1594 | namespace: metallb-system
1595 | roleRef:
1596 | apiGroup: rbac.authorization.k8s.io
1597 | kind: Role
1598 | name: controller
1599 | subjects:
1600 | - kind: ServiceAccount
1601 | name: controller
1602 | namespace: metallb-system
1603 | ---
1604 | apiVersion: rbac.authorization.k8s.io/v1
1605 | kind: RoleBinding
1606 | metadata:
1607 | labels:
1608 | app: metallb
1609 | name: pod-lister
1610 | namespace: metallb-system
1611 | roleRef:
1612 | apiGroup: rbac.authorization.k8s.io
1613 | kind: Role
1614 | name: pod-lister
1615 | subjects:
1616 | - kind: ServiceAccount
1617 | name: speaker
1618 | namespace: metallb-system
1619 | ---
1620 | apiVersion: rbac.authorization.k8s.io/v1
1621 | kind: ClusterRoleBinding
1622 | metadata:
1623 | labels:
1624 | app: metallb
1625 | name: metallb-system:controller
1626 | roleRef:
1627 | apiGroup: rbac.authorization.k8s.io
1628 | kind: ClusterRole
1629 | name: metallb-system:controller
1630 | subjects:
1631 | - kind: ServiceAccount
1632 | name: controller
1633 | namespace: metallb-system
1634 | ---
1635 | apiVersion: rbac.authorization.k8s.io/v1
1636 | kind: ClusterRoleBinding
1637 | metadata:
1638 | labels:
1639 | app: metallb
1640 | name: metallb-system:speaker
1641 | roleRef:
1642 | apiGroup: rbac.authorization.k8s.io
1643 | kind: ClusterRole
1644 | name: metallb-system:speaker
1645 | subjects:
1646 | - kind: ServiceAccount
1647 | name: speaker
1648 | namespace: metallb-system
1649 | ---
1650 | apiVersion: v1
1651 | data:
1652 | excludel2.yaml: |
1653 | announcedInterfacesToExclude: ["^docker.*", "^cbr.*", "^dummy.*", "^virbr.*", "^lxcbr.*", "^veth.*", "^lo$", "^cali.*", "^tunl.*", "^flannel.*", "^kube-ipvs.*", "^cni.*", "^nodelocaldns.*"]
1654 | kind: ConfigMap
1655 | metadata:
1656 | name: metallb-excludel2
1657 | namespace: metallb-system
1658 | ---
1659 | apiVersion: v1
1660 | kind: Secret
1661 | metadata:
1662 | name: metallb-webhook-cert
1663 | namespace: metallb-system
1664 | ---
1665 | apiVersion: v1
1666 | kind: Service
1667 | metadata:
1668 | name: metallb-webhook-service
1669 | namespace: metallb-system
1670 | spec:
1671 | ports:
1672 | - port: 443
1673 | targetPort: 9443
1674 | selector:
1675 | component: controller
1676 | ---
1677 | apiVersion: apps/v1
1678 | kind: Deployment
1679 | metadata:
1680 | labels:
1681 | app: metallb
1682 | component: controller
1683 | name: controller
1684 | namespace: metallb-system
1685 | spec:
1686 | revisionHistoryLimit: 3
1687 | selector:
1688 | matchLabels:
1689 | app: metallb
1690 | component: controller
1691 | template:
1692 | metadata:
1693 | annotations:
1694 | prometheus.io/port: "7472"
1695 | prometheus.io/scrape: "true"
1696 | labels:
1697 | app: metallb
1698 | component: controller
1699 | spec:
1700 | containers:
1701 | - args:
1702 | - --port=7472
1703 | - --log-level=info
1704 | - --tls-min-version=VersionTLS12
1705 | env:
1706 | - name: METALLB_ML_SECRET_NAME
1707 | value: memberlist
1708 | - name: METALLB_DEPLOYMENT
1709 | value: controller
1710 | image: quay.io/metallb/controller:v0.14.9
1711 | livenessProbe:
1712 | failureThreshold: 3
1713 | httpGet:
1714 | path: /metrics
1715 | port: monitoring
1716 | initialDelaySeconds: 10
1717 | periodSeconds: 10
1718 | successThreshold: 1
1719 | timeoutSeconds: 1
1720 | name: controller
1721 | ports:
1722 | - containerPort: 7472
1723 | name: monitoring
1724 | - containerPort: 9443
1725 | name: webhook-server
1726 | protocol: TCP
1727 | readinessProbe:
1728 | failureThreshold: 3
1729 | httpGet:
1730 | path: /metrics
1731 | port: monitoring
1732 | initialDelaySeconds: 10
1733 | periodSeconds: 10
1734 | successThreshold: 1
1735 | timeoutSeconds: 1
1736 | securityContext:
1737 | allowPrivilegeEscalation: false
1738 | capabilities:
1739 | drop:
1740 | - all
1741 | readOnlyRootFilesystem: true
1742 | volumeMounts:
1743 | - mountPath: /tmp/k8s-webhook-server/serving-certs
1744 | name: cert
1745 | readOnly: true
1746 | nodeSelector:
1747 | kubernetes.io/os: linux
1748 | securityContext:
1749 | fsGroup: 65534
1750 | runAsNonRoot: true
1751 | runAsUser: 65534
1752 | serviceAccountName: controller
1753 | terminationGracePeriodSeconds: 0
1754 | volumes:
1755 | - name: cert
1756 | secret:
1757 | defaultMode: 420
1758 | secretName: metallb-webhook-cert
1759 | ---
1760 | apiVersion: apps/v1
1761 | kind: DaemonSet
1762 | metadata:
1763 | labels:
1764 | app: metallb
1765 | component: speaker
1766 | name: speaker
1767 | namespace: metallb-system
1768 | spec:
1769 | selector:
1770 | matchLabels:
1771 | app: metallb
1772 | component: speaker
1773 | template:
1774 | metadata:
1775 | annotations:
1776 | prometheus.io/port: "7472"
1777 | prometheus.io/scrape: "true"
1778 | labels:
1779 | app: metallb
1780 | component: speaker
1781 | spec:
1782 | containers:
1783 | - args:
1784 | - --port=7472
1785 | - --log-level=info
1786 | env:
1787 | - name: METALLB_NODE_NAME
1788 | valueFrom:
1789 | fieldRef:
1790 | fieldPath: spec.nodeName
1791 | - name: METALLB_POD_NAME
1792 | valueFrom:
1793 | fieldRef:
1794 | fieldPath: metadata.name
1795 | - name: METALLB_HOST
1796 | valueFrom:
1797 | fieldRef:
1798 | fieldPath: status.hostIP
1799 | - name: METALLB_ML_BIND_ADDR
1800 | valueFrom:
1801 | fieldRef:
1802 | fieldPath: status.podIP
1803 | - name: METALLB_ML_LABELS
1804 | value: app=metallb,component=speaker
1805 | - name: METALLB_ML_SECRET_KEY_PATH
1806 | value: /etc/ml_secret_key
1807 | image: quay.io/metallb/speaker:v0.14.9
1808 | livenessProbe:
1809 | failureThreshold: 3
1810 | httpGet:
1811 | path: /metrics
1812 | port: monitoring
1813 | initialDelaySeconds: 10
1814 | periodSeconds: 10
1815 | successThreshold: 1
1816 | timeoutSeconds: 1
1817 | name: speaker
1818 | ports:
1819 | - containerPort: 7472
1820 | name: monitoring
1821 | - containerPort: 7946
1822 | name: memberlist-tcp
1823 | - containerPort: 7946
1824 | name: memberlist-udp
1825 | protocol: UDP
1826 | readinessProbe:
1827 | failureThreshold: 3
1828 | httpGet:
1829 | path: /metrics
1830 | port: monitoring
1831 | initialDelaySeconds: 10
1832 | periodSeconds: 10
1833 | successThreshold: 1
1834 | timeoutSeconds: 1
1835 | securityContext:
1836 | allowPrivilegeEscalation: false
1837 | capabilities:
1838 | add:
1839 | - NET_RAW
1840 | drop:
1841 | - ALL
1842 | readOnlyRootFilesystem: true
1843 | volumeMounts:
1844 | - mountPath: /etc/ml_secret_key
1845 | name: memberlist
1846 | readOnly: true
1847 | - mountPath: /etc/metallb
1848 | name: metallb-excludel2
1849 | readOnly: true
1850 | hostNetwork: true
1851 | nodeSelector:
1852 | kubernetes.io/os: linux
1853 | serviceAccountName: speaker
1854 | terminationGracePeriodSeconds: 2
1855 | tolerations:
1856 | - effect: NoSchedule
1857 | key: node-role.kubernetes.io/master
1858 | operator: Exists
1859 | - effect: NoSchedule
1860 | key: node-role.kubernetes.io/control-plane
1861 | operator: Exists
1862 | volumes:
1863 | - name: memberlist
1864 | secret:
1865 | defaultMode: 420
1866 | secretName: memberlist
1867 | - configMap:
1868 | defaultMode: 256
1869 | name: metallb-excludel2
1870 | name: metallb-excludel2
1871 | ---
1872 | apiVersion: admissionregistration.k8s.io/v1
1873 | kind: ValidatingWebhookConfiguration
1874 | metadata:
1875 | creationTimestamp: null
1876 | name: metallb-webhook-configuration
1877 | webhooks:
1878 | - admissionReviewVersions:
1879 | - v1
1880 | clientConfig:
1881 | service:
1882 | name: metallb-webhook-service
1883 | namespace: metallb-system
1884 | path: /validate-metallb-io-v1beta2-bgppeer
1885 | failurePolicy: Fail
1886 | name: bgppeersvalidationwebhook.metallb.io
1887 | rules:
1888 | - apiGroups:
1889 | - metallb.io
1890 | apiVersions:
1891 | - v1beta2
1892 | operations:
1893 | - CREATE
1894 | - UPDATE
1895 | resources:
1896 | - bgppeers
1897 | sideEffects: None
1898 | - admissionReviewVersions:
1899 | - v1
1900 | clientConfig:
1901 | service:
1902 | name: metallb-webhook-service
1903 | namespace: metallb-system
1904 | path: /validate-metallb-io-v1beta1-bfdprofile
1905 | failurePolicy: Fail
1906 | name: bfdprofilevalidationwebhook.metallb.io
1907 | rules:
1908 | - apiGroups:
1909 | - metallb.io
1910 | apiVersions:
1911 | - v1beta1
1912 | operations:
1913 | - CREATE
1914 | - DELETE
1915 | resources:
1916 | - bfdprofiles
1917 | sideEffects: None
1918 | - admissionReviewVersions:
1919 | - v1
1920 | clientConfig:
1921 | service:
1922 | name: metallb-webhook-service
1923 | namespace: metallb-system
1924 | path: /validate-metallb-io-v1beta1-bgpadvertisement
1925 | failurePolicy: Fail
1926 | name: bgpadvertisementvalidationwebhook.metallb.io
1927 | rules:
1928 | - apiGroups:
1929 | - metallb.io
1930 | apiVersions:
1931 | - v1beta1
1932 | operations:
1933 | - CREATE
1934 | - UPDATE
1935 | resources:
1936 | - bgpadvertisements
1937 | sideEffects: None
1938 | - admissionReviewVersions:
1939 | - v1
1940 | clientConfig:
1941 | service:
1942 | name: metallb-webhook-service
1943 | namespace: metallb-system
1944 | path: /validate-metallb-io-v1beta1-community
1945 | failurePolicy: Fail
1946 | name: communityvalidationwebhook.metallb.io
1947 | rules:
1948 | - apiGroups:
1949 | - metallb.io
1950 | apiVersions:
1951 | - v1beta1
1952 | operations:
1953 | - CREATE
1954 | - UPDATE
1955 | resources:
1956 | - communities
1957 | sideEffects: None
1958 | - admissionReviewVersions:
1959 | - v1
1960 | clientConfig:
1961 | service:
1962 | name: metallb-webhook-service
1963 | namespace: metallb-system
1964 | path: /validate-metallb-io-v1beta1-ipaddresspool
1965 | failurePolicy: Fail
1966 | name: ipaddresspoolvalidationwebhook.metallb.io
1967 | rules:
1968 | - apiGroups:
1969 | - metallb.io
1970 | apiVersions:
1971 | - v1beta1
1972 | operations:
1973 | - CREATE
1974 | - UPDATE
1975 | resources:
1976 | - ipaddresspools
1977 | sideEffects: None
1978 | - admissionReviewVersions:
1979 | - v1
1980 | clientConfig:
1981 | service:
1982 | name: metallb-webhook-service
1983 | namespace: metallb-system
1984 | path: /validate-metallb-io-v1beta1-l2advertisement
1985 | failurePolicy: Fail
1986 | name: l2advertisementvalidationwebhook.metallb.io
1987 | rules:
1988 | - apiGroups:
1989 | - metallb.io
1990 | apiVersions:
1991 | - v1beta1
1992 | operations:
1993 | - CREATE
1994 | - UPDATE
1995 | resources:
1996 | - l2advertisements
1997 | sideEffects: None
1998 |
--------------------------------------------------------------------------------
/infra/src/modules/01-load-balancer/mod.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import * as k8s from "@pulumi/kubernetes";
3 | import * as config from "../../config";
4 | import * as targets from "../../targets";
5 | import * as primitives from "../00-primitives/mod";
6 |
7 | // metallb manifest
8 |
9 | let metallbManifest: k8s.yaml.v2.ConfigFile | null = null;
10 | let ipAddressPool: k8s.apiextensions.CustomResource | null = null;
11 | let l2Advertisement: k8s.apiextensions.CustomResource | null = null;
12 |
13 | if (config.installLoadBalancer) {
14 | metallbManifest = new k8s.yaml.v2.ConfigFile(
15 | "metallb-manifest",
16 | {
17 | file: `${config.cwd}/src/modules/01-load-balancer/metallb-manifest.yaml`,
18 | },
19 | { provider: targets.k8sProvider, dependsOn: [primitives.defaultNs] },
20 | );
21 |
22 | if (config.loadBalancerAddressPool !== undefined) {
23 | ipAddressPool = new k8s.apiextensions.CustomResource(
24 | "default-address-pool",
25 | {
26 | apiVersion: "metallb.io/v1beta1",
27 | kind: "IPAddressPool",
28 | metadata: {
29 | name: "default-address-pool",
30 | namespace: "metallb-system",
31 | },
32 | spec: {
33 | addresses: [config.loadBalancerAddressPool],
34 | },
35 | },
36 | { provider: targets.k8sProvider, dependsOn: [metallbManifest] },
37 | );
38 |
39 | l2Advertisement = new k8s.apiextensions.CustomResource(
40 | "default-l2-advertisement",
41 | {
42 | apiVersion: "metallb.io/v1beta1",
43 | kind: "L2Advertisement",
44 | metadata: {
45 | name: "default",
46 | namespace: "metallb-system",
47 | },
48 | spec: {},
49 | },
50 | { provider: targets.k8sProvider, dependsOn: [metallbManifest] },
51 | );
52 | }
53 | }
54 |
55 | export { metallbManifest, ipAddressPool, l2Advertisement };
56 |
--------------------------------------------------------------------------------
/infra/src/modules/02-istio/mod.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import type { Input, Resource } from "@pulumi/pulumi";
3 | import * as k8s from "@pulumi/kubernetes";
4 | import * as config from "../../config";
5 | import * as targets from "../../targets";
6 | import * as primitives from "../00-primitives/mod";
7 | import * as loadBalancer from "../01-load-balancer/mod";
8 |
9 | // namespace
10 |
11 | export const istioSystemNs = new k8s.core.v1.Namespace(
12 | "istio-system-namespace",
13 | {
14 | metadata: {
15 | name: "istio-system",
16 | },
17 | },
18 | { provider: targets.k8sProvider },
19 | );
20 |
21 | // istio manifest
22 |
23 | export const istioManifest = new k8s.yaml.v2.ConfigFile(
24 | "istio-manifest",
25 | {
26 | file: `${config.cwd}/src/modules/02-istio/istio-manifest.yaml`,
27 | },
28 | {
29 | provider: targets.k8sProvider,
30 | dependsOn: [
31 | primitives.defaultNs,
32 | istioSystemNs,
33 | loadBalancer.metallbManifest,
34 | loadBalancer.ipAddressPool,
35 | loadBalancer.l2Advertisement
36 | ].filter(x => x !== null) as Input[]> | Input,
37 | },
38 | );
39 |
--------------------------------------------------------------------------------
/infra/src/modules/03-gateway/mod.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import * as k8s from "@pulumi/kubernetes";
3 | // import * as tls from "@pulumi/tls";
4 | import * as config from "../../config";
5 | import * as targets from "../../targets";
6 | import * as primitives from "../00-primitives/mod";
7 |
8 | const allowedRoutes = {
9 | namespaces: {
10 | from: "Selector",
11 | selector: {
12 | matchLabels: {
13 | "shared-gateway-access": "true",
14 | },
15 | },
16 | },
17 | };
18 |
19 | // custom resources
20 |
21 | export const gatewayApiCrdsManifest = new k8s.yaml.v2.ConfigFile(
22 | "gateway-api-crds-manifest",
23 | {
24 | file: `${config.cwd}/src/modules/03-gateway/gateway-api-crds-manifest.yaml`,
25 | },
26 | { provider: targets.k8sProvider, dependsOn: [primitives.defaultNs] },
27 | );
28 |
29 | // certificates
30 |
31 | // export const sharedTlsCerts = new tls.PrivateKey("shared-tls-certs", {
32 | // algorithm: "RSA",
33 | // rsaBits: 4096,
34 | // });
35 |
36 | // const privateKey = sharedTlsCerts.privateKeyPemPkcs8.apply((k) =>
37 | // Buffer.from(k).toString("base64")
38 | // );
39 |
40 | // const publicKey = sharedTlsCerts.publicKeyPem.apply((k) =>
41 | // Buffer.from(k).toString("base64")
42 | // );
43 |
44 | const privateKey = config.privateKey;
45 | const publicKey = config.publicKey;
46 |
47 | // secrets
48 |
49 | export let sharedTls: k8s.core.v1.Secret | undefined = undefined;
50 |
51 | if (privateKey !== undefined && publicKey !== undefined) {
52 | sharedTls = new k8s.core.v1.Secret(
53 | "shared-tls",
54 | {
55 | metadata: {
56 | name: "shared-tls",
57 | namespace: primitives.defaultNs.metadata.name,
58 | },
59 | type: "tls",
60 | data: {
61 | "tls.key": privateKey,
62 | "tls.crt": publicKey,
63 | },
64 | },
65 | { provider: targets.k8sProvider, dependsOn: [primitives.defaultNs] },
66 | );
67 | }
68 |
69 | // gateways
70 |
71 | const certificateRefs = [];
72 |
73 | if (sharedTls !== undefined) {
74 | certificateRefs.push({ name: sharedTls.metadata.name });
75 | }
76 |
77 | export const gateway = new k8s.apiextensions.CustomResource(
78 | "gateway",
79 | {
80 | apiVersion: "gateway.networking.k8s.io/v1beta1",
81 | kind: "Gateway",
82 | metadata: {
83 | name: "shared-gateway",
84 | namespace: primitives.defaultNs.metadata.name,
85 | },
86 | spec: {
87 | gatewayClassName: "istio",
88 | listeners: [
89 | {
90 | name: "http",
91 | port: 80,
92 | protocol: "HTTP",
93 | allowedRoutes: allowedRoutes,
94 | },
95 | {
96 | name: "https",
97 | port: 443,
98 | protocol: "HTTPS",
99 | tls: {
100 | mode: "Terminate",
101 | certificateRefs: certificateRefs,
102 | },
103 | allowedRoutes: allowedRoutes,
104 | },
105 | ],
106 | },
107 | },
108 | { provider: targets.k8sProvider, dependsOn: [primitives.defaultNs] },
109 | );
110 |
--------------------------------------------------------------------------------
/infra/src/modules/04-argowf/mod.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import * as k8s from "@pulumi/kubernetes";
3 | import * as config from "../../config";
4 | import * as targets from "../../targets";
5 | import * as gateway from "../03-gateway/mod";
6 |
7 | // namespaces
8 |
9 | const nsName = "argowf";
10 | export const ns = new k8s.core.v1.Namespace(
11 | "argowf-namespace",
12 | {
13 | metadata: {
14 | name: nsName,
15 | labels: {
16 | "shared-gateway-access": "true",
17 | },
18 | },
19 | },
20 | { provider: targets.k8sProvider },
21 | );
22 |
23 | // helm charts
24 |
25 | export const chart = new k8s.helm.v3.Release(
26 | "argowf-helm-chart",
27 | {
28 | name: "argowf",
29 | namespace: ns.metadata.name,
30 | chart: "argo-workflows",
31 | repositoryOpts: { repo: "https://argoproj.github.io/argo-helm" },
32 | values: {
33 | installCRDs: true,
34 | },
35 | },
36 | { provider: targets.k8sProvider, dependsOn: [ns] },
37 | );
38 |
39 | // http routes
40 |
41 | export const httpRoute = new k8s.apiextensions.CustomResource(
42 | "argowf-http-route",
43 | {
44 | apiVersion: "gateway.networking.k8s.io/v1beta1",
45 | kind: "HTTPRoute",
46 | metadata: {
47 | name: "argowf",
48 | namespace: ns.metadata.name,
49 | },
50 | spec: {
51 | parentRefs: [
52 | {
53 | name: gateway.gateway.metadata.name,
54 | namespace: gateway.gateway.metadata.namespace,
55 | },
56 | ],
57 | hostnames: [
58 | `workflows.${config.domain}`,
59 | ],
60 | rules: [
61 | {
62 | backendRefs: [
63 | {
64 | name: "argowf-argo-workflows-server",
65 | namespace: ns.metadata.name,
66 | port: 2746,
67 | },
68 | ],
69 | },
70 | ],
71 | },
72 | },
73 | { provider: targets.k8sProvider, dependsOn: [ns] },
74 | );
75 |
--------------------------------------------------------------------------------
/infra/src/modules/05-argocd/mod.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import * as k8s from "@pulumi/kubernetes";
3 | import * as config from "../../config";
4 | import * as targets from "../../targets";
5 | import * as gateway from "../03-gateway/mod";
6 |
7 | // namespaces
8 |
9 | const nsName = "argocd";
10 | export const ns = new k8s.core.v1.Namespace(
11 | "argocd-namespace",
12 | {
13 | metadata: {
14 | name: nsName,
15 | labels: {
16 | "shared-gateway-access": "true",
17 | },
18 | },
19 | },
20 | { provider: targets.k8sProvider },
21 | );
22 |
23 | // helm charts
24 |
25 | export const chart = new k8s.helm.v3.Release(
26 | "argocd-helm-chart",
27 | {
28 | name: "argocd",
29 | namespace: ns.metadata.name,
30 | chart: "argo-cd",
31 | repositoryOpts: { repo: "https://argoproj.github.io/argo-helm" },
32 | values: {
33 | installCRDs: true,
34 | configs: {
35 | params: {
36 | "server.insecure": true,
37 | },
38 | },
39 | },
40 | },
41 | { provider: targets.k8sProvider, dependsOn: [ns] },
42 | );
43 |
44 | // http routes
45 |
46 | export const httpRoute = new k8s.apiextensions.CustomResource(
47 | "argocd-http-route",
48 | {
49 | apiVersion: "gateway.networking.k8s.io/v1beta1",
50 | kind: "HTTPRoute",
51 | metadata: {
52 | name: "argocd",
53 | namespace: ns.metadata.name,
54 | },
55 | spec: {
56 | parentRefs: [
57 | {
58 | name: gateway.gateway.metadata.name,
59 | namespace: gateway.gateway.metadata.namespace,
60 | },
61 | ],
62 | hostnames: [
63 | `cd.${config.domain}`,
64 | ],
65 | rules: [
66 | {
67 | backendRefs: [
68 | {
69 | name: "argocd-server",
70 | namespace: ns.metadata.name,
71 | port: 80,
72 | },
73 | ],
74 | },
75 | ],
76 | },
77 | },
78 | { provider: targets.k8sProvider, dependsOn: [ns] },
79 | );
80 |
--------------------------------------------------------------------------------
/infra/src/modules/06-monitoring/mod.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import * as k8s from "@pulumi/kubernetes";
3 | import * as config from "../../config";
4 | import * as targets from "../../targets";
5 | import * as gateway from "../03-gateway/mod";
6 |
7 | // namespaces
8 |
9 | const nsName = "monitoring";
10 | export const ns = new k8s.core.v1.Namespace(
11 | nsName,
12 | {
13 | metadata: {
14 | name: nsName,
15 | labels: {
16 | "shared-gateway-access": "true",
17 | },
18 | },
19 | },
20 | { provider: targets.k8sProvider },
21 | );
22 |
23 | // helm charts
24 |
25 | export const kubePrometheusStackChart = new k8s.helm.v3.Release(
26 | "kube-prometheus-stack-helm-chart",
27 | {
28 | name: "prom",
29 | namespace: ns.metadata.name,
30 | chart: "kube-prometheus-stack",
31 | repositoryOpts: { repo: "https://prometheus-community.github.io/helm-charts" },
32 | values: {
33 | installCRDs: true,
34 | },
35 | },
36 | { provider: targets.k8sProvider, dependsOn: [ns] },
37 | );
38 |
39 | // grafana secrets
40 |
41 | const updatedData = {
42 | "admin-user": Buffer.from(config.grafanaUsername).toString("base64"),
43 | "admin-password": Buffer.from(config.grafanaPassword).toString("base64"),
44 | };
45 |
46 | export const grafanaSecret = new k8s.core.v1.Secret(
47 | "grafana-secret",
48 | {
49 | metadata: {
50 | annotations: {
51 | "pulumi.com/patchForce": "true",
52 | },
53 | name: "prom-grafana",
54 | namespace: ns.metadata.name,
55 | },
56 | type: "Opaque",
57 | data: updatedData,
58 | },
59 | { provider: targets.k8sProvider, dependsOn: [ns, kubePrometheusStackChart] },
60 | );
61 |
62 | // http routes
63 |
64 | export const httpRoute = new k8s.apiextensions.CustomResource(
65 | "grafana-http-route",
66 | {
67 | apiVersion: "gateway.networking.k8s.io/v1beta1",
68 | kind: "HTTPRoute",
69 | metadata: {
70 | name: "grafana",
71 | namespace: ns.metadata.name,
72 | },
73 | spec: {
74 | parentRefs: [
75 | {
76 | name: gateway.gateway.metadata.name,
77 | namespace: gateway.gateway.metadata.namespace,
78 | },
79 | ],
80 | hostnames: [
81 | `grafana.${config.domain}`,
82 | ],
83 | rules: [
84 | {
85 | backendRefs: [
86 | {
87 | name: "prom-grafana",
88 | namespace: ns.metadata.name,
89 | port: 80,
90 | },
91 | ],
92 | },
93 | ],
94 | },
95 | },
96 | { provider: targets.k8sProvider, dependsOn: [ns, kubePrometheusStackChart] },
97 | );
98 |
--------------------------------------------------------------------------------
/infra/src/targets.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2023-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.
2 | import * as k8s from "@pulumi/kubernetes";
3 |
4 | // k8s provider
5 | export const k8sProvider = new k8s.Provider("provider", {});
6 |
--------------------------------------------------------------------------------
/infra/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "strict": true,
4 | "baseUrl": ".",
5 | "rootDir": "./src/",
6 | "outDir": "./bin/",
7 | "target": "ES2020",
8 | "module": "CommonJS",
9 | "moduleResolution": "Node",
10 | "sourceMap": true,
11 | "experimentalDecorators": true,
12 | "pretty": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "forceConsistentCasingInFileNames": true
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/infra/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@grpc/grpc-js@^1.10.1":
6 | version "1.12.5"
7 | resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.12.5.tgz#0064a28fe9b1ec54ac27e1c9bf70720aa01285e8"
8 | integrity sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==
9 | dependencies:
10 | "@grpc/proto-loader" "^0.7.13"
11 | "@js-sdsl/ordered-map" "^4.4.2"
12 |
13 | "@grpc/proto-loader@^0.7.13":
14 | version "0.7.13"
15 | resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf"
16 | integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==
17 | dependencies:
18 | lodash.camelcase "^4.3.0"
19 | long "^5.0.0"
20 | protobufjs "^7.2.5"
21 | yargs "^17.7.2"
22 |
23 | "@isaacs/cliui@^8.0.2":
24 | version "8.0.2"
25 | resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
26 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
27 | dependencies:
28 | string-width "^5.1.2"
29 | string-width-cjs "npm:string-width@^4.2.0"
30 | strip-ansi "^7.0.1"
31 | strip-ansi-cjs "npm:strip-ansi@^6.0.1"
32 | wrap-ansi "^8.1.0"
33 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
34 |
35 | "@isaacs/string-locale-compare@^1.1.0":
36 | version "1.1.0"
37 | resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b"
38 | integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==
39 |
40 | "@js-sdsl/ordered-map@^4.4.2":
41 | version "4.4.2"
42 | resolved "https://registry.yarnpkg.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz#9299f82874bab9e4c7f9c48d865becbfe8d6907c"
43 | integrity sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==
44 |
45 | "@logdna/tail-file@^2.0.6":
46 | version "2.2.0"
47 | resolved "https://registry.yarnpkg.com/@logdna/tail-file/-/tail-file-2.2.0.tgz#158a362d293f940dacfd07c835bf3ae2f9e0455a"
48 | integrity sha512-XGSsWDweP80Fks16lwkAUIr54ICyBs6PsI4mpfTLQaWgEJRtY9xEV+PeyDpJ+sJEGZxqINlpmAwe/6tS1pP8Ng==
49 |
50 | "@npmcli/agent@^2.0.0":
51 | version "2.2.2"
52 | resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.2.tgz#967604918e62f620a648c7975461c9c9e74fc5d5"
53 | integrity sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==
54 | dependencies:
55 | agent-base "^7.1.0"
56 | http-proxy-agent "^7.0.0"
57 | https-proxy-agent "^7.0.1"
58 | lru-cache "^10.0.1"
59 | socks-proxy-agent "^8.0.3"
60 |
61 | "@npmcli/arborist@^7.3.1":
62 | version "7.5.4"
63 | resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.5.4.tgz#3dd9e531d6464ef6715e964c188e0880c471ac9b"
64 | integrity sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==
65 | dependencies:
66 | "@isaacs/string-locale-compare" "^1.1.0"
67 | "@npmcli/fs" "^3.1.1"
68 | "@npmcli/installed-package-contents" "^2.1.0"
69 | "@npmcli/map-workspaces" "^3.0.2"
70 | "@npmcli/metavuln-calculator" "^7.1.1"
71 | "@npmcli/name-from-folder" "^2.0.0"
72 | "@npmcli/node-gyp" "^3.0.0"
73 | "@npmcli/package-json" "^5.1.0"
74 | "@npmcli/query" "^3.1.0"
75 | "@npmcli/redact" "^2.0.0"
76 | "@npmcli/run-script" "^8.1.0"
77 | bin-links "^4.0.4"
78 | cacache "^18.0.3"
79 | common-ancestor-path "^1.0.1"
80 | hosted-git-info "^7.0.2"
81 | json-parse-even-better-errors "^3.0.2"
82 | json-stringify-nice "^1.1.4"
83 | lru-cache "^10.2.2"
84 | minimatch "^9.0.4"
85 | nopt "^7.2.1"
86 | npm-install-checks "^6.2.0"
87 | npm-package-arg "^11.0.2"
88 | npm-pick-manifest "^9.0.1"
89 | npm-registry-fetch "^17.0.1"
90 | pacote "^18.0.6"
91 | parse-conflict-json "^3.0.0"
92 | proc-log "^4.2.0"
93 | proggy "^2.0.0"
94 | promise-all-reject-late "^1.0.0"
95 | promise-call-limit "^3.0.1"
96 | read-package-json-fast "^3.0.2"
97 | semver "^7.3.7"
98 | ssri "^10.0.6"
99 | treeverse "^3.0.0"
100 | walk-up-path "^3.0.1"
101 |
102 | "@npmcli/fs@^3.1.0", "@npmcli/fs@^3.1.1":
103 | version "3.1.1"
104 | resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.1.tgz#59cdaa5adca95d135fc00f2bb53f5771575ce726"
105 | integrity sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==
106 | dependencies:
107 | semver "^7.3.5"
108 |
109 | "@npmcli/git@^5.0.0":
110 | version "5.0.8"
111 | resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.8.tgz#8ba3ff8724192d9ccb2735a2aa5380a992c5d3d1"
112 | integrity sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==
113 | dependencies:
114 | "@npmcli/promise-spawn" "^7.0.0"
115 | ini "^4.1.3"
116 | lru-cache "^10.0.1"
117 | npm-pick-manifest "^9.0.0"
118 | proc-log "^4.0.0"
119 | promise-inflight "^1.0.1"
120 | promise-retry "^2.0.1"
121 | semver "^7.3.5"
122 | which "^4.0.0"
123 |
124 | "@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.1.0":
125 | version "2.1.0"
126 | resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz#63048e5f6e40947a3a88dcbcb4fd9b76fdd37c17"
127 | integrity sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==
128 | dependencies:
129 | npm-bundled "^3.0.0"
130 | npm-normalize-package-bin "^3.0.0"
131 |
132 | "@npmcli/map-workspaces@^3.0.2":
133 | version "3.0.6"
134 | resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz#27dc06c20c35ef01e45a08909cab9cb3da08cea6"
135 | integrity sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==
136 | dependencies:
137 | "@npmcli/name-from-folder" "^2.0.0"
138 | glob "^10.2.2"
139 | minimatch "^9.0.0"
140 | read-package-json-fast "^3.0.0"
141 |
142 | "@npmcli/metavuln-calculator@^7.1.1":
143 | version "7.1.1"
144 | resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz#4d3b6c3192f72bc8ad59476de0da939c33877fcf"
145 | integrity sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==
146 | dependencies:
147 | cacache "^18.0.0"
148 | json-parse-even-better-errors "^3.0.0"
149 | pacote "^18.0.0"
150 | proc-log "^4.1.0"
151 | semver "^7.3.5"
152 |
153 | "@npmcli/name-from-folder@^2.0.0":
154 | version "2.0.0"
155 | resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815"
156 | integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==
157 |
158 | "@npmcli/node-gyp@^3.0.0":
159 | version "3.0.0"
160 | resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a"
161 | integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==
162 |
163 | "@npmcli/package-json@^5.0.0", "@npmcli/package-json@^5.1.0":
164 | version "5.2.1"
165 | resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.2.1.tgz#df69477b1023b81ff8503f2b9db4db4faea567ed"
166 | integrity sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==
167 | dependencies:
168 | "@npmcli/git" "^5.0.0"
169 | glob "^10.2.2"
170 | hosted-git-info "^7.0.0"
171 | json-parse-even-better-errors "^3.0.0"
172 | normalize-package-data "^6.0.0"
173 | proc-log "^4.0.0"
174 | semver "^7.5.3"
175 |
176 | "@npmcli/promise-spawn@^7.0.0":
177 | version "7.0.2"
178 | resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz#1d53d34ffeb5d151bfa8ec661bcccda8bbdfd532"
179 | integrity sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==
180 | dependencies:
181 | which "^4.0.0"
182 |
183 | "@npmcli/query@^3.1.0":
184 | version "3.1.0"
185 | resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.1.0.tgz#bc202c59e122a06cf8acab91c795edda2cdad42c"
186 | integrity sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==
187 | dependencies:
188 | postcss-selector-parser "^6.0.10"
189 |
190 | "@npmcli/redact@^2.0.0":
191 | version "2.0.1"
192 | resolved "https://registry.yarnpkg.com/@npmcli/redact/-/redact-2.0.1.tgz#95432fd566e63b35c04494621767a4312c316762"
193 | integrity sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==
194 |
195 | "@npmcli/run-script@^8.0.0", "@npmcli/run-script@^8.1.0":
196 | version "8.1.0"
197 | resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-8.1.0.tgz#a563e5e29b1ca4e648a6b1bbbfe7220b4bfe39fc"
198 | integrity sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==
199 | dependencies:
200 | "@npmcli/node-gyp" "^3.0.0"
201 | "@npmcli/package-json" "^5.0.0"
202 | "@npmcli/promise-spawn" "^7.0.0"
203 | node-gyp "^10.0.0"
204 | proc-log "^4.0.0"
205 | which "^4.0.0"
206 |
207 | "@opentelemetry/api-logs@0.55.0":
208 | version "0.55.0"
209 | resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz#5cd7461820d864600250deb3803c32367a6bb2d2"
210 | integrity sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==
211 | dependencies:
212 | "@opentelemetry/api" "^1.3.0"
213 |
214 | "@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.9":
215 | version "1.9.0"
216 | resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe"
217 | integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==
218 |
219 | "@opentelemetry/context-async-hooks@1.30.1":
220 | version "1.30.1"
221 | resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz#4f76280691a742597fd0bf682982126857622948"
222 | integrity sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==
223 |
224 | "@opentelemetry/core@1.30.1":
225 | version "1.30.1"
226 | resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.30.1.tgz#a0b468bb396358df801881709ea38299fc30ab27"
227 | integrity sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==
228 | dependencies:
229 | "@opentelemetry/semantic-conventions" "1.28.0"
230 |
231 | "@opentelemetry/exporter-zipkin@^1.28":
232 | version "1.30.1"
233 | resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.30.1.tgz#d96213a38d201ef2d50c3ba29faeb6e579f70e77"
234 | integrity sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA==
235 | dependencies:
236 | "@opentelemetry/core" "1.30.1"
237 | "@opentelemetry/resources" "1.30.1"
238 | "@opentelemetry/sdk-trace-base" "1.30.1"
239 | "@opentelemetry/semantic-conventions" "1.28.0"
240 |
241 | "@opentelemetry/instrumentation-grpc@^0.55":
242 | version "0.55.0"
243 | resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.55.0.tgz#b5161359060999f7ccbef26d6550beef021572fa"
244 | integrity sha512-n2ZH4pRwOy0Vhag/3eKqiyDBwcpUnGgJI9iiIRX7vivE0FMncaLazWphNFezRRaM/LuKwq1TD8pVUvieP68mow==
245 | dependencies:
246 | "@opentelemetry/instrumentation" "0.55.0"
247 | "@opentelemetry/semantic-conventions" "1.27.0"
248 |
249 | "@opentelemetry/instrumentation@0.55.0", "@opentelemetry/instrumentation@^0.55":
250 | version "0.55.0"
251 | resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.55.0.tgz#ecac8afd8706f6e99b3bb6951b9e07c4c81533f0"
252 | integrity sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==
253 | dependencies:
254 | "@opentelemetry/api-logs" "0.55.0"
255 | "@types/shimmer" "^1.2.0"
256 | import-in-the-middle "^1.8.1"
257 | require-in-the-middle "^7.1.1"
258 | semver "^7.5.2"
259 | shimmer "^1.2.1"
260 |
261 | "@opentelemetry/propagator-b3@1.30.1":
262 | version "1.30.1"
263 | resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.30.1.tgz#b73321e5f30f062a9229887a4aa80c771107fdd2"
264 | integrity sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==
265 | dependencies:
266 | "@opentelemetry/core" "1.30.1"
267 |
268 | "@opentelemetry/propagator-jaeger@1.30.1":
269 | version "1.30.1"
270 | resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.30.1.tgz#c06c9dacbe818b80cfb13c4dbf0b57df1ad26b71"
271 | integrity sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==
272 | dependencies:
273 | "@opentelemetry/core" "1.30.1"
274 |
275 | "@opentelemetry/resources@1.30.1", "@opentelemetry/resources@^1.28":
276 | version "1.30.1"
277 | resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.30.1.tgz#a4eae17ebd96947fdc7a64f931ca4b71e18ce964"
278 | integrity sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==
279 | dependencies:
280 | "@opentelemetry/core" "1.30.1"
281 | "@opentelemetry/semantic-conventions" "1.28.0"
282 |
283 | "@opentelemetry/sdk-trace-base@1.30.1", "@opentelemetry/sdk-trace-base@^1.28":
284 | version "1.30.1"
285 | resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz#41a42234096dc98e8f454d24551fc80b816feb34"
286 | integrity sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==
287 | dependencies:
288 | "@opentelemetry/core" "1.30.1"
289 | "@opentelemetry/resources" "1.30.1"
290 | "@opentelemetry/semantic-conventions" "1.28.0"
291 |
292 | "@opentelemetry/sdk-trace-node@^1.28":
293 | version "1.30.1"
294 | resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.30.1.tgz#bd7d68fcfb4d4ae76ea09810df9668b7dd09a2e5"
295 | integrity sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==
296 | dependencies:
297 | "@opentelemetry/context-async-hooks" "1.30.1"
298 | "@opentelemetry/core" "1.30.1"
299 | "@opentelemetry/propagator-b3" "1.30.1"
300 | "@opentelemetry/propagator-jaeger" "1.30.1"
301 | "@opentelemetry/sdk-trace-base" "1.30.1"
302 | semver "^7.5.2"
303 |
304 | "@opentelemetry/semantic-conventions@1.27.0":
305 | version "1.27.0"
306 | resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz#1a857dcc95a5ab30122e04417148211e6f945e6c"
307 | integrity sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==
308 |
309 | "@opentelemetry/semantic-conventions@1.28.0", "@opentelemetry/semantic-conventions@^1.28":
310 | version "1.28.0"
311 | resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz#337fb2bca0453d0726696e745f50064411f646d6"
312 | integrity sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==
313 |
314 | "@pkgjs/parseargs@^0.11.0":
315 | version "0.11.0"
316 | resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
317 | integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
318 |
319 | "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
320 | version "1.1.2"
321 | resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
322 | integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==
323 |
324 | "@protobufjs/base64@^1.1.2":
325 | version "1.1.2"
326 | resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
327 | integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
328 |
329 | "@protobufjs/codegen@^2.0.4":
330 | version "2.0.4"
331 | resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
332 | integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
333 |
334 | "@protobufjs/eventemitter@^1.1.0":
335 | version "1.1.0"
336 | resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
337 | integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==
338 |
339 | "@protobufjs/fetch@^1.1.0":
340 | version "1.1.0"
341 | resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
342 | integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==
343 | dependencies:
344 | "@protobufjs/aspromise" "^1.1.1"
345 | "@protobufjs/inquire" "^1.1.0"
346 |
347 | "@protobufjs/float@^1.0.2":
348 | version "1.0.2"
349 | resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
350 | integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==
351 |
352 | "@protobufjs/inquire@^1.1.0":
353 | version "1.1.0"
354 | resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
355 | integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==
356 |
357 | "@protobufjs/path@^1.1.2":
358 | version "1.1.2"
359 | resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
360 | integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==
361 |
362 | "@protobufjs/pool@^1.1.0":
363 | version "1.1.0"
364 | resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
365 | integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==
366 |
367 | "@protobufjs/utf8@^1.1.0":
368 | version "1.1.0"
369 | resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
370 | integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
371 |
372 | "@pulumi/kubernetes@^4.21.0":
373 | version "4.21.0"
374 | resolved "https://registry.yarnpkg.com/@pulumi/kubernetes/-/kubernetes-4.21.0.tgz#3ceff2d89280c356411e1173ab4537b94c715ac3"
375 | integrity sha512-cjRPcVfvTWQwX2osQhpHpe2Y6Fd2GbbW8Bg42FTSFocy2SRbzH5/9W3M64jLT3+nR2c04xNt+0sLGHAOQXan4A==
376 | dependencies:
377 | "@pulumi/pulumi" "^3.142.0"
378 | glob "^10.3.10"
379 | shell-quote "^1.6.1"
380 |
381 | "@pulumi/pulumi@^3.142.0", "@pulumi/pulumi@^3.146.0":
382 | version "3.146.0"
383 | resolved "https://registry.yarnpkg.com/@pulumi/pulumi/-/pulumi-3.146.0.tgz#4845bf0e23f99f9e6dfc455950a816302a0dfe89"
384 | integrity sha512-DVj7nhjg+R9E4t7XLAFnRiDziVTQRDpBDonXDsNeaSE0KZQmOsP1n+PSFY/Wkcgh3Gblww/EtVfGNMNHqMD1Zg==
385 | dependencies:
386 | "@grpc/grpc-js" "^1.10.1"
387 | "@logdna/tail-file" "^2.0.6"
388 | "@npmcli/arborist" "^7.3.1"
389 | "@opentelemetry/api" "^1.9"
390 | "@opentelemetry/exporter-zipkin" "^1.28"
391 | "@opentelemetry/instrumentation" "^0.55"
392 | "@opentelemetry/instrumentation-grpc" "^0.55"
393 | "@opentelemetry/resources" "^1.28"
394 | "@opentelemetry/sdk-trace-base" "^1.28"
395 | "@opentelemetry/sdk-trace-node" "^1.28"
396 | "@opentelemetry/semantic-conventions" "^1.28"
397 | "@pulumi/query" "^0.3.0"
398 | "@types/google-protobuf" "^3.15.5"
399 | "@types/semver" "^7.5.6"
400 | "@types/tmp" "^0.2.6"
401 | execa "^5.1.0"
402 | fdir "^6.1.1"
403 | google-protobuf "^3.5.0"
404 | got "^11.8.6"
405 | ini "^2.0.0"
406 | js-yaml "^3.14.0"
407 | minimist "^1.2.6"
408 | normalize-package-data "^6.0.0"
409 | picomatch "^3.0.1"
410 | pkg-dir "^7.0.0"
411 | require-from-string "^2.0.1"
412 | semver "^7.5.2"
413 | source-map-support "^0.5.6"
414 | tmp "^0.2.1"
415 | upath "^1.1.0"
416 |
417 | "@pulumi/query@^0.3.0":
418 | version "0.3.0"
419 | resolved "https://registry.yarnpkg.com/@pulumi/query/-/query-0.3.0.tgz#f496608e86a18c3dd31b6c533408e2441c29071d"
420 | integrity sha512-xfo+yLRM2zVjVEA4p23IjQWzyWl1ZhWOGobsBqRpIarzLvwNH/RAGaoehdxlhx4X92302DrpdIFgTICMN4P38w==
421 |
422 | "@pulumi/tls@^5.1.0":
423 | version "5.1.0"
424 | resolved "https://registry.yarnpkg.com/@pulumi/tls/-/tls-5.1.0.tgz#b6fcbf7b18e4ac4c1dd1942530eb920c66730d34"
425 | integrity sha512-XrJFMUcvuSn8mpnzWcrTRfMjJ5QXvL7skBFsvU+RMuoXs8nWBd/93qiIg+fprZwANnCFfvw1SlMW/pBcj91jqA==
426 | dependencies:
427 | "@pulumi/pulumi" "^3.142.0"
428 |
429 | "@sigstore/bundle@^2.3.2":
430 | version "2.3.2"
431 | resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.3.2.tgz#ad4dbb95d665405fd4a7a02c8a073dbd01e4e95e"
432 | integrity sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==
433 | dependencies:
434 | "@sigstore/protobuf-specs" "^0.3.2"
435 |
436 | "@sigstore/core@^1.0.0", "@sigstore/core@^1.1.0":
437 | version "1.1.0"
438 | resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-1.1.0.tgz#5583d8f7ffe599fa0a89f2bf289301a5af262380"
439 | integrity sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==
440 |
441 | "@sigstore/protobuf-specs@^0.3.2":
442 | version "0.3.3"
443 | resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz#7dd46d68b76c322873a2ef7581ed955af6f4dcde"
444 | integrity sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==
445 |
446 | "@sigstore/sign@^2.3.2":
447 | version "2.3.2"
448 | resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.3.2.tgz#d3d01e56d03af96fd5c3a9b9897516b1233fc1c4"
449 | integrity sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==
450 | dependencies:
451 | "@sigstore/bundle" "^2.3.2"
452 | "@sigstore/core" "^1.0.0"
453 | "@sigstore/protobuf-specs" "^0.3.2"
454 | make-fetch-happen "^13.0.1"
455 | proc-log "^4.2.0"
456 | promise-retry "^2.0.1"
457 |
458 | "@sigstore/tuf@^2.3.4":
459 | version "2.3.4"
460 | resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.4.tgz#da1d2a20144f3b87c0172920cbc8dcc7851ca27c"
461 | integrity sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==
462 | dependencies:
463 | "@sigstore/protobuf-specs" "^0.3.2"
464 | tuf-js "^2.2.1"
465 |
466 | "@sigstore/verify@^1.2.1":
467 | version "1.2.1"
468 | resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-1.2.1.tgz#c7e60241b432890dcb8bd8322427f6062ef819e1"
469 | integrity sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==
470 | dependencies:
471 | "@sigstore/bundle" "^2.3.2"
472 | "@sigstore/core" "^1.1.0"
473 | "@sigstore/protobuf-specs" "^0.3.2"
474 |
475 | "@sindresorhus/is@^4.0.0":
476 | version "4.6.0"
477 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f"
478 | integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==
479 |
480 | "@szmarczak/http-timer@^4.0.5":
481 | version "4.0.6"
482 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807"
483 | integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==
484 | dependencies:
485 | defer-to-connect "^2.0.0"
486 |
487 | "@tufjs/canonical-json@2.0.0":
488 | version "2.0.0"
489 | resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a"
490 | integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==
491 |
492 | "@tufjs/models@2.0.1":
493 | version "2.0.1"
494 | resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.1.tgz#e429714e753b6c2469af3212e7f320a6973c2812"
495 | integrity sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==
496 | dependencies:
497 | "@tufjs/canonical-json" "2.0.0"
498 | minimatch "^9.0.4"
499 |
500 | "@types/cacheable-request@^6.0.1":
501 | version "6.0.3"
502 | resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183"
503 | integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==
504 | dependencies:
505 | "@types/http-cache-semantics" "*"
506 | "@types/keyv" "^3.1.4"
507 | "@types/node" "*"
508 | "@types/responselike" "^1.0.0"
509 |
510 | "@types/google-protobuf@^3.15.5":
511 | version "3.15.12"
512 | resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.15.12.tgz#eb2ba0eddd65712211a2b455dc6071d665ccf49b"
513 | integrity sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==
514 |
515 | "@types/http-cache-semantics@*":
516 | version "4.0.4"
517 | resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4"
518 | integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
519 |
520 | "@types/keyv@^3.1.4":
521 | version "3.1.4"
522 | resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6"
523 | integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==
524 | dependencies:
525 | "@types/node" "*"
526 |
527 | "@types/node@*", "@types/node@>=13.7.0", "@types/node@^22.10.7":
528 | version "22.10.7"
529 | resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.7.tgz#14a1ca33fd0ebdd9d63593ed8d3fbc882a6d28d7"
530 | integrity sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==
531 | dependencies:
532 | undici-types "~6.20.0"
533 |
534 | "@types/responselike@^1.0.0":
535 | version "1.0.3"
536 | resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50"
537 | integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==
538 | dependencies:
539 | "@types/node" "*"
540 |
541 | "@types/semver@^7.5.6":
542 | version "7.5.8"
543 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
544 | integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
545 |
546 | "@types/shimmer@^1.2.0":
547 | version "1.2.0"
548 | resolved "https://registry.yarnpkg.com/@types/shimmer/-/shimmer-1.2.0.tgz#9b706af96fa06416828842397a70dfbbf1c14ded"
549 | integrity sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==
550 |
551 | "@types/tmp@^0.2.6":
552 | version "0.2.6"
553 | resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217"
554 | integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==
555 |
556 | abbrev@^2.0.0:
557 | version "2.0.0"
558 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf"
559 | integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==
560 |
561 | acorn-import-attributes@^1.9.5:
562 | version "1.9.5"
563 | resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef"
564 | integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==
565 |
566 | acorn@^8.8.2:
567 | version "8.14.0"
568 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
569 | integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
570 |
571 | agent-base@^7.1.0, agent-base@^7.1.2:
572 | version "7.1.3"
573 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1"
574 | integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==
575 |
576 | aggregate-error@^3.0.0:
577 | version "3.1.0"
578 | resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
579 | integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
580 | dependencies:
581 | clean-stack "^2.0.0"
582 | indent-string "^4.0.0"
583 |
584 | ansi-regex@^5.0.1:
585 | version "5.0.1"
586 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
587 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
588 |
589 | ansi-regex@^6.0.1:
590 | version "6.1.0"
591 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654"
592 | integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
593 |
594 | ansi-styles@^4.0.0:
595 | version "4.3.0"
596 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
597 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
598 | dependencies:
599 | color-convert "^2.0.1"
600 |
601 | ansi-styles@^6.1.0:
602 | version "6.2.1"
603 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
604 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
605 |
606 | argparse@^1.0.7:
607 | version "1.0.10"
608 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
609 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
610 | dependencies:
611 | sprintf-js "~1.0.2"
612 |
613 | balanced-match@^1.0.0:
614 | version "1.0.2"
615 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
616 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
617 |
618 | bin-links@^4.0.4:
619 | version "4.0.4"
620 | resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.4.tgz#c3565832b8e287c85f109a02a17027d152a58a63"
621 | integrity sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==
622 | dependencies:
623 | cmd-shim "^6.0.0"
624 | npm-normalize-package-bin "^3.0.0"
625 | read-cmd-shim "^4.0.0"
626 | write-file-atomic "^5.0.0"
627 |
628 | brace-expansion@^2.0.1:
629 | version "2.0.1"
630 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
631 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
632 | dependencies:
633 | balanced-match "^1.0.0"
634 |
635 | buffer-from@^1.0.0:
636 | version "1.1.2"
637 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
638 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
639 |
640 | cacache@^18.0.0, cacache@^18.0.3:
641 | version "18.0.4"
642 | resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.4.tgz#4601d7578dadb59c66044e157d02a3314682d6a5"
643 | integrity sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==
644 | dependencies:
645 | "@npmcli/fs" "^3.1.0"
646 | fs-minipass "^3.0.0"
647 | glob "^10.2.2"
648 | lru-cache "^10.0.1"
649 | minipass "^7.0.3"
650 | minipass-collect "^2.0.1"
651 | minipass-flush "^1.0.5"
652 | minipass-pipeline "^1.2.4"
653 | p-map "^4.0.0"
654 | ssri "^10.0.0"
655 | tar "^6.1.11"
656 | unique-filename "^3.0.0"
657 |
658 | cacheable-lookup@^5.0.3:
659 | version "5.0.4"
660 | resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"
661 | integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==
662 |
663 | cacheable-request@^7.0.2:
664 | version "7.0.4"
665 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817"
666 | integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==
667 | dependencies:
668 | clone-response "^1.0.2"
669 | get-stream "^5.1.0"
670 | http-cache-semantics "^4.0.0"
671 | keyv "^4.0.0"
672 | lowercase-keys "^2.0.0"
673 | normalize-url "^6.0.1"
674 | responselike "^2.0.0"
675 |
676 | chownr@^2.0.0:
677 | version "2.0.0"
678 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
679 | integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
680 |
681 | cjs-module-lexer@^1.2.2:
682 | version "1.4.1"
683 | resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170"
684 | integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==
685 |
686 | clean-stack@^2.0.0:
687 | version "2.2.0"
688 | resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
689 | integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
690 |
691 | cliui@^8.0.1:
692 | version "8.0.1"
693 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
694 | integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
695 | dependencies:
696 | string-width "^4.2.0"
697 | strip-ansi "^6.0.1"
698 | wrap-ansi "^7.0.0"
699 |
700 | clone-response@^1.0.2:
701 | version "1.0.3"
702 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3"
703 | integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==
704 | dependencies:
705 | mimic-response "^1.0.0"
706 |
707 | cmd-shim@^6.0.0:
708 | version "6.0.3"
709 | resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.3.tgz#c491e9656594ba17ac83c4bd931590a9d6e26033"
710 | integrity sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==
711 |
712 | color-convert@^2.0.1:
713 | version "2.0.1"
714 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
715 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
716 | dependencies:
717 | color-name "~1.1.4"
718 |
719 | color-name@~1.1.4:
720 | version "1.1.4"
721 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
722 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
723 |
724 | common-ancestor-path@^1.0.1:
725 | version "1.0.1"
726 | resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7"
727 | integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==
728 |
729 | cross-spawn@^7.0.0, cross-spawn@^7.0.3:
730 | version "7.0.6"
731 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
732 | integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
733 | dependencies:
734 | path-key "^3.1.0"
735 | shebang-command "^2.0.0"
736 | which "^2.0.1"
737 |
738 | cssesc@^3.0.0:
739 | version "3.0.0"
740 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
741 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
742 |
743 | debug@4, debug@^4.3.4, debug@^4.3.5:
744 | version "4.4.0"
745 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
746 | integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
747 | dependencies:
748 | ms "^2.1.3"
749 |
750 | decompress-response@^6.0.0:
751 | version "6.0.0"
752 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
753 | integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
754 | dependencies:
755 | mimic-response "^3.1.0"
756 |
757 | defer-to-connect@^2.0.0:
758 | version "2.0.1"
759 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
760 | integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
761 |
762 | eastasianwidth@^0.2.0:
763 | version "0.2.0"
764 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
765 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
766 |
767 | emoji-regex@^8.0.0:
768 | version "8.0.0"
769 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
770 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
771 |
772 | emoji-regex@^9.2.2:
773 | version "9.2.2"
774 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
775 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
776 |
777 | encoding@^0.1.13:
778 | version "0.1.13"
779 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
780 | integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
781 | dependencies:
782 | iconv-lite "^0.6.2"
783 |
784 | end-of-stream@^1.1.0:
785 | version "1.4.4"
786 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
787 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
788 | dependencies:
789 | once "^1.4.0"
790 |
791 | env-paths@^2.2.0:
792 | version "2.2.1"
793 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
794 | integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
795 |
796 | err-code@^2.0.2:
797 | version "2.0.3"
798 | resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
799 | integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
800 |
801 | escalade@^3.1.1:
802 | version "3.2.0"
803 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
804 | integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
805 |
806 | esprima@^4.0.0:
807 | version "4.0.1"
808 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
809 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
810 |
811 | execa@^5.1.0:
812 | version "5.1.1"
813 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
814 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
815 | dependencies:
816 | cross-spawn "^7.0.3"
817 | get-stream "^6.0.0"
818 | human-signals "^2.1.0"
819 | is-stream "^2.0.0"
820 | merge-stream "^2.0.0"
821 | npm-run-path "^4.0.1"
822 | onetime "^5.1.2"
823 | signal-exit "^3.0.3"
824 | strip-final-newline "^2.0.0"
825 |
826 | exponential-backoff@^3.1.1:
827 | version "3.1.1"
828 | resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6"
829 | integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==
830 |
831 | fdir@^6.1.1:
832 | version "6.4.3"
833 | resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72"
834 | integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==
835 |
836 | find-up@^6.3.0:
837 | version "6.3.0"
838 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790"
839 | integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==
840 | dependencies:
841 | locate-path "^7.1.0"
842 | path-exists "^5.0.0"
843 |
844 | foreground-child@^3.1.0:
845 | version "3.3.0"
846 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77"
847 | integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==
848 | dependencies:
849 | cross-spawn "^7.0.0"
850 | signal-exit "^4.0.1"
851 |
852 | fs-minipass@^2.0.0:
853 | version "2.1.0"
854 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
855 | integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
856 | dependencies:
857 | minipass "^3.0.0"
858 |
859 | fs-minipass@^3.0.0:
860 | version "3.0.3"
861 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54"
862 | integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==
863 | dependencies:
864 | minipass "^7.0.3"
865 |
866 | function-bind@^1.1.2:
867 | version "1.1.2"
868 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
869 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
870 |
871 | get-caller-file@^2.0.5:
872 | version "2.0.5"
873 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
874 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
875 |
876 | get-stream@^5.1.0:
877 | version "5.2.0"
878 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
879 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
880 | dependencies:
881 | pump "^3.0.0"
882 |
883 | get-stream@^6.0.0:
884 | version "6.0.1"
885 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
886 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
887 |
888 | glob@^10.2.2, glob@^10.3.10:
889 | version "10.4.5"
890 | resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
891 | integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
892 | dependencies:
893 | foreground-child "^3.1.0"
894 | jackspeak "^3.1.2"
895 | minimatch "^9.0.4"
896 | minipass "^7.1.2"
897 | package-json-from-dist "^1.0.0"
898 | path-scurry "^1.11.1"
899 |
900 | google-protobuf@^3.5.0:
901 | version "3.21.4"
902 | resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.4.tgz#2f933e8b6e5e9f8edde66b7be0024b68f77da6c9"
903 | integrity sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==
904 |
905 | got@^11.8.6:
906 | version "11.8.6"
907 | resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a"
908 | integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==
909 | dependencies:
910 | "@sindresorhus/is" "^4.0.0"
911 | "@szmarczak/http-timer" "^4.0.5"
912 | "@types/cacheable-request" "^6.0.1"
913 | "@types/responselike" "^1.0.0"
914 | cacheable-lookup "^5.0.3"
915 | cacheable-request "^7.0.2"
916 | decompress-response "^6.0.0"
917 | http2-wrapper "^1.0.0-beta.5.2"
918 | lowercase-keys "^2.0.0"
919 | p-cancelable "^2.0.0"
920 | responselike "^2.0.0"
921 |
922 | graceful-fs@^4.2.6:
923 | version "4.2.11"
924 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
925 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
926 |
927 | hasown@^2.0.2:
928 | version "2.0.2"
929 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
930 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
931 | dependencies:
932 | function-bind "^1.1.2"
933 |
934 | hosted-git-info@^7.0.0, hosted-git-info@^7.0.2:
935 | version "7.0.2"
936 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17"
937 | integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==
938 | dependencies:
939 | lru-cache "^10.0.1"
940 |
941 | http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1:
942 | version "4.1.1"
943 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
944 | integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
945 |
946 | http-proxy-agent@^7.0.0:
947 | version "7.0.2"
948 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e"
949 | integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==
950 | dependencies:
951 | agent-base "^7.1.0"
952 | debug "^4.3.4"
953 |
954 | http2-wrapper@^1.0.0-beta.5.2:
955 | version "1.0.3"
956 | resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"
957 | integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
958 | dependencies:
959 | quick-lru "^5.1.1"
960 | resolve-alpn "^1.0.0"
961 |
962 | https-proxy-agent@^7.0.1:
963 | version "7.0.6"
964 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9"
965 | integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==
966 | dependencies:
967 | agent-base "^7.1.2"
968 | debug "4"
969 |
970 | human-signals@^2.1.0:
971 | version "2.1.0"
972 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
973 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
974 |
975 | iconv-lite@^0.6.2:
976 | version "0.6.3"
977 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
978 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
979 | dependencies:
980 | safer-buffer ">= 2.1.2 < 3.0.0"
981 |
982 | ignore-walk@^6.0.4:
983 | version "6.0.5"
984 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.5.tgz#ef8d61eab7da169078723d1f82833b36e200b0dd"
985 | integrity sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==
986 | dependencies:
987 | minimatch "^9.0.0"
988 |
989 | import-in-the-middle@^1.8.1:
990 | version "1.12.0"
991 | resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.12.0.tgz#80d6536a01d0708a6f119f30d22447d4eb9e5c63"
992 | integrity sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w==
993 | dependencies:
994 | acorn "^8.8.2"
995 | acorn-import-attributes "^1.9.5"
996 | cjs-module-lexer "^1.2.2"
997 | module-details-from-path "^1.0.3"
998 |
999 | imurmurhash@^0.1.4:
1000 | version "0.1.4"
1001 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1002 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1003 |
1004 | indent-string@^4.0.0:
1005 | version "4.0.0"
1006 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
1007 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
1008 |
1009 | ini@^2.0.0:
1010 | version "2.0.0"
1011 | resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
1012 | integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
1013 |
1014 | ini@^4.1.3:
1015 | version "4.1.3"
1016 | resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.3.tgz#4c359675a6071a46985eb39b14e4a2c0ec98a795"
1017 | integrity sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==
1018 |
1019 | ip-address@^9.0.5:
1020 | version "9.0.5"
1021 | resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a"
1022 | integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==
1023 | dependencies:
1024 | jsbn "1.1.0"
1025 | sprintf-js "^1.1.3"
1026 |
1027 | is-core-module@^2.16.0:
1028 | version "2.16.1"
1029 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
1030 | integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
1031 | dependencies:
1032 | hasown "^2.0.2"
1033 |
1034 | is-fullwidth-code-point@^3.0.0:
1035 | version "3.0.0"
1036 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1037 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1038 |
1039 | is-lambda@^1.0.1:
1040 | version "1.0.1"
1041 | resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
1042 | integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
1043 |
1044 | is-stream@^2.0.0:
1045 | version "2.0.1"
1046 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
1047 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
1048 |
1049 | isexe@^2.0.0:
1050 | version "2.0.0"
1051 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1052 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1053 |
1054 | isexe@^3.1.1:
1055 | version "3.1.1"
1056 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d"
1057 | integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==
1058 |
1059 | jackspeak@^3.1.2:
1060 | version "3.4.3"
1061 | resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
1062 | integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
1063 | dependencies:
1064 | "@isaacs/cliui" "^8.0.2"
1065 | optionalDependencies:
1066 | "@pkgjs/parseargs" "^0.11.0"
1067 |
1068 | js-yaml@^3.14.0:
1069 | version "3.14.1"
1070 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
1071 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
1072 | dependencies:
1073 | argparse "^1.0.7"
1074 | esprima "^4.0.0"
1075 |
1076 | jsbn@1.1.0:
1077 | version "1.1.0"
1078 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040"
1079 | integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==
1080 |
1081 | json-buffer@3.0.1:
1082 | version "3.0.1"
1083 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
1084 | integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
1085 |
1086 | json-parse-even-better-errors@^3.0.0, json-parse-even-better-errors@^3.0.2:
1087 | version "3.0.2"
1088 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz#b43d35e89c0f3be6b5fbbe9dc6c82467b30c28da"
1089 | integrity sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==
1090 |
1091 | json-stringify-nice@^1.1.4:
1092 | version "1.1.4"
1093 | resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67"
1094 | integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==
1095 |
1096 | jsonparse@^1.3.1:
1097 | version "1.3.1"
1098 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
1099 | integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
1100 |
1101 | just-diff-apply@^5.2.0:
1102 | version "5.5.0"
1103 | resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f"
1104 | integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==
1105 |
1106 | just-diff@^6.0.0:
1107 | version "6.0.2"
1108 | resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285"
1109 | integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==
1110 |
1111 | keyv@^4.0.0:
1112 | version "4.5.4"
1113 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
1114 | integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
1115 | dependencies:
1116 | json-buffer "3.0.1"
1117 |
1118 | locate-path@^7.1.0:
1119 | version "7.2.0"
1120 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a"
1121 | integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==
1122 | dependencies:
1123 | p-locate "^6.0.0"
1124 |
1125 | lodash.camelcase@^4.3.0:
1126 | version "4.3.0"
1127 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
1128 | integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
1129 |
1130 | long@^5.0.0:
1131 | version "5.2.4"
1132 | resolved "https://registry.yarnpkg.com/long/-/long-5.2.4.tgz#ee651d5c7c25901cfca5e67220ae9911695e99b2"
1133 | integrity sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==
1134 |
1135 | lowercase-keys@^2.0.0:
1136 | version "2.0.0"
1137 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
1138 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
1139 |
1140 | lru-cache@^10.0.1, lru-cache@^10.2.0, lru-cache@^10.2.2:
1141 | version "10.4.3"
1142 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
1143 | integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
1144 |
1145 | make-fetch-happen@^13.0.0, make-fetch-happen@^13.0.1:
1146 | version "13.0.1"
1147 | resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz#273ba2f78f45e1f3a6dca91cede87d9fa4821e36"
1148 | integrity sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==
1149 | dependencies:
1150 | "@npmcli/agent" "^2.0.0"
1151 | cacache "^18.0.0"
1152 | http-cache-semantics "^4.1.1"
1153 | is-lambda "^1.0.1"
1154 | minipass "^7.0.2"
1155 | minipass-fetch "^3.0.0"
1156 | minipass-flush "^1.0.5"
1157 | minipass-pipeline "^1.2.4"
1158 | negotiator "^0.6.3"
1159 | proc-log "^4.2.0"
1160 | promise-retry "^2.0.1"
1161 | ssri "^10.0.0"
1162 |
1163 | merge-stream@^2.0.0:
1164 | version "2.0.0"
1165 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1166 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1167 |
1168 | mimic-fn@^2.1.0:
1169 | version "2.1.0"
1170 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
1171 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
1172 |
1173 | mimic-response@^1.0.0:
1174 | version "1.0.1"
1175 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
1176 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
1177 |
1178 | mimic-response@^3.1.0:
1179 | version "3.1.0"
1180 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
1181 | integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
1182 |
1183 | minimatch@^9.0.0, minimatch@^9.0.4:
1184 | version "9.0.5"
1185 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
1186 | integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
1187 | dependencies:
1188 | brace-expansion "^2.0.1"
1189 |
1190 | minimist@^1.2.6:
1191 | version "1.2.8"
1192 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
1193 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
1194 |
1195 | minipass-collect@^2.0.1:
1196 | version "2.0.1"
1197 | resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863"
1198 | integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==
1199 | dependencies:
1200 | minipass "^7.0.3"
1201 |
1202 | minipass-fetch@^3.0.0:
1203 | version "3.0.5"
1204 | resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz#f0f97e40580affc4a35cc4a1349f05ae36cb1e4c"
1205 | integrity sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==
1206 | dependencies:
1207 | minipass "^7.0.3"
1208 | minipass-sized "^1.0.3"
1209 | minizlib "^2.1.2"
1210 | optionalDependencies:
1211 | encoding "^0.1.13"
1212 |
1213 | minipass-flush@^1.0.5:
1214 | version "1.0.5"
1215 | resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
1216 | integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
1217 | dependencies:
1218 | minipass "^3.0.0"
1219 |
1220 | minipass-pipeline@^1.2.4:
1221 | version "1.2.4"
1222 | resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
1223 | integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
1224 | dependencies:
1225 | minipass "^3.0.0"
1226 |
1227 | minipass-sized@^1.0.3:
1228 | version "1.0.3"
1229 | resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70"
1230 | integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==
1231 | dependencies:
1232 | minipass "^3.0.0"
1233 |
1234 | minipass@^3.0.0:
1235 | version "3.3.6"
1236 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
1237 | integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
1238 | dependencies:
1239 | yallist "^4.0.0"
1240 |
1241 | minipass@^5.0.0:
1242 | version "5.0.0"
1243 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
1244 | integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
1245 |
1246 | "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.1.2:
1247 | version "7.1.2"
1248 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
1249 | integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
1250 |
1251 | minizlib@^2.1.1, minizlib@^2.1.2:
1252 | version "2.1.2"
1253 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
1254 | integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
1255 | dependencies:
1256 | minipass "^3.0.0"
1257 | yallist "^4.0.0"
1258 |
1259 | mkdirp@^1.0.3:
1260 | version "1.0.4"
1261 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
1262 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
1263 |
1264 | module-details-from-path@^1.0.3:
1265 | version "1.0.3"
1266 | resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b"
1267 | integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==
1268 |
1269 | ms@^2.1.3:
1270 | version "2.1.3"
1271 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
1272 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1273 |
1274 | negotiator@^0.6.3:
1275 | version "0.6.4"
1276 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7"
1277 | integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
1278 |
1279 | node-gyp@^10.0.0:
1280 | version "10.3.1"
1281 | resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.3.1.tgz#1dd1a1a1c6c5c59da1a76aea06a062786b2c8a1a"
1282 | integrity sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==
1283 | dependencies:
1284 | env-paths "^2.2.0"
1285 | exponential-backoff "^3.1.1"
1286 | glob "^10.3.10"
1287 | graceful-fs "^4.2.6"
1288 | make-fetch-happen "^13.0.0"
1289 | nopt "^7.0.0"
1290 | proc-log "^4.1.0"
1291 | semver "^7.3.5"
1292 | tar "^6.2.1"
1293 | which "^4.0.0"
1294 |
1295 | nopt@^7.0.0, nopt@^7.2.1:
1296 | version "7.2.1"
1297 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7"
1298 | integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==
1299 | dependencies:
1300 | abbrev "^2.0.0"
1301 |
1302 | normalize-package-data@^6.0.0:
1303 | version "6.0.2"
1304 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz#a7bc22167fe24025412bcff0a9651eb768b03506"
1305 | integrity sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==
1306 | dependencies:
1307 | hosted-git-info "^7.0.0"
1308 | semver "^7.3.5"
1309 | validate-npm-package-license "^3.0.4"
1310 |
1311 | normalize-url@^6.0.1:
1312 | version "6.1.0"
1313 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
1314 | integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
1315 |
1316 | npm-bundled@^3.0.0:
1317 | version "3.0.1"
1318 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.1.tgz#cca73e15560237696254b10170d8f86dad62da25"
1319 | integrity sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==
1320 | dependencies:
1321 | npm-normalize-package-bin "^3.0.0"
1322 |
1323 | npm-install-checks@^6.0.0, npm-install-checks@^6.2.0:
1324 | version "6.3.0"
1325 | resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe"
1326 | integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==
1327 | dependencies:
1328 | semver "^7.1.1"
1329 |
1330 | npm-normalize-package-bin@^3.0.0:
1331 | version "3.0.1"
1332 | resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832"
1333 | integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==
1334 |
1335 | npm-package-arg@^11.0.0, npm-package-arg@^11.0.2:
1336 | version "11.0.3"
1337 | resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz#dae0c21199a99feca39ee4bfb074df3adac87e2d"
1338 | integrity sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==
1339 | dependencies:
1340 | hosted-git-info "^7.0.0"
1341 | proc-log "^4.0.0"
1342 | semver "^7.3.5"
1343 | validate-npm-package-name "^5.0.0"
1344 |
1345 | npm-packlist@^8.0.0:
1346 | version "8.0.2"
1347 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.2.tgz#5b8d1d906d96d21c85ebbeed2cf54147477c8478"
1348 | integrity sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==
1349 | dependencies:
1350 | ignore-walk "^6.0.4"
1351 |
1352 | npm-pick-manifest@^9.0.0, npm-pick-manifest@^9.0.1:
1353 | version "9.1.0"
1354 | resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz#83562afde52b0b07cb6244361788d319ce7e8636"
1355 | integrity sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==
1356 | dependencies:
1357 | npm-install-checks "^6.0.0"
1358 | npm-normalize-package-bin "^3.0.0"
1359 | npm-package-arg "^11.0.0"
1360 | semver "^7.3.5"
1361 |
1362 | npm-registry-fetch@^17.0.0, npm-registry-fetch@^17.0.1:
1363 | version "17.1.0"
1364 | resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz#fb69e8e762d456f08bda2f5f169f7638fb92beb1"
1365 | integrity sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==
1366 | dependencies:
1367 | "@npmcli/redact" "^2.0.0"
1368 | jsonparse "^1.3.1"
1369 | make-fetch-happen "^13.0.0"
1370 | minipass "^7.0.2"
1371 | minipass-fetch "^3.0.0"
1372 | minizlib "^2.1.2"
1373 | npm-package-arg "^11.0.0"
1374 | proc-log "^4.0.0"
1375 |
1376 | npm-run-path@^4.0.1:
1377 | version "4.0.1"
1378 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
1379 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
1380 | dependencies:
1381 | path-key "^3.0.0"
1382 |
1383 | once@^1.3.1, once@^1.4.0:
1384 | version "1.4.0"
1385 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1386 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1387 | dependencies:
1388 | wrappy "1"
1389 |
1390 | onetime@^5.1.2:
1391 | version "5.1.2"
1392 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
1393 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
1394 | dependencies:
1395 | mimic-fn "^2.1.0"
1396 |
1397 | p-cancelable@^2.0.0:
1398 | version "2.1.1"
1399 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
1400 | integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
1401 |
1402 | p-limit@^4.0.0:
1403 | version "4.0.0"
1404 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644"
1405 | integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==
1406 | dependencies:
1407 | yocto-queue "^1.0.0"
1408 |
1409 | p-locate@^6.0.0:
1410 | version "6.0.0"
1411 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f"
1412 | integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==
1413 | dependencies:
1414 | p-limit "^4.0.0"
1415 |
1416 | p-map@^4.0.0:
1417 | version "4.0.0"
1418 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
1419 | integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
1420 | dependencies:
1421 | aggregate-error "^3.0.0"
1422 |
1423 | package-json-from-dist@^1.0.0:
1424 | version "1.0.1"
1425 | resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
1426 | integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
1427 |
1428 | pacote@^18.0.0, pacote@^18.0.6:
1429 | version "18.0.6"
1430 | resolved "https://registry.yarnpkg.com/pacote/-/pacote-18.0.6.tgz#ac28495e24f4cf802ef911d792335e378e86fac7"
1431 | integrity sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==
1432 | dependencies:
1433 | "@npmcli/git" "^5.0.0"
1434 | "@npmcli/installed-package-contents" "^2.0.1"
1435 | "@npmcli/package-json" "^5.1.0"
1436 | "@npmcli/promise-spawn" "^7.0.0"
1437 | "@npmcli/run-script" "^8.0.0"
1438 | cacache "^18.0.0"
1439 | fs-minipass "^3.0.0"
1440 | minipass "^7.0.2"
1441 | npm-package-arg "^11.0.0"
1442 | npm-packlist "^8.0.0"
1443 | npm-pick-manifest "^9.0.0"
1444 | npm-registry-fetch "^17.0.0"
1445 | proc-log "^4.0.0"
1446 | promise-retry "^2.0.1"
1447 | sigstore "^2.2.0"
1448 | ssri "^10.0.0"
1449 | tar "^6.1.11"
1450 |
1451 | parse-conflict-json@^3.0.0:
1452 | version "3.0.1"
1453 | resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c"
1454 | integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==
1455 | dependencies:
1456 | json-parse-even-better-errors "^3.0.0"
1457 | just-diff "^6.0.0"
1458 | just-diff-apply "^5.2.0"
1459 |
1460 | path-exists@^5.0.0:
1461 | version "5.0.0"
1462 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7"
1463 | integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==
1464 |
1465 | path-key@^3.0.0, path-key@^3.1.0:
1466 | version "3.1.1"
1467 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1468 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1469 |
1470 | path-parse@^1.0.7:
1471 | version "1.0.7"
1472 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1473 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1474 |
1475 | path-scurry@^1.11.1:
1476 | version "1.11.1"
1477 | resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
1478 | integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
1479 | dependencies:
1480 | lru-cache "^10.2.0"
1481 | minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
1482 |
1483 | picomatch@^3.0.1:
1484 | version "3.0.1"
1485 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516"
1486 | integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==
1487 |
1488 | pkg-dir@^7.0.0:
1489 | version "7.0.0"
1490 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11"
1491 | integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==
1492 | dependencies:
1493 | find-up "^6.3.0"
1494 |
1495 | postcss-selector-parser@^6.0.10:
1496 | version "6.1.2"
1497 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de"
1498 | integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==
1499 | dependencies:
1500 | cssesc "^3.0.0"
1501 | util-deprecate "^1.0.2"
1502 |
1503 | proc-log@^4.0.0, proc-log@^4.1.0, proc-log@^4.2.0:
1504 | version "4.2.0"
1505 | resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034"
1506 | integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==
1507 |
1508 | proggy@^2.0.0:
1509 | version "2.0.0"
1510 | resolved "https://registry.yarnpkg.com/proggy/-/proggy-2.0.0.tgz#154bb0e41d3125b518ef6c79782455c2c47d94e1"
1511 | integrity sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==
1512 |
1513 | promise-all-reject-late@^1.0.0:
1514 | version "1.0.1"
1515 | resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2"
1516 | integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==
1517 |
1518 | promise-call-limit@^3.0.1:
1519 | version "3.0.2"
1520 | resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-3.0.2.tgz#524b7f4b97729ff70417d93d24f46f0265efa4f9"
1521 | integrity sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==
1522 |
1523 | promise-inflight@^1.0.1:
1524 | version "1.0.1"
1525 | resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
1526 | integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
1527 |
1528 | promise-retry@^2.0.1:
1529 | version "2.0.1"
1530 | resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22"
1531 | integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
1532 | dependencies:
1533 | err-code "^2.0.2"
1534 | retry "^0.12.0"
1535 |
1536 | protobufjs@^7.2.5:
1537 | version "7.4.0"
1538 | resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.4.0.tgz#7efe324ce9b3b61c82aae5de810d287bc08a248a"
1539 | integrity sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==
1540 | dependencies:
1541 | "@protobufjs/aspromise" "^1.1.2"
1542 | "@protobufjs/base64" "^1.1.2"
1543 | "@protobufjs/codegen" "^2.0.4"
1544 | "@protobufjs/eventemitter" "^1.1.0"
1545 | "@protobufjs/fetch" "^1.1.0"
1546 | "@protobufjs/float" "^1.0.2"
1547 | "@protobufjs/inquire" "^1.1.0"
1548 | "@protobufjs/path" "^1.1.2"
1549 | "@protobufjs/pool" "^1.1.0"
1550 | "@protobufjs/utf8" "^1.1.0"
1551 | "@types/node" ">=13.7.0"
1552 | long "^5.0.0"
1553 |
1554 | pump@^3.0.0:
1555 | version "3.0.2"
1556 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8"
1557 | integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==
1558 | dependencies:
1559 | end-of-stream "^1.1.0"
1560 | once "^1.3.1"
1561 |
1562 | quick-lru@^5.1.1:
1563 | version "5.1.1"
1564 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
1565 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
1566 |
1567 | read-cmd-shim@^4.0.0:
1568 | version "4.0.0"
1569 | resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb"
1570 | integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==
1571 |
1572 | read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2:
1573 | version "3.0.2"
1574 | resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049"
1575 | integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==
1576 | dependencies:
1577 | json-parse-even-better-errors "^3.0.0"
1578 | npm-normalize-package-bin "^3.0.0"
1579 |
1580 | require-directory@^2.1.1:
1581 | version "2.1.1"
1582 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1583 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
1584 |
1585 | require-from-string@^2.0.1:
1586 | version "2.0.2"
1587 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
1588 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
1589 |
1590 | require-in-the-middle@^7.1.1:
1591 | version "7.4.0"
1592 | resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz#606977820d4b5f9be75e5a108ce34cfed25b3bb4"
1593 | integrity sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==
1594 | dependencies:
1595 | debug "^4.3.5"
1596 | module-details-from-path "^1.0.3"
1597 | resolve "^1.22.8"
1598 |
1599 | resolve-alpn@^1.0.0:
1600 | version "1.2.1"
1601 | resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9"
1602 | integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==
1603 |
1604 | resolve@^1.22.8:
1605 | version "1.22.10"
1606 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39"
1607 | integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
1608 | dependencies:
1609 | is-core-module "^2.16.0"
1610 | path-parse "^1.0.7"
1611 | supports-preserve-symlinks-flag "^1.0.0"
1612 |
1613 | responselike@^2.0.0:
1614 | version "2.0.1"
1615 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc"
1616 | integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==
1617 | dependencies:
1618 | lowercase-keys "^2.0.0"
1619 |
1620 | retry@^0.12.0:
1621 | version "0.12.0"
1622 | resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
1623 | integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
1624 |
1625 | "safer-buffer@>= 2.1.2 < 3.0.0":
1626 | version "2.1.2"
1627 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1628 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1629 |
1630 | semver@^7.1.1, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3:
1631 | version "7.6.3"
1632 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
1633 | integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
1634 |
1635 | shebang-command@^2.0.0:
1636 | version "2.0.0"
1637 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1638 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1639 | dependencies:
1640 | shebang-regex "^3.0.0"
1641 |
1642 | shebang-regex@^3.0.0:
1643 | version "3.0.0"
1644 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1645 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1646 |
1647 | shell-quote@^1.6.1:
1648 | version "1.8.2"
1649 | resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a"
1650 | integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==
1651 |
1652 | shimmer@^1.2.1:
1653 | version "1.2.1"
1654 | resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337"
1655 | integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
1656 |
1657 | signal-exit@^3.0.3:
1658 | version "3.0.7"
1659 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
1660 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
1661 |
1662 | signal-exit@^4.0.1:
1663 | version "4.1.0"
1664 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
1665 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
1666 |
1667 | sigstore@^2.2.0:
1668 | version "2.3.1"
1669 | resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.3.1.tgz#0755dd2cc4820f2e922506da54d3d628e13bfa39"
1670 | integrity sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==
1671 | dependencies:
1672 | "@sigstore/bundle" "^2.3.2"
1673 | "@sigstore/core" "^1.0.0"
1674 | "@sigstore/protobuf-specs" "^0.3.2"
1675 | "@sigstore/sign" "^2.3.2"
1676 | "@sigstore/tuf" "^2.3.4"
1677 | "@sigstore/verify" "^1.2.1"
1678 |
1679 | smart-buffer@^4.2.0:
1680 | version "4.2.0"
1681 | resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
1682 | integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
1683 |
1684 | socks-proxy-agent@^8.0.3:
1685 | version "8.0.5"
1686 | resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz#b9cdb4e7e998509d7659d689ce7697ac21645bee"
1687 | integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==
1688 | dependencies:
1689 | agent-base "^7.1.2"
1690 | debug "^4.3.4"
1691 | socks "^2.8.3"
1692 |
1693 | socks@^2.8.3:
1694 | version "2.8.3"
1695 | resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5"
1696 | integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==
1697 | dependencies:
1698 | ip-address "^9.0.5"
1699 | smart-buffer "^4.2.0"
1700 |
1701 | source-map-support@^0.5.6:
1702 | version "0.5.21"
1703 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
1704 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
1705 | dependencies:
1706 | buffer-from "^1.0.0"
1707 | source-map "^0.6.0"
1708 |
1709 | source-map@^0.6.0:
1710 | version "0.6.1"
1711 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1712 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1713 |
1714 | spdx-correct@^3.0.0:
1715 | version "3.2.0"
1716 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c"
1717 | integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==
1718 | dependencies:
1719 | spdx-expression-parse "^3.0.0"
1720 | spdx-license-ids "^3.0.0"
1721 |
1722 | spdx-exceptions@^2.1.0:
1723 | version "2.5.0"
1724 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66"
1725 | integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==
1726 |
1727 | spdx-expression-parse@^3.0.0:
1728 | version "3.0.1"
1729 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
1730 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
1731 | dependencies:
1732 | spdx-exceptions "^2.1.0"
1733 | spdx-license-ids "^3.0.0"
1734 |
1735 | spdx-license-ids@^3.0.0:
1736 | version "3.0.21"
1737 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz#6d6e980c9df2b6fc905343a3b2d702a6239536c3"
1738 | integrity sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==
1739 |
1740 | sprintf-js@^1.1.3:
1741 | version "1.1.3"
1742 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a"
1743 | integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
1744 |
1745 | sprintf-js@~1.0.2:
1746 | version "1.0.3"
1747 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1748 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
1749 |
1750 | ssri@^10.0.0, ssri@^10.0.6:
1751 | version "10.0.6"
1752 | resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5"
1753 | integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==
1754 | dependencies:
1755 | minipass "^7.0.3"
1756 |
1757 | "string-width-cjs@npm:string-width@^4.2.0":
1758 | version "4.2.3"
1759 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1760 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1761 | dependencies:
1762 | emoji-regex "^8.0.0"
1763 | is-fullwidth-code-point "^3.0.0"
1764 | strip-ansi "^6.0.1"
1765 |
1766 | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
1767 | version "4.2.3"
1768 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1769 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1770 | dependencies:
1771 | emoji-regex "^8.0.0"
1772 | is-fullwidth-code-point "^3.0.0"
1773 | strip-ansi "^6.0.1"
1774 |
1775 | string-width@^5.0.1, string-width@^5.1.2:
1776 | version "5.1.2"
1777 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
1778 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
1779 | dependencies:
1780 | eastasianwidth "^0.2.0"
1781 | emoji-regex "^9.2.2"
1782 | strip-ansi "^7.0.1"
1783 |
1784 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1":
1785 | version "6.0.1"
1786 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1787 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1788 | dependencies:
1789 | ansi-regex "^5.0.1"
1790 |
1791 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1792 | version "6.0.1"
1793 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1794 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1795 | dependencies:
1796 | ansi-regex "^5.0.1"
1797 |
1798 | strip-ansi@^7.0.1:
1799 | version "7.1.0"
1800 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
1801 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
1802 | dependencies:
1803 | ansi-regex "^6.0.1"
1804 |
1805 | strip-final-newline@^2.0.0:
1806 | version "2.0.0"
1807 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
1808 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
1809 |
1810 | supports-preserve-symlinks-flag@^1.0.0:
1811 | version "1.0.0"
1812 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
1813 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1814 |
1815 | tar@^6.1.11, tar@^6.2.1:
1816 | version "6.2.1"
1817 | resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
1818 | integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
1819 | dependencies:
1820 | chownr "^2.0.0"
1821 | fs-minipass "^2.0.0"
1822 | minipass "^5.0.0"
1823 | minizlib "^2.1.1"
1824 | mkdirp "^1.0.3"
1825 | yallist "^4.0.0"
1826 |
1827 | tmp@^0.2.1:
1828 | version "0.2.3"
1829 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae"
1830 | integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==
1831 |
1832 | treeverse@^3.0.0:
1833 | version "3.0.0"
1834 | resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8"
1835 | integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==
1836 |
1837 | tuf-js@^2.2.1:
1838 | version "2.2.1"
1839 | resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.1.tgz#fdd8794b644af1a75c7aaa2b197ddffeb2911b56"
1840 | integrity sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==
1841 | dependencies:
1842 | "@tufjs/models" "2.0.1"
1843 | debug "^4.3.4"
1844 | make-fetch-happen "^13.0.1"
1845 |
1846 | undici-types@~6.20.0:
1847 | version "6.20.0"
1848 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"
1849 | integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
1850 |
1851 | unique-filename@^3.0.0:
1852 | version "3.0.0"
1853 | resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea"
1854 | integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==
1855 | dependencies:
1856 | unique-slug "^4.0.0"
1857 |
1858 | unique-slug@^4.0.0:
1859 | version "4.0.0"
1860 | resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3"
1861 | integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==
1862 | dependencies:
1863 | imurmurhash "^0.1.4"
1864 |
1865 | upath@^1.1.0:
1866 | version "1.2.0"
1867 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
1868 | integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
1869 |
1870 | util-deprecate@^1.0.2:
1871 | version "1.0.2"
1872 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1873 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
1874 |
1875 | validate-npm-package-license@^3.0.4:
1876 | version "3.0.4"
1877 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
1878 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
1879 | dependencies:
1880 | spdx-correct "^3.0.0"
1881 | spdx-expression-parse "^3.0.0"
1882 |
1883 | validate-npm-package-name@^5.0.0:
1884 | version "5.0.1"
1885 | resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8"
1886 | integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==
1887 |
1888 | walk-up-path@^3.0.1:
1889 | version "3.0.1"
1890 | resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886"
1891 | integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==
1892 |
1893 | which@^2.0.1:
1894 | version "2.0.2"
1895 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1896 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1897 | dependencies:
1898 | isexe "^2.0.0"
1899 |
1900 | which@^4.0.0:
1901 | version "4.0.0"
1902 | resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a"
1903 | integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==
1904 | dependencies:
1905 | isexe "^3.1.1"
1906 |
1907 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
1908 | version "7.0.0"
1909 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
1910 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1911 | dependencies:
1912 | ansi-styles "^4.0.0"
1913 | string-width "^4.1.0"
1914 | strip-ansi "^6.0.0"
1915 |
1916 | wrap-ansi@^7.0.0:
1917 | version "7.0.0"
1918 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
1919 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1920 | dependencies:
1921 | ansi-styles "^4.0.0"
1922 | string-width "^4.1.0"
1923 | strip-ansi "^6.0.0"
1924 |
1925 | wrap-ansi@^8.1.0:
1926 | version "8.1.0"
1927 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
1928 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
1929 | dependencies:
1930 | ansi-styles "^6.1.0"
1931 | string-width "^5.0.1"
1932 | strip-ansi "^7.0.1"
1933 |
1934 | wrappy@1:
1935 | version "1.0.2"
1936 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1937 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1938 |
1939 | write-file-atomic@^5.0.0:
1940 | version "5.0.1"
1941 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7"
1942 | integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==
1943 | dependencies:
1944 | imurmurhash "^0.1.4"
1945 | signal-exit "^4.0.1"
1946 |
1947 | y18n@^5.0.5:
1948 | version "5.0.8"
1949 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
1950 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
1951 |
1952 | yallist@^4.0.0:
1953 | version "4.0.0"
1954 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1955 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1956 |
1957 | yargs-parser@^21.1.1:
1958 | version "21.1.1"
1959 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
1960 | integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
1961 |
1962 | yargs@^17.7.2:
1963 | version "17.7.2"
1964 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
1965 | integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
1966 | dependencies:
1967 | cliui "^8.0.1"
1968 | escalade "^3.1.1"
1969 | get-caller-file "^2.0.5"
1970 | require-directory "^2.1.1"
1971 | string-width "^4.2.3"
1972 | y18n "^5.0.5"
1973 | yargs-parser "^21.1.1"
1974 |
1975 | yocto-queue@^1.0.0:
1976 | version "1.1.1"
1977 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110"
1978 | integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==
1979 |
--------------------------------------------------------------------------------